UO-Dev Arama


ctf sistemidir

Yazar: aldarson
Tarih: 26-06-2010 17:46


Paylaş : Paylaş
Karakter Boyut :


Kod:
[DEFNAME CTF]
CTF_ENTER_GOLD "25000"
CTF_ENTER_GO_RED "5676,1000,45"
CTF_ENTER_GO_BLUE "5785,843,45"
CTF_WINNER_POINT "5"
CTF_FINISH_MOREP "5710,867"
CTF_FLAG_MOREP_RED "5676,1004,50"
CTF_FLAG_MOREP_BLUE "5788,844,50"
CTF_WINNER_ADD_GOLD "300000"

[ITEMDEF I_MOONGATE_CTF]
ID I_MOONGATE_RED
NAME Capture The Flag
TYPE T_MOONGATE

ON=@CREATE
COLOR=0495
ATTR=ATTR_STATIC
MOREX=30
MOREY=0
TAG0.TEAM_RED=0
TAG0.TEAM_BLUE=0
VAR0.MOONGATE_UID=<UID>

ON=@CLICK
MSG_OK [Katılım:<DMOREY>/<DMOREX>]
MSG_HATA [Kırmızı:<DTAG0.TEAM_RED>,Mavi:<DTAG0.TEAM_BLUE>]
IF (<VAR0.TEAM_RED> > <VAR0.TEAM_BLUE>)
MSG_HATA [Öndeki takım:Kırmızılar]
ELSEIF (<VAR0.TEAM_RED>==<VAR0.TEAM_BLUE>)
MSG_HATA [Durum eşit]
ELSE
MSG_HATA [Öndeki takım:Maviler]
ENDIF
RETURN 1

ON=@DCLICK
IF (<SRC.F_FLAGS_CHECK>)
SRC.SYS_HATA Bu durumda iken yarışmaya katılamazsınız.
ELSEIF (<SRC.F_CANSEELOS <UID>>)
SRC.SYS_HATA Moongateye ulaşamıyorsunuz.
ELSEIF (<SRC.GOLD> < <DDEF.CTF_ENTER_GOLD>)
SRC.SYS_HATA Bu yarışmaya katılmak için en az <DDEF.CTF_ENTER_GOLD> altınınız olmalıdır.
ELSEIF (<SRC.ISEVENT.E_CTF>)
SRC.GO <DEF.CTF_ENTER_GO_<SRC.TAG.TEAM>>
ELSEIF (<DMOREY> >= <DMOREX>)
SRC.SYS_HATA Yarışmaya katılım bitmiştir.
ELSEIF (<SRC.FINDLAYER(25)>) || (<SRC.CHECKANIMAL>)
SRC.SYS_HATA Altınızda veya etrafınızda size ait bir binek varken yarışmaya katılamazsınız.
ELSEIF (<SRC.HITS> < <SRC.MAXHITS>) || (<SRC.FLAGS>&STATF_POISONED)
SRC.SYS_HATA Hitpointiniz az veya poison etkisi altındasınız.
ELSE
IF (<DTAG0.TEAM_RED> >= <DTAG0.TEAM_BLUE>)
SRC.TAG.TEAM=Blue
ELSE
SRC.TAG.TEAM=Red
ENDIF
IF (<SRC.FINDID.I_STUCK_ICE>)
SRC.FINDID.I_STUCK_ICE.TAG0.GIDILECEK <DEF.CTF_ENTER_GO_<SRC.TAG.TEAM>>
ENDIF
IF (<SRC.ISEVENT.F_RECALL>)
SRC.FCANCEL 1
ENDIF
TAG0.TEAM_<SRC.TAG.TEAM> ++
MOREY ++
TAG0.UID_<DMOREY>==<SRC>
SRC.GO <DEF.CTF_ENTER_GO_<SRC.TAG.TEAM>>
SRC.EVENTS +E_CTF
SRC.TAG0.KILLS=0
SRC.TAG0.DEATHS=0
SRC.TAG0.POINT_DIALOG=1
SRC.PACK_TO_BANK
SRC.GOLD -=<DDEF.CTF_ENTER_GOLD>
ENDIF
RETURN 1

ON=@STEP
IF (<SRC.ISPLAYER>)
SRC.SYS_HATA Yarışmaya katılmak için çift tıklayınız.
ENDIF
RETURN 1

[EVENTS E_CTF]
ON=@CLICK
MESSAGE @<QVAL STRMATCH("<TAG.TEAM>","RED")?020,,1:05,,1> [Takım:<F_TEAM <TAG.TEAM>>]
MSG_OK [Kills:<DTAG0.KILLS>,Deaths:<DTAG0.DEATHS>]

ON=@LOGOUT
REF3=<VAR0.MOONGATE_UID>
REF3.MOREY --
REF3.TAG0.TEAM_<SRC.TAG.TEAM> --
IF (<REF3.DMOREY>==0)
RETURN 1
ELSE
FOR <REF3.DMOREY>
IF (<REF3.TAG0.UID_<DLOCAL._FOR>> == <SRC>)
REF3.TAG0.UID_<DLOCAL._FOR>
ENDIF
REF3.TAG0.UID_<DLOCAL._FOR>=<REF3.TAG0.UID_<DLOCAL._FOR>>
ENDIF
ENDFOR
SRC.F_FINISH

ON=@ATTACK
IF (<F_CTF_ISFRIEND <SRC>>)
SYS_HATA Takım arkadaşına bunu yapamazsın.
RETURN 1
ENDIF

ON=@HITTRY
IF (<F_CTF_ISFRIEND <ACT>>)
SYS_HATA Takım arkadaşına bunu yapamazsın.
RETURN 1
ENDIF

ON=@HIT
IF (<F_CTF_ISFRIEND <SRC>>)
SYS_HATA Takım arkadaşına bunu yapamazsın.
RETURN 1
ENDIF

ON=@GETHIT
IF (<UID>!=<SRC>) && (<F_CTF_ISFRIEND <SRC>>)
SYS_HATA Takım arkadaşına bunu yapamazsın.
RETURN 1
ENDIF

ON=@SPELLCAST
IF (<SERV.SPELL.<DARGN1>.FLAGS>&SPELLFLAG_SUMMON)
SRC.SYS_HATA Yarışmada bunu kullanamazsınız.
SRC.F_FIZZLE
RETURN 1
ELSEIF (<UID>!=<SRC>) && (<F_CTF_ISFRIEND <SRC.ACT>>) && (<SERV.SPELL.<DARGN1>.FLAGS>&SPELLFLAG_HARM)
SRC.SYS_HATA Takım arkadaşınıza bu büyüyü atamazsınız.
SRC.F_FIZZLE
RETURN 1
ELSEIF !(<F_CTF_ISFRIEND <SRC.ACT>>) && (<SERV.SPELL.<DARGN1>.FLAGS>&SPELLFLAG_GOOD)
SRC.SYS_HATA Düşmanına bu büyüyü atamazsın.
SRC.F_FIZZLE
RETURN 1
ENDIF

ON=@DEATHCORPSE
REF3=<ARGO.MORE2>
REF3.STONE 1
REF3.TIMERF 4,SPELLEFFECT S_RESURRECTION,1000,<UID>
REF3.TIMERF 5,STONE 0
REF3.TIMERF 6,GO <DEF.CTF_ENTER_GO_<TAG.TEAM>>
LOCAL.ITEM=<QVAL STRMATCH("<REF3.TAG.TEAM>","RED")?I_CTF_RED:I_CTF_BLUE>
IF (<LOCAL.ITEM>==I_CTF_RED)
LOCAL.GIDECEK=<DEF.CTF_FLAG_MOREP_BLUE>
ELSEIF (<LOCAL.ITEM>==I_CTF_BLUE)
LOCAL.GIDECEK=<DEF.CTF_FLAG_MOREP_RED>
ENDIF
FOR 0 <EVAL (<ARGO.RESCOUNT>)-1>
IF (<ARGO.FINDCONT(<DLOCAL._FOR>).ID>==<LOCAL.ITEM>)
TRY UID.<ARGO.FINDCONT(<DLOCAL._FOR>).REMOVE
ENDFOR
SERV.NEWITEM <LOCAL.ITEM>
NEW.P <ARGO.P>
SERV.B @1153,,1 CTF:<REF3.NAME>[<F_TEAM <REF3.TAG.TEAM>> Takım] <REF3.TAG0.KILLER> tarafından öldürüldü.
SERV.B @1153,,1 CTF:<SRC.NAME>[<F_TEAM <SRC.TAG.TEAM>> Takım]öldüğü için bayrak eski yerine döndü...
ENDIF

ON=@ITEMSTEP
REF1=<ACT.UID>
REF2=<VAR0.MOONGATE_UID>
LOCAL.ITEM=<QVAL STRMATCH("<SRC.TAG.TEAM>","RED")?I_CTF_RED:I_CTF_BLUE>
LOCAL.ITEM2=<QVAL STRMATCH("<SRC.TAG.TEAM>","RED")?I_CTF_BLUE:I_CTF_RED>

IF (<REF1.BASEID>==<LOCAL.ITEM>)
REF1.BOUNCE=<SRC>
SERV.B @1153,,1 CTF:<SRC.NAME>[<F_TEAM <SRC.TAG.TEAM>> Takım] isimli oyuncu <REF1.NAME>'ı kaptı...
ENDIF

IF (<SRC.FINDID.<LOCAL.ITEM>>) && (<REF1.BASEID>==<LOCAL.ITEM2>)
VAR0.ROUND ++
VAR0.TEAM_<SRC.TAG.TEAM> ++
SERV.B @1153,,1 CTF:<DVAR0.ROUND>.turu <F_TEAM <SRC.TAG.TEAM>>[<SRC.TAG.TEAM>] takım kazandı...
SRC.GO <DEF.CTF_ENTER_GO_<SRC.TAG.TEAM>>
SRC.FINDID.<LOCAL.ITEM>.REMOVE

SERV.NEWITEM <LOCAL.ITEM>
NEW.P <QVAL STRMATCH("<SRC.TAG.TEAM>","RED")?<DEF.CTF_FLAG_MOREP_BLUE>:<DEF.CTF_FLAG_MOREP_RED>>
ENDIF

IF (<DVAR0.TEAM_RED>==<DDEF.CTF_WINNER_POINT>)
F_WINNER_TEAM=RED
ELSEIF (<DVAR0.TEAM_BLUE>==<DDEF.CTF_WINNER_POINT>)
F_WINNER_TEAM=BLUE
ENDIF

ON=@SKILLGAIN
RETURN 1

ON=@MOUNT
RETURN 1

ON=@HUNGER
RETURN 1

ON=@FAMECHANGE
RETURN 1

ON=@KARMACHANGE
RETURN 1

ON=@ITEMDCLICK
IF (<ACT>!=<SRC.FINDLAYER(21)>) && (<ACT.BASEID>==I_FRUNEBOOK)  || STRMATCH("<ACT.TAG.TEAM>","") || !STRMATCH("<ACT.TAG.TEAM>","<SRC.TAG.TEAM>")
SRC.SYS_HATA Bunu siz kullanamazsınız.
RETURN 1
ENDIF

ON=@ITEMEQUIPTEST
IF STRMATCH("<ACT.TAG.TEAM>","") || !STRMATCH("<ACT.TAG.TEAM>","<SRC.TAG.TEAM>")
SRC.SYS_HATA Bunu siz kullanamazsınız.
RETURN 1
ENDIF

ON=@USERWARMODE
IF (<SRC.TAG0.POINT_DIALOG>)
SRC.F_RESENDIALOG D_CTF_SKOR
ENDIF

[ITEMDEF I_CTF_BLUE]
ID 01577
NAME Mavi Bayrak
TYPE=T_CTF_ITEM

ON=@CREATE
COLOR = 05
ATTR = ATTR_STATIC|ATTR_MOVE_NEVER
TAG.TEAM=Blue

[ITEMDEF I_CTF_RED]
ID 01577
NAME Kırmızı Bayrak
TYPE=T_CTF_ITEM

ON=@CREATE
COLOR = 020
ATTR = ATTR_STATIC|ATTR_MOVE_NEVER
TAG.TEAM=Red

[FUNCTION f_winner_team]
REF1=<VAR0.MOONGATE_UID>
VAR0.TEAM_RED=
VAR0.TEAM_BLUE=
VAR0.ROUND=
<QVAL STRMATCH("<ARGS>","BLUE")?LOCAL.KAZANAN Blue:LOCAL.KAZANAN Red>
VAR.CAPTURE_FLAG=<LOCAL.KAZANAN> takım
SERV.B @1153,,1 CTF:Yarışmayı <LOCAL.KAZANAN>[<F_TEAM <LOCAL.KAZANAN>>] takım kazanmıştır.
SERV.B @1153,,1 Kendilerini tebrik ederiz.
FOR <REF1.DMOREY>
REF3=<REF1.TAG0.UID_<DLOCAL._FOR>>
IF STRMATCH("<REF3.TAG.TEAM>","<LOCAL.KAZANAN>")
REF3.F_FINISH
REF3.GOLD +=<DDEF.CTF_WINNER_ADD_GOLD>
REF3.SYS_OK Ödülünüz bankanıza aktarılmıştır.
ELSE
REF3.F_FINISH
ENDIF
IF !(<REF3.ISONLINE>)
REF3.NOTICE 'Capture The Flag' yarışmasını <LOCAL.KAZANAN>[<F_TEAM <LOCAL.KAZANAN>>] takım kazanmıştır.
ENDIF
ENDFOR
REF1.TIMERF 1,REMOVE

[FUNCTION f_ctf_isfriend]
IF STRMATCH("<TAG.TEAM>","<UID.<ARGS>.TAG.TEAM>")
RETURN 1
ENDIF
RETURN 0

[FUNCTION f_team]
RETURN <QVAL STRMATCH("<ARGS>","Blue")?Mavi:Kırmızı>

[FUNCTION f_finish]
TAG0.TEAM=
TAG0.KILLS=
TAG0.DEATHS=
TAG0.POINT_DIALOG=
EVENTS -E_CTF
F_UNEQUIP_PACK
FINDLAYER(21).REMOVE
GO <DEF.CTF_FINISH_MOREP>

[FUNCTION ctf]
SRC.TAG0.POINT_DIALOG=1
SRC.SYS_OK Puan gösterme dialogu aktif edildi.
SRC.SYS_OK Kullanmak için war/peace yapınız.

[DIALOG D_CTF_SKOR]
100,100
NOMOVE
REF1=<VAR0.MOONGATE_UID>

RESIZEPIC 0 0 02422 300 250
DHTMLGUMP 70 16 999 20 0 0 <DEF.BFONT_RED>Capture The Flag Etkinliği
BUTTON 35 229 <DEF.BUTTONID_1> 1 0 1
DHTMLGUMP 55 229 999 20 0 0 Bu menü birdaha açılmasın.

LOCAL.PAGE=1
LOCAL.PLAYER=0

PAGE 1
FOR <REF1.DMOREY>
REF4=<REF1.TAG0.UID_<DLOCAL._FOR>>
IF (<DLOCAL.PLAYER> >8)
DLOCAL.PLAYER=0
BUTTON 150 230 <DEF.BUTTONID_1> 0 <eval (<DLOCAL.PAGE>)+1> 1
DLOCAL.PAGE +=1
PAGE <DLOCAL.PAGE>
BUTTON 150 230 <DEF.BUTTONID_1> 0 <eval (<DLOCAL.PAGE>)-1> 1
ENDIF
DHTMLGUMP 40 <EVAL (<LOCAL.PLAYER>*20)+50> 999 20 0 0 <REF4.NAME>[<F_TEAM <REF4.TAG.TEAM>>]Kills:<REF4.DTAG0.KILLS>,Deaths:<REF4.DTAG0.DEATHS>
LOCAL.PLAYER ++
ENDFOR

[DIALOG D_CTF_SKOR BUTTON]
ON=1
SRC.TAG0.POINT_DIALOG=
SRC.SYS_OK Bu dialog bir daha açılmayacak tekrar aktif etmek için '.ctf' yazınız.



Yorumlar

1.   Gönderen Xearth   27-06-2010 11:55    

güzel iş çıkartmışsın eline sağlık.

2.   Gönderen aldarson   27-06-2010 12:01    

birkaç ay önce yazdığım bir scriptti pek stabil olduğu söylenemez dahada düzenlenip iyi bir hale gelebilir

3.   Gönderen Xearth   27-06-2010 15:13    

işlevi görüyor ise sorun yok

4.   Gönderen tugi31   18-08-2010 15:31    

bn ekledım scp yı oyunda .add i_moongate_ctf yazdım : Oyle Bır komut yok dıyor :S

Oylamalar

Oylama :
Üyelerin oylama ortalaması (10 dışında) : Henüz Oylanmamış   
Oylar: 0

Benzer Sayfalar

SayfalarYorumlarGönderenTarih

Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,