öncelikle iyi günler u-s ailesi,

sizlerden bir konu hakkında yardım istiyorum. şimdi örn: gm topuk yarışması yapıyorum ve gate katılım süresi dolduktan sonra katılımcı sayısı 10 un altında ise nasıl yarışmayı iptal edebilirim, bu konuda takıldım ve aklıma bir şey gelmedi sizlerden biraz yardım istiyorum.
Master
59.2997
En basit haliyle gate'e bir tag ver ve ilk değeri sıfır olsun. Daha sonra her geçişte o tag değerini artır. Gate'in süresi de yarışmanın başlayacağı kodları tetiklesin. @timer işlediği an, yani timer 0 olduğu an altından o tag değerinin 10'dan büyük olup olmadığını sorgula. Değilse yarışmayı başlatma, geçmişse yarışmayı başlatan işlemleri yaptırt.
[plevel 4]
gmtopuk

[Function gmtopukyap]
serv.allclients sysmessage @0785,1,1 Gm Topuk Yarismasi Baslamistir
serv.allclients sysmessage @0785,1,1 Katilmak Isteyenler Safe Alandaki Gateden Gecebilirler..!
serv.allclients sysmessage @0785,1,1 Katilim Suresi 5 Dk'dir.!
src.newitem i_gate_topuk
new.p 5948,1948

[itemdef i_gate_topuk]
id i_moongate_blue
TYPE=t_gmtopukgate
name GM Topuk Gate

on=@create
tag.katilim=0
color 0bb7
timer 300
timerf 10,serv.allclients sysmessage @0481,1,1 Duyuru: Gm Topuk Yarismasi vardir.Katilmak icin safede'ki gateyi kullaniniz.
timerf 60,serv.allclients sysmessage @0481,1,1 Yarisma Duyuru: Gm Topuk yarismasina katilabilmek icin Son 4 Dk.
timerf 120,serv.allclients sysmessage @0481,1,1 Yarisma Duyuru: Gm Topuk yarismasina katilabilmek icin Son 3 Dk.
timerf 180,serv.allclients sysmessage @0481,1,1 Yarisma Duyuru: Gm Topuk yarismasina katilabilmek icin Son 2 Dk
timerf 240,serv.allclients sysmessage @0481,1,1 Yarisma Duyuru: Gm Topuk yarismasina katilabilmek icin Son 1 Dk
timerf 270,serv.allclients sysmessage @0481,1,1 Yarisma Duyuru: Gm Topuk yarismasina katilabilmek icin Son 30 sn
timerf 299,serv.allclients sysmessage @0481,1,1 Yarisma Duyuru: Gm Topuk yarisi Katilimlari Sona Ermistir!

on=@click
message @0790,,1 [<eval <var.katilim>> Kisi Katildi ]
message @38,,1 [GM Topuk Giris]

if (<tag.katilim>==1)
src.go 5424,1125
src.stone 1
return 1
endif

if (<tag.katilim>==2)
src.go 5424,1125
src.stone 1
return 1
endif

if (<tag.katilim>==3)
src.go 5424,1125
src.stone 1
return 1
endif

if (<tag.katilim>==4)
src.go 5424,1125
src.stone 1
return 1
endif

if (<tag.katilim>==5)
src.go 5424,1125
src.stone 1
return 1
endif


on=@step
src.sysmessage @0785,1,1 Cift Tiklayin.
return 1

on=@dclick
IF ( <DISTANCE> < 4 )
src.sdialog d_gmtopukkatilim
return 1
else
src.sysmessage @38,,1 Uzaksiniz!
return 1
endif

on=@timer
topukbaslat
topukstoneac
serv.allclients nightsight 1
serv.allclients sysmessage @0785,1,1 Katilimlar Sona Ermistir.Gm Topuk Yarismasi Baslamistir. Butun yarismacilara basarilar dileriz.
remove


[function topukbaslat]
serv.newnpc c_vortex
new.name Energy Vortex
new.color 00
new.p 5381,1089



[function topukstoneac]
serv.allclients stone 0
return 1

[events e_topukta]
on=@logout
src.go safe alan
var.katilim +=-1
src.resurrect
src.stone 0
src.events -e_topukta

on=@death
serv.allclients sysmessage @0785,1,1 <src.name> Gm Topuk yarismasinda oldu ve elendi.
hits <str>
src.go safe alan
src.events -e_topukta
var.katilim +=-1
return 1

on=@click
message @033 [ Gm Topuk ]
message @07a1 <name>
return 1

on=@attack
skill fail
action -1
return 1 

on=@itemdclick
src.sysmessage @07a1 Yarismadayken bunu yapamassiniz!
return 1


on=@itempickup_ground
src.sysmessage @07a1 Yarismadayken bunu yapamassiniz!
return 1


on=@skillstart
if (<action> == id(skill_hiding)) || (<action> == skill_hiding) || (<action> == id(skill_stealth)) || (<action> == skill_stealth)
src.sysmessage @07a1 Yarismadayken bunu yapamassiniz!
skill fail
return 1
endif

on=@spellcast
if (<src.account.plevel> == 1)
src.sysmessage @07a1 Yarismadayken bunu yapamassiniz!
f_fizzle
return 1
endif

on=@gethit
if <var.katilim> = 1
src.remove
odulgate
src.fix
return 1
endif


[Function odulgate]
src.newitem i_odulgate
src.act.p 5278,433,15
src.sysmessage @0785,1,1 Odul <var.odulver> 


