01 Oca 2018

Quest

Gate’den geçen oyuncular Quest Yaratığı’nın olduğu alana ışınlanırlar. Öldüklerinde cesetleri yere düşmeden tekrar doğarlar. Quest yaratığı öldüğünde herkes Güvenli Alan’a ışınlanır ve ödüller herkese eşit olarak dağıtılır.

 

//Ultima Online Club

[plevel 6]
questyap

[Function questyap]
serv.allclients sysmessage @38,1,1 [Yarisma Duyuru]
serv.allclients sysmessage @0790,1,1 Quest Katilimlari Baslamistir.
serv.allclients sysmessage @0790,1,1 Katilimlar Npc Olene Kadar Devam Edecektir.
src.newitem i_quest_gate
new.p //GATENİN AÇILACAĞI YER
serv.newnpc c_quest_npc
serv.new.p YARATIĞIN DOĞACAĞI YER
serv.new.update

[itemdef i_quest_gate]
id i_moongate_blue
type t_questgate
name Quest Gate

on=@create
var.questkatilim=0
color 07d3
timerf 10,serv.allclients sysmessage @50,,1 Duyuru: Quest vardir.Katilmak icin safede’ki gateyi kullaniniz.
timerf 60,serv.allclients sysmessage @50,,1 Duyuru: Quest vardir.Katilmak icin safede’ki gateyi kullaniniz.
timerf 120,serv.allclients sysmessage @50,,1 Duyuru: Quest vardir.Katilmak icin safede’ki gateyi kullaniniz.
timerf 180,serv.allclients sysmessage @50,,1 Duyuru: Quest vardir.Katilmak icin safede’ki gateyi kullaniniz.
timerf 240,serv.allclients sysmessage @50,,1 Duyuru: Quest vardir.Katilmak icin safede’ki gateyi kullaniniz.
timerf 270,serv.allclients sysmessage @50,,1 Duyuru: Quest vardir.Katilmak icin safede’ki gateyi kullaniniz.
timerf 299,serv.allclients sysmessage @50,,1 Duyuru: Quest vardir.Katilmak icin safede’ki gateyi kullaniniz.

on=@click
message @38,,1 [Quest Giris]
message @0790,,1 [<eval <var.questkatilim>> Kisi Katildi ]
return 1

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

on=@dclick
IF ( <DISTANCE> < 4 )
src.sdialog d_questkatilim
return 1
else
src.sysmessage @0790,,1 Yeterince Yakin Degilsiniz.
return 1
endif

[events e_quest]

on=@hit
If !(<act.id>==c_quest_npc) && !(<act.uid> == <src.uid>) && !(<act.id>==c_quest_loot)
src.sysmessage @2028 Quest Yarismasindayken sadece Npc’lere saldirabilirsiniz.
return 1
endif

on=@spellcast
if (<argn>==45) || (<argn>==32) || (<argn>==52) || (<argn>==24) || (<argn>==57) || (<argn>==54) || (<argn>==50) || (<argn>==49) || (<argn>==45) || (<argn>==43) || (<argn>==40) || (<argn>==39) || (<argn>==28) || (<argn>==38) || (<argn>==44) || (<argn>==58) || (<argn>==61) || (<argn>==62) || (<argn>==63) || (<argn>==64) || (<argn>==60)
f_fizzle
return 1
If !(<act.id>==c_quest_npc) && !(<act.uid> == <src.uid>) && !(<act.id>==c_quest_loot)
src.sysmessage @2028 Quest Yarismasindayken sadece Npc’lere saldirabilirsiniz.
return 1
endif
endif
mana <int>

on=@Spellselect
mana <int>

on=@skillstart
If !(<act.id>==c_quest_npc) && !(<act.uid> == <src.uid>) && !(<act.id>==c_quest_loot)
src.sysmessage @2028 Quest Yarismasindayken sadece Npc’lere saldirabilirsiniz.
return 1
endif

on=@itemdclick
if (<act.baseid> == i_binek_deed) || (<act.baseid> == i_runebook) || (<act.baseid> == i_pet_golem2) || (<act.baseid> == i_pet_golem1) || (<act.baseid> == i_potion_explosiongreat) || (<act.baseid> == i_potion_explosion) || (<act.baseid> == i_potion_explosionless) || (<act.baseid> == i_runebook) || (<act.baseid> == i_deed_randommount1) || (<act.baseid> == i_deed_animal) || (<act.baseid> == i_egg_ostard_olgun2) || (<act.baseid> == i_egg_ostard_olgun2) || (<act.baseid> == i_deed_horse_random)
src.sysmessage @2028 [ <act.name> ] Bu bolgede kullanilmaz..
return 1
endif

