Maksimum katılacak oyuncu sayısını belirleyerek başlayalım.
Kod:
[DEFNAME ROUND]
PLAYERS 10
Turnuva yada ismi herne ise ona katılmayı sağlayacak bir araç yani bir item gerekli onu kodlayalım.
Kod:
[ITEMDEF I_ROUND_STONE]
BASEID i_stone_grave
DEFNAME i_round_stone
NAME Turnuva
TYPE t_script
ON=@DCLICK //Çift tıklama ardında açılacak dialog vs. şeyleri kodladığını varsayıyorum.
..
..
..
Kodladığın dialogta turnuvaya katılma butonun gerekli sorgularını yaptıktan sonra katılma işlemini gerçekleştirelim.
Kod:
ONBUTTON=5 //5 nolu button
IF (<LIST.MAVITAKIM.COUNT> => <DEF.PLAYERS>)
SYSMESSAGE @55 Katilim sona ermis.
ELSE
LIST.MAVITAKIM.ADD <SRC>
SRC.GO TURNUVA ALANI
SRC.EVENTS +E_ROUND
ENDIF
Kod:
[EVENTS E_ROUND]
ON=@CLICK
IF (<LIST.MAVITAKIM.FINDELEM <UID>>)
MESSAGE @99 [Mavi]
ELSE
MESSAGE @33 [Kirmizi]
ENDIF
ON=@DEATH //Bahsettiğin işlemler burada başlayacak.
IF !(<LIST.MAVITAKIM.COUNT> || <LIST.KIRMIZITAKIM.COUNT>)
YENIDEN BAŞLATMA İŞLEMLERİ
ELSE
IF (<LIST.MAVITAKIM.FINDELEM <UID>>)
LOCAL.ELEM <LIST.MAVITAKIM.FINDELEM <UID>>
LIST.MAVITAKIM.<LOCAL.ELEM>.REMOVE
ELSEIF (<LIST.KIRMIZITAKIM.FINDELEM <UID>>)
LOCAL.ELEM <LIST.KIRMIZITAKIM.FINDELEM <UID>>
LIST.KIRMIZITAKIM.<LOCAL.ELEM>.REMOVE
ENDIF
ENDIF
Denemedim, sana yol gösterme amaçlı olarak yazdım. VAR yada TAG,CTAG larla boğuşmayasında diyede LIST ile yaptım.
LIST ile ayrıntılı bilgi için ChangeLog a göz at.
Yukarıdaki kodlamanın kısa açıklamasını yapaack olursak;
Turnuvaya katılım için yapmış olduğu itemde açılacak bir dialog gerekli.
Ben dialog varsayarak kodlamaya devam ettim ve dialogun 5 nolu buttonunda sorgulama yaptım. Fakat sadece mavi takıma alıyor gördüğün gibi.
LIST.COUNT değeri DEF.PLAYERS a eşit yada fazlaysa katılım kabul etmiyor. Aksiyse mavi takıma atıyor.
Senin yapman gereken, takım seçtirmek ve DEF.PLAYERS sorgusunu daha sonra yapmak.
Büyük rolü @DEATH triggeri üstleniyor. Bahsettiğin işlemler bunun altında.
Mantıkta şu şekilde olmalı, her ölen kişide LIST.MAVI yada LIST.KIRMIZI (hangi takımdaysa) LIST.COUNT sorgusu yaptırılıp sonuç yoksa, ROUND u tekrar başlatmak. Eğer sonuç varsa, ölen kişiyi LIST ten çıkartmak.
Gerisi sana kalıyor. Kolay gelsin.