[Itemdef i_odulgate]
Defname i_odulgate
name Odulgate
id i_moongate_blue


on=@click
message @0800 [Gm Topuk Odul Gate]
return 1

on=@create
serv.allclients sysmessage @040,1,1 Gm Topuk Yarismasi Sona Ermistir.
color 080a
attr 010

on=@step
src.newitem i_gold,50000
src.act.bounce
src.newitem i_gold, 50000
src.act.bounce
src.newitem i_gold, 50000
src.act.bounce
src.go safe alan
src.events -e_topukta
serv.allclients sysmessage @0785,1,1 Gm Topuk Yarismasini "<src.name>" kazandi !
var.katilim 0
remove
return 1


[function binekolmasin]
if (<findlayer.25>)
tag.binekid <findlayer.25.more1> 
tag.binekkarma <uid.<findlayer.25.more2>.karma>
tag.binekfame <uid.<findlayer.25.more2>.fame>
tag.binekfood <uid.<findlayer.25.more2>.food> 
tag.binekcolor <uid.<findlayer.25.more2>.color>
tag.binekname <findlayer.25.name>

serv.newitem i_binek_hafiza 
new.tag.name <tag.binekname>
new.tag.fame <tag.binekfame>  
new.tag.karma <tag.binekkarma> 
new.tag.food <tag.binekfood>
new.tag.binekid <tag.binekid>
new.color <tag.binekcolor>
new.cont <findlayer(29).uid> 
new.more2 1
findlayer.25.remove
else
return 1
endif

[itemdef i_binek_hafiza]
id i_deed
type t_normal
weight 20.0

on=@click
if (<more2>)
message <name> - <tag.name>
return 1
else
message <name>
return 1
endif

on=@dclick
if (<more2>)
try src.newnpc <tag.binekid> 
link <src.act.uid>
link.name <tag.name>
link.karma <tag.karma>
link.fame <tag.fame> 
link.food <tag.food>
link.color <color>
link.memorydel <src.uid>
link.newitem i_memory
link.act.attr 04
link.act.more1 04
link.act.more2 <serv.time>
link.act.morep <link.p>
link.act.color memory_ipet
link.act.timer -1
link.act.link <src.uid>
link.act.cont <link.uid>
link.flags <link.flags>&statf_pet
link.update
link.anim 5
link.bark 3
remove
return 1
else
return1
endif

[dialog d_gmtopukkatilim]
0, 0
nomove
PAGE 1
resizepic 300 200 5100 250 130
resizepic 310 210 3500 230 110


dtext 380 210 0481 Gm Topuk
dtext 375 249 0846 Evet Katilcam
dtext 375 283 0846 Hayir Tesekkurler
button 350 250 55 56 1 0 1
button 350 285 55 56 2 0 2
timerf 10,dialogclose d_gmtopukkatilim
sysmessage @45,,1 Diyalog 10 saniye sonra kapanacaktir.

[dialog d_gmtopukkatilim button]

ONBUTTON=0
RETURN 1 

ONBUTTON=1
IF (<src.ISNEARTYPE t_gmtopukgate 3>)
forchars 25
if (<memoryfindtype.memory_ipet>)
if (<memoryfindtype.memory_ipet.link>==<src.uid>)
src.sysmessage @55,,1 Etrafta binegin varken yarismaya katilamazsiniz..
return 1
endif
endif
endfor



if (<src.findlayer.25.uid>)
src.sysmessage @034,1,1 Altinizda binek varken Katilamazsiniz.
return 1
endif

if (<src.hits> < <src.str>)
src.sysmessage @034,1,1 Yaraliyken Yarismaya Katilamazsiniz.
return 1
endif

if (<src.findid.i_rune_poison>)
src.sysmessage @034,1,1 Uzerinizde poison varken yarismaya Katilamazsiniz.
return 1
endif

src.events +e_topukta
var.katilim +=1
src.stone
src.findid.i_rune_reactive_armor.remove
src.findid.i_rune_bless.remove
src.hits <src.str>
src.stam <src.dex>
DORAND 4
src.go 5278,428,15
src.go 5272,432,15
src.go 5278,439,15
src.go 55283,433,15
ENDDO
src.f_bank_equipment
src.binekolmasin
serv.allclients sysmessage @0785,1,1 <src.name> Yarismaya Katildi.Toplam Yarismaci Sayisi: <eval <var.katilim>>
return 1
else
src.sysmessage @38,,1 Uzaksiniz!
return 1
endif

[typedef t_gmtopukgate]

[eof]

valla yapamadım :D biraz yapar gibi oldum ama yapamadım yani. bi el atarsan sevinirim.
Neophyte
26.6001
girişte zaten katılımı artırıyorsunuz

on=@timer
if (<eval <var.katilim>> > 10)
topukbaslat
topukstoneac
else
iptalet
endif
gibi mantık kurarak basit bir şekilde deneye deneye yapabilirsiniz. topukbaslat fonksiyonu gibi iptalet şeklinde bir fonksiyon eklersiniz o da o eventtakileri gönderir. Önce diğer hatalarla ilgilenin bence az oyuncuyla topuk olsun varsın : =)
bu sefer yarışma başlamıyo :D safede atmıyo
iptelet function'ı yaratmazsan olmaz zaten
Bu scriptin Heryerinde Hata var Zaten ;)

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.