on=@mount
src.sysmessage @2028 Bu Bolgede Binege Binemezsiniz.
return 1

on=@dismount
src.sysmessage @2028 Bu Bolgede Binekten Inemezsiniz.
return 1

on=@logout
src.events -e_quest
src.events +//SAFE EVENTİ
var.questkatilim +=-1
src.go safe alan
src.stone 0
return 1

On=@Death
if <isplayer>
hits <str>
go 5248,1097
src.findid.i_rune_poison.remove
return 1
endif

on=@gethit
if !<src.baseid> =c_quest_npc && !<src.baseid> = c_quest_loot
elif <src.baseid> = c_man && <src.baseid> = c_woman
src.sysmessage @2028 Bu Bolgede Yasak.
return 1
else
return 1
endif

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

[dialog d_questkatilim]
0, 0
nomove
PAGE 1
resizepic 105 10 3500 270 270
gumppic 205 100 9000
dtext 180 50 49 Quest Katilim
dtext 160 230 49 Quest’e Katilicakmisiniz ?
dtext 130 120 49 Evet Hayir
button 135 140 55 56 1 0 1
button 330 140 55 56 2 0 2
timerf 10,dialogclose d_questkatilim

[dialog d_questkatilim button]

ONBUTTON=0

ONBUTTON=1
IF (<src.ISNEARTYPE t_questgate 3>)
forchars 20
if (<memoryfindtype.memory_ipet>)
if (<memoryfindtype.memory_ipet.link>==<src.uid>)
src.sysmessage @0790,,1 Etrafta binegin varken yarismaya katilamazsiniz..
return 1
endif
endif
endfor
if (<src.account.plevel> > 1)
src.sysmessage @0790,1,1 Stafflar Yarismalara Katilamaz.
return 1
endif

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

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

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

src.invis 0
src.events +e_quest
var.questkatilim +=1
src.hits <src.str>
src.stam <src.dex>
src.mana <src.int>
src.go //OYUNCULARIN GÖNDERİLECEĞİ YER
src.events -//SAFE EVENTİ
serv.allclients sysmessage @50,1,1 <src.name> Quest’e Katildi.Toplam Yarismaci Sayisi: <eval <var.questkatilim>>
return 1
else
src.sysmessage @0790,,1 Yeterince Yakin Degilsiniz.
return 1
endif

[function questbitir]
forplayers 6143
if (<isevent.e_quest>)
resurrect
go safe alan
events -e_quest
stone 0
events +//SAFE EVENTİ
endif
endfor

[function f_questgatesil]
forinstances i_quest_gate
remove
endfor

[function f_questbitiyor]
forplayers 12555
if (<isevent.e_quest>)
questbitiyor
endif
endfor

[function questbitiyor]
newitem //VERİLECEK ÖDÜL
new.cont <findlayer(layer_bankbox).uid>
sysmessage @07a1,,1 İtemler Bankanıza Aktarılmıştır.
go safe alan
fame 10000
events -e_quest
events +//SAFE EVENTİ
return 1

[itemdef i_quest_cikisgate]
id i_moongate_blue
type t_questcikis
name Olumsuz alan

on=@create
color 0846

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

on=@dclick
if ( <DISTANCE> < 4 )
src.sdialog d_questcikis
return 1
else
src.sysmessage @0790,,1 Yeterince Yakin Degilsiniz.
return 1
endif

[dialog d_questcikis]
0, 0
nomove
PAGE 1
resizepic 105 10 3500 270 270
gumppic 205 100 9000
dtext 170 50 49 Quest Cikis
dtext 130 230 49 Questten Cikacak Misiniz ?
dtext 130 120 49 Evet Hayir
button 135 140 55 56 1 0 1
button 330 140 55 56 2 0 2
timerf 10,dialogclose d_questcikis

[dialog d_questcikis button]

ONBUTTON=0

ONBUTTON=1

if (<src.findid i_rune_poison>)
src.sysmessage @38,,1 Uzerinizde Zehir Varken Moongate’leri Kullanamazsiniz.
return 1
elseif !(<src.flags>&statf_dead) && (<src.hits> < (<src.str>))
src.sysmessage @38,,1 Yaraliyken Moongate’leri Kullanamazsiniz.
return 1
endif
IF (<src.ISNEARTYPE t_questcikis 3>)
SRC.GO safe alan
var.questkatilim +=-1
serv.allclients sysmessage @1153,,1 <src.name> Pazar Alanina Gecis Yapti.
src.events +//SAFE EVENTİ
ELSE
SRC.SYSMESSAGE @38,,1 Moongateden cok uzaktasiniz.
return 1
ENDIF
SRC.FIX

[typedef t_questgate]

[eof]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir