Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [comment tournament]
- hazırlayan: Slothere
- tarih: 31 Mayıs 2011
- version: 56b+
- # [!] List komutundan ötürü güncel sürüm gerekir.
- -------------------------------------------------
- [plevel 4]
- turnuvaDuzenle
- [function turnuvaDuzenle]
- if (<var0.tournamentStone>)
- sysmessage Su anda zaten bir turnuva duzenleniyor.
- else
- serv.b Turnuva duzenlenmektedir. Katilimlar icin ".katil" komutunu kullanabilirsiniz.
- serv.b Katilimlar 5 dk sonra sonra erecektir.
- serv.newitem i_grave_stone
- new.p 1,1
- new.attr attr_move_never|attr_decay|attr_invis
- new.name tournament stone
- var0.tournamentStone = <new>
- new.type = t_stone_tournament
- new.timer = 300
- new.more1 = 1
- List.tournamentPlayers.Clear
- List.tournamentWinners.Clear
- endif
- [plevel 1]
- katil
- [function katil]
- if !(<var0.tournamentStone>)
- sysmessage Su anda turnuva duzenlenmiyor.
- elseif (<List.tournamentPlayers.FindElem <uid>>)
- sysmessage Su an zaten turnuvaya katilmis vaziyettesin.
- elseif (<uid.<var0.tournamentStone>.more1> > 1)
- sysmessage Turnuva basladigi icin katilamazsiniz.
- else
- List.tournamentPlayers.Add = <uid>
- sysmessage Turnuvaya katildiniz. Oyundan ayrilirsaniz otomatik diskalifiye olursunuz.
- events +e_tournament_viewer
- go xxxx,yyyy,z // buraya bekleyen oyuncuların gidecegi koordinat girilmeli.
- tag0.lastPosition = <p>
- serv.b <name> turnuvaya katildi.
- serv.b Toplam katilimci sayisi: <List.tournamentPlayers.Count>
- serv.b Katilimlarin sona ermesine <eval(<uid.<var0.tournamentStone>.timer>/60)>dk kaldi.
- endif
- [events e_tournament_viewer]
- on=@attack
- return 1
- on=@hittry
- return 1
- on=@gethit
- return 1
- on=@hunger
- return 1
- on=@skillstart
- return 1
- on=@spellcast
- if !((<argn>==4) || (<argn>==6) || (<argn>==7) || (<argn>==9) || (<argn>==11) || (<argn>==15) || (<argn>==16) || (<argn>==17) || (<argn>==29) || (<argn>==36))
- return 1
- endif
- on=@click
- message [Turnuvada]
- on=@logout
- local.index = <List.tournamentPlayers.FindElem <uid>>
- List.tournamentPlayers.<dlocal.index>.Remove
- serv.b <name> oyundan ayrildigi icin turnuvadan diskalifiye oldu.
- go <tag0.lastPosition>
- tag0.lastPosition
- [typedef t_stone_tournament]
- on=@timer
- if (<dmore1> == 1)
- serv.b Katilimlar sona erdi. Turnuva basliyor...
- more1 = 2
- timer = 5
- return 1
- endif
- if ((<List.tournamentPlayers.Count> % 2) > 0)
- local.lastIndex = <eval(<List.tournamentPlayers.count>-1)>
- ref13 = <List.tournamentPlayers.<dlocal.lastIndex>>
- ref13.sysmessage Turnuvadaki katilimci fazlaligindan oturu otomatik olarak yarismadan cikartildiniz.
- ref13.go <ref12.tag0.lastPosition>
- ref13.tag0.lastPosition
- ref13.events -e_tournament_viewer
- List.tournamentPlayers.<dlocal.lastIndex>.Remove
- endif
- if (<List.tournamentPlayers.Count> >= 2)
- local.totalCount = <eval(<List.tournamentPlayers.Count>)>
- while (<dlocal.totalCount> > 0)
- local.totalCount = <eval(<local.totalCount>-1)>
- local.rand = <r<dlocal.totalCount>>
- local.t1 = <List.tournamentPlayers.<dlocal.totalCount>>
- local.t2 = <List.tournamentPlayers.<dlocal.rand>>
- List.tournamentPlayers.<dlocal.totalCount> = <local.t2>
- List.tournamentPlayers.<dlocal.rand> = <local.t1>
- endwhile
- ref10 = <List.tournamentPlayers.0>
- ref11 = <List.tournamentPlayers.1>
- List.tournamentPlayers.0.Remove
- List.tournamentPlayers.1.Remove
- serv.b [Turnuva] <ref10.name> vs <ref11.name>
- ref10.go xxxx,yyyy,z // düellodaki ilk oyuncunun gönderileceği koordinat girilmeli.
- ref11.go xxxx,yyyy,z // düellodaki ikinci oyuncunun gönderileceği koordiant girilmeli.
- ref10.events -e_tournament_viewer
- ref11.events -e_tournament_viewer
- ref10.events +e_tournament_duel
- ref11.events +e_tournament_duel
- ref10.tag0.opponent = <ref11>
- ref11.tag0.opponent = <ref10>
- timer = 300
- return 1
- else
- if (<List.tournamentWinners.Count> < 2)
- ref12 = <List.tournamentWinners.0>
- ref12.tag0.opponent
- ref12.go <ref12.tag0.lastPosition>
- ref12.tag0.lastPosition
- ref12.events -e_tournament_viewer
- ref12.gold += 100000
- ref12.update
- List.tournamentWinners.Clear
- List.tournamentPlayers.Clear
- serv.b Turnuvayi <ref12.name> kazandi.
- var0.tournamentStone
- remove
- else
- List.tournamentPlayers.Clear
- while !(<isempty <List.tournamentWinners.<dlocal._while>>>)
- List.tournamentPlayers.Add = <List.tournamentWinners.<dlocal._while>>
- List.tournamentWinners.<dlocal._while>.Remove
- endwhile
- List.tournamentWinners.Clear
- serv.b Turnuvada mevcut tur tamamlandi, diger tura geciliyor.
- timer = 3
- endif
- endif
- return 1
- [events e_tournament_duel]
- on=@hunger
- return 1
- on=@callguards
- return 1
- on=@famechange
- return 1
- on=@karmachange
- return 1
- on=@spellcast
- if (<argn>==24) || (<argn>==33) || (<argn>==40) || (<argn>==44) || (<argn>==45) || (<argn>==50) || (<argn>==58) || (<argn>==60) || (<argn>==61) || (<argn>==62) || (<argn>==63) || (<argn>==64)
- return 1
- endif
- on=@death
- ref20 = <tag0.opponent>
- tag0.opponent
- List.tournamentWinners.Add = <ref20>
- ref20.events -e_tournament_duel
- events -e_tournament_duel
- ref20.go xxxx,yyyy,z // buraya bekleyen oyuncuların gidecegi koordinat girilmeli.
- ref20.events +e_tournament_viewer
- go <tag0.lastPosition>
- tag0.lastPosition
- serv.b <name> vs <ref20.name> | Kazanan: <ref20.name>
- ref21 = <var0.tournamentStone>
- ref21.timer = 3
- on=@logout
- ref20 = <tag0.opponent>
- tag0.opponent
- List.tournamentWinners.Add = <ref20>
- ref20.events -e_tournament_duel
- events -e_tournament_duel
- ref20.go xxxx,yyyy,z // buraya bekleyen oyuncuların gidecegi koordinat girilmeli.
- ref20.events +e_tournament_viewer
- go <tag0.lastPosition>
- tag0.lastPosition
- serv.b <name> oyundan ayrildigi icin hukmen maglup oldu. Kazanan <ref20.name>
- ref21 = <var0.tournamentStone>
- ref21.timer = 3
- [eof]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement