// ----------------------------
// FIX.SCP - GENEL BUG FIXLERI
// SON GUNCELLENME TARIHI: 4 AGUSTOS 2002 - faust
// ----------------------------
version=0.55
[function plly]
src.skillmenu=sm_polymorph
[function spell_say]
sayua 0835,6,0,enu <args>
[events e_death_announce]
On=@Death
if !(<isevent.e_qchar>)
if (<fame> > 9900) && (<memoryfindtype.memory_harmedby>) && (<act.ischar>) && (<act.uid> != <uid>) && (0<act.npc> == 0)
serv.allclients sysmessage @0810 <sex Lord/Lady> <name>, <act.name> tarafindan olduruldu.
endif
endif
[events fix]
ON=@itemPICKUP_PACK
if (<act.topobj.id> == c_pv)
if !(<uid> == <act.topobj.tag.owner>)
return 1
endif
elseif !(strmatch('<act.price>',''))
if (<act.price> > 0)
act.price 0
endif
endif
On=@Profile
if (<src.uid> == <uid>) || (0<src.account.plevel> > 2)
src.sysmessage Hesap: <account>, <eval (<account.totalconnecttime> / 60)>s
src.sysmessage Kayit: <account.firstconnectdate>
if (strmatch('<src.uid.04009a3fa.tag.<account>_vet>','01'))
src.sysmessage Veteran: odul verilmis.
endif
src.sysmessage Karakter: <eval (<age> / 86400)> gun once dogmus.
endif
On=@GetHit
if (<findtype.t_eq_trade_window>)
findtype.t_eq_trade_window.remove
endif
On=@EnvironChange
if !(<memoryfindtype.memory_guild.link.align>) || (<kills> > 5)
if (<findlayer(2).baseid> == i_shield_chaos) || (<findlayer(2).baseid> == i_shield_order)
findlayer(2).unequip
endif
endif
if ((<body> == c_man) || (<body> == c_woman)) // yimmeeah
if !((<findid.i_jail>) || (<flags>&statf_stone))
if (<food> == 2)
sayua 0835,6,0,enu * Acliktan Basiniz Donuyor *
elseif (<food> == 1)
sayua 0835,6,0,enu * Acliktan Olmek Uzeresiniz *
elseif (<food> == 0)
sayua 0835,6,0,enu * Acliktan Oldunuz *
newitem i_starver
act.equip
endif
endif
endif
if !((<findlayer(32)> || <findlayer(44)> || <findlayer(47)>)) // active stat-effecting spell?
stchk
if ((<findlayer(10).baseid> == i_platemail_gorget) && (<findlayer(6).baseid> == i_platemail_helm) && (<findlayer(7).baseid> == i_platemail_gloves) && (<findlayer(13).baseid> == i_platemail_chest) && (<findlayer(19).baseid> == i_platemail_arms) && (<findlayer(24).baseid> == i_platemail_leggings))
if (<dex> > 80)
dex 80
endif
elseif ((<findlayer(6).baseid> == i_bone_helmet) && (<findlayer(13).baseid> == i_bone_chest) && (<findlayer(19).baseid> == i_bone_arms) && (<findlayer(7).baseid> == i_bone_gloves) && (<findlayer(4).baseid> == i_bone_leggings))
if (<dex> > 85)
dex 85
endif
endif
if !((<isevent.e_str>) || (<isevent.e_dex>) || (<isevent.e_int>) || (<isevent.e_spr>))
var.stats <eval (<str> + <int> + <dex>)> // stat cap fix
if (<eval <var.stats>> > 250)
statcapdex
endif
endif
endif
On=@SpellCast
IF !(<act.uid>==0)
IF (<eval <src.act.z>> <= <eval <src.z>-20>)
sysmessage Target is not in line of sight.
return 1
ELSEIF (<eval <src.z>+20> <= <eval <src.act.z>>)
sysmessage Target is not in line of sight.
return 1
endif
endif
// pazar fix - faust
if strmatch('<src.region.name>','Pazar') || strmatch('<src.region.name>','Market')
if !((<argn> == 32) || (<argn> == 45) || (<argn> == 52) || (<argn> == 6) || (<argn> == 2) || (<argn> == 4) || (<argn> == 7) || (<argn> == 9) || (<argn> == 10) || (<argn> == 11) || (<argn> == 15) || (<argn> == 16) || (<argn> == 17) || (<argn> == 36) || (<argn> == 59) || (<argn> == 41))
f_fizzle
return 1
endif
endif
if (<src.findid.i_mageryfix>)
src.sysmessage @110 Bandaj uygularken buyu atamazsiniz.
f_fizzle
src.action -1
endif
if (<findlayer(1).type> == t_spellbook)
findlayer(2).unequip
elseif !(<findlayer(2).type> == t_weapon_mace_staff)
findlayer(1).unequip
findlayer(2).unequip
endif
if ((<flags>&statf_freeze) || (<flags>&statf_stone) || (<findtype.t_armor.cont.uid> == <uid>)) // dur bakim nolyo
f_fizzle
return 1
endif
if (<kills> < 6) && (strmatch('<targ.region.name>','Omnia'))
sysmessage Omnia'nin guclu buyu duvarlari sebebiyle buyunuz engellendi.
go 2202 1805 2
f_fizzle
return 1
endif
if (<act.ischar>)
if !(<act.flags>&statf_insubstantial) && (0<act.account.plevel> > 0<account.plevel>)
f_fizzle
return 1
elseif ((<argn> == 7) || (<argn> == 15)) // no prot. & reac. arm. over armor
if (<act.findtype.t_armor.cont.uid> == <act.uid>)
f_fizzle
return 1
endif
elseif (<argn> == 59) && !(<act.flags>&statf_dead)
f_fizzle
return 1
endif
endif
if (<act.id> == c_pv)
if !((<argn> == 25) || (<argn> == 26) || (<argn> == 46) || (<argn> == 48) || (<argn> == 49) || (<argn> == 54) || (<argn> == 55) || (<argn> == 57))
f_fizzle
return 1
endif
endif
// spell freeze time
if (<argn> == 1) // Clumsy
spell_say Uus Jux
mg1
elseif (<argn> == 2) // Create food
spell_say In Mani Ylem
mg1
elseif (<argn> == 3) // Feeblemind
spell_say Rel Wis
mg1
elseif (<argn> == 4) // Heal
spell_say In Mani
sd 1
mg1
elseif (<argn> == 5) // Magic Arrow
spell_say In Por Ylem
mg1
elseif (<argn> == 6) // Night Sight
spell_say In Lor
mg1
elseif (<argn> == 7) // Reactive Armor
spell_say Flam Sanct
sd 1
mg1
elseif (<argn> == 8) // Weaken
spell_say Des Mani
mg1
elseif (<argn> == 9) // Agility
spell_say Ex Uus
mg2
elseif (<argn> == 10) // Cunning
spell_say Uus Wis
mg2
elseif (<argn> == 11) // Cure
spell_say An Nox
sd 1
if (<act.findid.i_rune_poison>)
if (<act.findid.i_rune_poison.morey> > <eval ((<magery> + 400) / 2)>)
if !(rand(8) == 1)
act.effect 3,0374a,1,15,1
act.sound snd_spell_poison
f_fizzle
return 1
endif
endif
endif
mg2
elseif (<argn> == 12) // Harm
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say An Mani (Lanetler)
sd 1
mg2
elseif (<argn> == 13) // Trap
spell_say In Jux
f_fizzle
return 1
elseif (<argn> == 14) // Untrap
spell_say An Jux
f_fizzle
return 1
elseif (<argn> == 15) // Protection
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Uus Sanct
sd 1
mg2
elseif (<argn> == 16) // Strength
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Uus Mani
sd 1
mg2
elseif (<argn> == 17) // Bless
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Rel Sanct
sd 1
mg3
elseif (<argn> == 18) // Fireball
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Vas Flam
sd 1
mg3
elseif (<argn> == 19) // Lock
spell_say An Por
f_fizzle
return 1
elseif (<argn> == 20) // Poison
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say In Nox
psg
sd 2
elseif (<argn> == 21) // Telekinesis
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Ort Por Ylem
sd 1
if (<act.isitem>)
if (<act.cont.isitem>)
if ((<act.cont.type> == t_corpse) || (<act.topobj.id> == c_pv))
f_fizzle
return 1
endif
endif
else
f_fizzle
return 1
endif
mg3
elseif (<argn> == 22) // Teleport
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Rel Por
mg3
elseif (<argn> == 23) // Unlock
spell_say Ex Por
f_fizzle
return 1
elseif (<argn> == 24) // Wall
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say In Sanct Ylem
sd 1
mg3
elseif (<argn> == 25) // Arch Cure
spell_say Vas An Nox
sd 2
mg4
elseif (<argn> == 26) // Arch Protection
spell_say Vas Uus Sanct
sd 2
mg4
elseif (<argn> == 27) // Curse
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Des Sanct
sd 2
mg4
elseif (<argn> == 28) // Fire Field
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say In Flam Grav
if (<act.topobj.ischar>)
f_fizzle
return 1
endif
sd 2
mg4
elseif (<argn> == 29) // Greater Heal
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say In Vas Mani
sd 2
mg4
elseif (<argn> == 30) // Lightning
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Por Ort Grav
sd 2
mg4
elseif (<argn> == 31) // Mana Drain
spell_say Ort Rel
f_fizzle
return 1
elseif (<argn> == 32) // Recall
spell_say Kal Ort Por
sd 2
mg4
elseif (<argn> == 33) // Blade Spirits
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say In Jux Hur Ylem
sd 2
mg5
elseif (<argn> == 34) // Dispel Field
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say An Grav
if (<act.ischar>)
f_fizzle
return 1
endif
sd 2
mg5
elseif (<argn> == 35) // Incognito
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Kal In Ex
sd 2
mg5
elseif (<argn> == 36) // Magic Reflect
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say In Jux Sanct
sd 2
mg5
elseif (<argn> == 37) // Mind Blast
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Por Corp Wis
sd 3
mg5
elseif (<argn> == 38) // Paralyze
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say An Ex Por
sd 3
mg5
elseif (<argn> == 39) // Poison Field
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say In Nox Grav
if (<act.topobj.ischar>)
f_fizzle
return 1
endif
sd 2
mg5
elseif (<argn> == 40) // Summon Creature
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Kal Xen
sd 2
mg5
elseif (<argn> == 41) // Dispel
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say An Ort
sd 2
mg6
elseif (<argn> == 42) // Energy Bolt
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Corp Por
sd 2
mg6
elseif (<argn> == 43) // Explosion
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Vas Ort Flam
sd 2
mg6
elseif (<argn> == 44) // Invisibility
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say An Lor Xen
sd 2
mg6
elseif (<argn> == 45) // Mark
spell_say Kal Por Ylem
sd 2
mg6
elseif (<argn> == 46) // Mass Curse
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Vas Des Sanct
sd 2
mg6
elseif (<argn> == 47) // Paralyze Field
spell_say In Ex Grav
if (<act.topobj.ischar>)
f_fizzle
return 1
endif
sd 3
mg6
elseif (<argn> == 48) // Reveal
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Wis Quas
sd 2
mg6
elseif (<argn> == 49) // Chain Lightning
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Vas Ort Grav
if (<act.uid> == <uid>)
f_fizzle
return 1
endif
sd 3
mg7
elseif (<argn> == 50) // Energy Field
spell_say In Sanct Grav
if (<act.topobj.ischar>)
f_fizzle
return 1
endif
sd 3
mg7
elseif (<argn> == 51) // Flame strike
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Kal Vas Flam
sd 4
mg7
elseif (<argn> == 52) // Gate Travel
spell_say Vas Rel Por
sd 3
mg7
elseif (<argn> == 53) // Mana Vampire
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Ort Sanct
f_fizzle
return 1
elseif (<argn> == 54) // Mass Dispel
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Vas An Ort
sd 3
mg7
elseif (<argn> == 55) // Meteor Swarm
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Flam Kal Des Ylem
if (<act.uid> == <uid>)
f_fizzle
return 1
endif
sd 3
mg7
elseif (<argn> == 56) // Polymorph
src.plly
return 1
elseif (<argn> == 57) // Earthquake
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say In Vas Por
sd 3
mg8
elseif (<argn> == 58) // Energy Vortex
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say Vas Corp Por
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
elseif (<argn> == 59) // Resurrect
src.findid.i_spdelay_man.remove
src.findid.i_spdelay_woman.remove
spell_say An Corp
sd 3
mg8
elseif (<argn> == 60) // Air Elemental
spell_say Kal Vas Xen Hur
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
elseif (<argn> == 61) // Summon Deamon
spell_say Kal Vas Xen Corp
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
elseif (<argn> == 62) // Earth Elemental
spell_say Kal Vas Xen Ylem
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
elseif (<argn> == 63) // Fire Elemental
spell_say Kal Vas Xen Flam
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
elseif (<argn> == 64) // Water Elemental
spell_say Kal Vas Xen An Flam
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
endif
On=@SpellEffect
if (<flags>&statf_dead) // oluye dokunulmaz, ayiptir
if (<argn> == 59)
sfx snd_spell_resurrection
findlayer(22).remove
color <oskin>
update
effect 3,0376a,2,20,1
else
return 1
endif
elseif ((<argn> == 9) || (<argn> == 10) || (<argn> == 16) || (<argn> == 17)) // stat fix
findlayer(32).remove // spell
findlayer(44).remove // potion
elseif ((<argn> == 49) || (<argn> == 55)) // eve disardan chain atsalar bile icerdeki yemez
if !(<src.region.type> == <region.type>)
return 1
endif
elseif (<argn> == 37) // mindblast
if (<src.int> > <int>)
var.mb (<src.int> - <int>)
var.mb <eval (<var.mb> / 2)>
if (<eval <var.mb>> > 10)
var.mb 10
endif
damage <eval (<var.mb>)>
else
damage {5 10}
endif
sfx snd_spell_mind_blast
effect 3,0374a,1,15,1
elseif ((<argn> == 41) || (<argn> == 54)) // dispel & mass dispel
if (<findid.i_morpher>)
if !(<findid.i_pre_morph>)
findid.i_morpher.remove
endif
endif
elseif ((<argn> == 20) || (<argn> == 39)) // poison, poison field
if !(<findid.i_rune_poison>) && (<flags>&statf_poisoned)
flags <flags>&~statf_poisoned
endif
if !(<src.uid> == <uid>)
skill fail
endif
// if (<eval (<src.poisoning> + 100)> > <eval <findid.i_rune_poison.morey>>)
// findid.i_rune_paralyze.remove
// findid.i_rune_paralyze_field.remove
// findid.i_rune_poison.remove
// if (<distance> > 3) && (<eval (<src.poisoning> + 100)> > 700)
// poison (600 + {-100 100})
// else
// poison (<src.poisoning> + {-100 100})
// endif
// endif
// sfx snd_spell_poison
// effect 3,0374a,1,15,1
// return 1
elseif ((<argn> == 38) || (<argn> == 47)) // paralyze & paralyze field
if (<findid.i_pouch_trapped>)
effect 3,i_fx_explode,3,25,1
sound snd_spell_explosion
damage 20
findid.i_pouch_trapped.remove
return 1
elseif !(<src.uid> == <uid>)
findid.i_rune_poison.remove
endif
elseif (<argn> == 26) // no arch prot. over armor
if (<findtype.t_armor.cont.uid> == <uid>)
return 1
endif
elseif (<argn> == 25) // arch cure
if (<memoryfindtype.memory_town>) && !(<src.memoryfindtype.memory_town>)
return 1
elseif (<memoryfindtype.memory_guild.link.align> > 0) && !(<src.memoryfindtype.memory_guild.link.align>)
return 1
endif
if (<findid.i_rune_poison>)
if (<findid.i_rune_poison.morey> > <eval ((<src.magery> + 400) / 2)>)
if !(rand(8) == 1)
effect 3,0374a,1,15,1
sound snd_spell_poison
return 1
endif
endif
endif
elseif (<argn> == 4) || (<argn> == 29) || (<argn> == 11)
if (<memoryfindtype.memory_town>) && !(<src.memoryfindtype.memory_town>)
src.sysmessage Faction uyelerini iyilestiremezsiniz.
return 1
elseif (<memoryfindtype.memory_guild.link.align> > 0) && !(<src.memoryfindtype.memory_guild.link.align>)
src.sysmessage Order/Chaos uyelerini iyilestiremezsiniz.
return 1
endif
if (<argn> == 4) || (<argn> == 29)
if (<findid.i_rune_poison>)
effect 3,0374a,1,15,1
sound snd_spell_poison
return 1
endif
endif
endif
On=@SkillStart
if (<action> == skill_provocation)
src.sysmessage @185 Provocation skilli kullanima kapatilmistir.
skill fail
return 1
endif
// poi fix by faust
if (<action> == skill_poisoning)
if !((<act.baseid> == i_potion_poisonless) || (<act.baseid> == i_potion_poison) || (<act.baseid> == i_potion_poisongreat) || (<act.baseid> == i_potion_poisondeadly))
src.sysmessage @185 Sadece poison potionlar kullanilabilir.
skill fail
return 1
endif
endif
if ((<action> == id(skill_herding)) || (<action> == skill_herding))
if (<targ.id> == c_pv)
skill fail
return 1
endif
elseif ((<action> == id(skill_stealing)) || (<action> == skill_stealing)) // stealing fiks
if (<targ.topobj.id> == c_pv)
skill fail
return 1
elseif !(<targ.topobj.ischar>)
sysmessage Sadece canli varliklardan calabilirsiniz.
skill fail
return 1
elseif (<targ.isitem>)
if (<targ.cont>)
if (<targ.cont.type> == t_eq_trade_window)
skill fail
return 1
endif
endif
endif
endif
On=@ItemSpell
if !((<argn> == 2) || (<argn> == 13) || (<argn> == 14) || (<argn> == 19)|| (<argn> == 21) || (<argn> == 23) || (<argn> == 24) || (<argn> == 28) || (<argn> == 32) || (<argn> == 34) || (<argn> == 39) || (<argn> == 45) || (<argn> == 46) || (<argn> == 47) || (<argn> == 48) || (<argn> == 50) || (<argn> == 54) || (<argn> == 55) || (<argn> == 57)) // no enchant
f_fizzle
return 1
endif
On=@ItemEquip
if (<act.type> == t_weapon_axe)
events +e_axer
endif
if (<act.attr>&attr_magic) && !(<act.type> == t_armor) && !(<act.type> == t_shield) && !(<act.type> == t_armor_leather)
if (<act.color> == 02bc) || (<act.color> == 0373) || (<act.color> == 070d) || (<act.color> == 075f) || (<act.color> == 0454) || (<act.color> == 0672) || (<act.color> == 0596) || (<act.color> == 0549) || (<act.color> == 070d)
act.color 0
act.name
endif
endif
On=@ItemUnEquip
if (<act.type> == t_weapon_axe)
events -e_axer
endif
On=@ItemDClick
if (<targ.topobj.id> == c_pv)
if (<targ.type> == t_container)
targ.open
endif
return 1
endif
On=@ItemClick
// if (strmatch('<act.cont.type>','t_eq_trade_window'))
// act.message [secure]
// endif
if (<act.topobj.id> == c_pv)
if (strmatch('<act.price>',''))
act.message @1100 [satilamaz]
elseif (<act.price> <= 0)
act.message @1100 [satilik degil]
else
if ((<act.type> == t_armor) || (<act.type> == t_armor_leather) || (<act.type> == t_shield) || (<act.type> == t_clothing) || (<act.type> == t_weapon_sword) || (<act.type> == t_weapon_fence) || (<act.type> == t_weapon_mace_staff) || (<act.type> == t_weapon_mace_smith) || (<act.type> == t_weapon_mace_pick) || (<act.type> == t_weapon_bow) || (<act.type> == t_weapon_xbow))
if !(<eval ((<act.more1l> * 100) / <act.more1h>)> == 100)
act.message @1100 [<act.price> gp] [%<eval (100 - ((<act.more1l> * 100) / <act.more1h>))> eski]
else
act.message @1100 [<act.price> gp]
endif
else
act.message @1100 [<act.price> gp]
endif
endif
endif
if (<act.layer> == 21) && (<act.cont.ischar>)
act.message a backpack
return 1
else
if ((<act.attr>&attr_newbie)
act.message @1100 [blessed]
// && (0<act.topobj.npc> == 0))
// blessed itemlari belirt
// sorunluydu kaldirildi. faust
endif
if (<act.type> == t_container)
if !(<act.baseid> == i_strong_box)
if (<act.attr>&attr_move_never) && !(strmatch('<act.region.tag.owner>,'')) && (<act.region.type> == <region.type>)
act.message @1100 [sabit]
endif
if (<act.baseid> == i_bones)
act.message [loot: <act.rescount> esya]
act.message <act.name>
elseif (<act.rescount> > 0)
act.message <act.typedef.name> [<act.rescount>,<eval ((<act.weight> / 10) - <act.typedef.weight>)>]
else
act.message <act.typedef.name>
endif
return 1
endif
endif
endif
if ((<act.topobj.uid> == <uid>)
if (<act.type> == t_weapon_xbow)
act.message [bolts: <eval <rescount <act.tdata3>>>]
elseif (<act.type> == t_weapon_bow)
act.message [arrows: <eval <rescount <act.tdata3>>>]
endif
endif
On=@ItemTargOn_Item
if ((<targ.topobj.id> == c_pv) && (<act.cont.uid> != <targ.topobj.uid>))
return 1
endif
// elseif (<targ.baseid> == i_corpse) // human cesetleri bicememe
// if ((<targ.amount> == 400) || (<targ.amount> == 401))
// return 1
// endif
On=@ItemDropOn_Ground
if (<act.attr> == 04008)
act.attr 0
endif
if !((<weight> + <act.weight>) > <weightmax>)
if ((<action> == id(skill_fishing)) || (<action> == skill_fishing))
if (<act.type> == t_fish) // tutulan baliklari
act.bounce // at cantaya
endif
elseif ((<action> == id(skill_magery)) || (<action> == skill_magery))
if (<act.type> == t_food) // yapilan yemekleri
act.bounce // at cantaya
endif
endif
endif
// end of main fixes
On=@GetHit
return 1
On=@ItemClick
if !(<isevent.fix>)
if (<act.attr>&04) // blessed itemlari belirt
act.message [blessed]
endif
if (<act.topobj.baseid> == c_pv)
if (strmatch('<act.price>',''))
act.message [satilamaz]
elseif (<act.price> <= 0)
act.message [satilik degil]
else
if ((<act.type> == t_armor) || (<act.type> == t_armor_leather) || (<act.type> == t_shield) || (<act.type> == t_clothing) || (<act.type> == t_weapon_sword) || (<act.type> == t_weapon_fence) || (<act.type> == t_weapon_mace_staff) || (<act.type> == t_weapon_mace_smith) || (<act.type> == t_weapon_mace_pick) || (<act.type> == t_weapon_bow) || (<act.type> == t_weapon_xbow))
if !(<eval ((<act.more1l> * 100) / <act.more1h>)> == 100)
act.message [<act.price> gp] [%<eval (100 - ((<act.more1l> * 100) / <act.more1h>))> eski]
else
act.message [<act.price> gp]
endif
else
act.message [<act.price> gp]
endif
endif
if (<act.type> == t_container)
act.message <act.typedef.name> [<act.rescount>,<eval ((<act.weight> / 10) - <act.typedef.weight>)>]
return 1
endif
endif
endif
On=@Death
hits 50 // kiymayin gm'e
return 1
On=@ItemPickUp_Pack
// priv'e bakiyor. sadece 7 kaldirabilir.
if !(<src.account.plevel> == 7)
if (<act.topobj.id> == c_pv)
if !(<uid> == <act.topobj.tag.owner>)
return 1
endif
elseif (<act.topobj.ischar>) && (<act.topobj.uid> != <uid>)
if !(<act.topobj.npc>)
return 1
endif
endif
endif
On=@ItemDClick
if (<targ.topobj.baseid> == c_pv)
if (<targ.type> == t_container)
targ.open
endif
return 1
endif
On=@SkillStart
if ((<action> == id(skill_stealing)) || (<action> == skill_stealing)) // stealing fiks
if (<targ.topobj.baseid> == c_pv)
skill fail
return 1
endif
endif
On=@Dclick
if (<account.plevel> > 1)
title Yetkili
endif
On=@EnvironChange
if (<src.account.plevel> < 6)
src.tag.name.hue 1088
endif
[events e_qchar]
On=@Death
hits 5
fame 10000
return 1
On=@GetHit
hits (<hits> + 15)
if (<hits> > <str>)
hits <str>
endif
On=@EnvironChange
if (<npc>)
food 999
endif
[EOF]
bu var bitek ama hic biri bi ise yaramıo yani calismio.. birisi olunca yell gecmio fln filan.bu arada version 56b
[function spell_say]
sayua 0481,6,0,enu <args>
[events e_death_announce]
On=@Death
if !(<isevent.e_qchar>)
if (<fame> > 9900) && (<memoryfindtype.memory_harmedby>) && (<act.ischar>) && (<act.uid> != <uid>) && (0<act.npc> == 0)
SERV.ALLCLIENTS.SYSMESSAGE <sex Lord/Lady> <name>, <act.name> tarafindan katledildi. Allah Rahmet eglesin.
endif
endif
[events fix]
On=@Profile
if (<src.uid> == <uid>) || (0<src.account.plevel> > 2)
src.sysmessage Hesap: <account.name>, <eval (<account.totalconnecttime> / 60)>s
src.sysmessage Kayit: <account.firstconnectdate>
if (strmatch('<src.uid.04009a3fa.tag.<account.name>_vet>','01'))
src.sysmessage Veteran: odul verilmis.
endif
src.sysmessage Karakter: <eval (<age> / 86400)> gun once dogmus.
endif
On=@Death
if (<kills> > 5)
f_statloss
findid.i_mem_healing.remove
f_fizzle
endif
if (<src.findid.i_alt_not>)
src.findid.i_alt_not.remove
f_fizzle
endif (<isevent.e_qchar>)
if (<fame> > 9900) && (<memoryfindtype.memory_harmedby>) && (<act.ischar>) && (<act.uid> != <uid>) && (0<act.npc> == 0)
SERV.ALLCLIENTS.SYSMESSAGE @0481 <sex Lord/Lady> <name>, <act.name> tarafindan katledildi. Allah Rahmet eglesin
endif
endif
On=@GetHit
if (<findtype.t_eq_trade_window>)
findtype.t_eq_trade_window.remove
endif
On=@EnvironChange
if !(<memoryfindtype.memory_guild.link.align>) || (<kills> > 5)
if (<findlayer(2).baseid> == i_shield_chaos) || (<findlayer(2).baseid> == i_shield_order)
findlayer(2).unequip
endif
endif
if ((<body> == c_man) || (<body> == c_woman)) // yimmeeah
if !((<findid.i_jailcik>) || (<flags>&statf_stone))
if (<food> == 2)
sayua 045f,0,0,0 * acliktan basi doner *
elseif (<food> == 1)
sayua 045f,0,0,0 * acliktan olmek uzeredir *
elseif (<food> == 0)
sayua 045f,0,0,0 * acliktan olur *
newitem i_starver
act.equip
endif
endif
endif
if !((<findlayer(32)> || <findlayer(44)> || <findlayer(47)>)) // active stat-effecting spell?
stchk
if ((<findlayer(10).baseid> == i_platemail_gorget) && (<findlayer(6).baseid> == i_platemail_helm) && (<findlayer(7).baseid> == i_platemail_gloves) && (<findlayer(13).baseid> == i_platemail_chest) && (<findlayer(19).baseid> == i_platemail_arms) && (<findlayer(24).baseid> == i_platemail_leggings))
if (<dex> > 80)
dex 80
endif
elseif ((<findlayer(6).baseid> == i_bone_helmet) && (<findlayer(13).baseid> == i_bone_chest) && (<findlayer(19).baseid> == i_bone_arms) && (<findlayer(7).baseid> == i_bone_gloves) && (<findlayer(4).baseid> == i_bone_leggings))
if (<dex> > 85)
dex 85
endif
endif
if !((<isevent.e_str>) || (<isevent.e_dex>) || (<isevent.e_int>) || (<isevent.e_spr>))
var.stats <eval (<str> + <int> + <dex>)> // stat cap fix
if (<eval <var.stats>> > 225)
statcapdex
endif
endif
endif
On=@SpellCast
if (<findlayer(1).type> == t_spellbook)
findlayer(2).unequip
elseif !(<findlayer(2).type> == t_weapon_mace_staff)
findlayer(1).unequip
findlayer(2).unequip
endif
if ((<flags>&statf_freeze) || (<flags>&statf_stone) || (<findtype.t_armor.cont.uid> == <uid>)) // dur bakim nolyo
f_fizzle
return 1
endif
if (<kills> < 6) && (strmatch('<targ.region.name>','Calimport'))
sysmessage Calimport'un guclu buyu duvarlari sebebiyle buyunuz engellendi.
go 5249 3918 28
f_fizzle
return 1
endif
if (<act.ischar>)
if !(<act.flags>&statf_insubstantial) && (0<act.account.plevel> > 0<account.plevel>)
f_fizzle
return 1
elseif ((<argn> == 7) || (<argn> == 15)) // no prot. & reac. arm. over armor
if (<act.findtype.t_armor.cont.uid> == <act.uid>)
f_fizzle
return 1
endif
elseif (<argn> == 59) && !(<act.flags>&statf_dead)
f_fizzle
return 1
endif
endif
if (<act.id> == c_pv)
if !((<argn> == 25) || (<argn> == 26) || (<argn> == 46) || (<argn> == 48) || (<argn> == 49) || (<argn> == 54) || (<argn> == 55) || (<argn> == 57))
f_fizzle
return 1
endif
endif
if (<findid.i_bandajvar>)
f_fizzle
src.sysmessage @0481,,1 Bandaj kullanirken buyu yapamazsiniz...
return 1
endif
// spell freeze time
if (<argn> == 1) // Clumsy
spell_say Uus Jux
mg1
elseif (<argn> == 2) // Create food
mg1
spell_say In Mani Ylem
newitem i_ham
act.bounce
consume 1 i_reag_garlic
consume 1 i_reag_ginseng
consume 1 i_reag_mandrake_root
return 1
elseif (<argn> == 3) // Feeblemind
spell_say Rel Wis
mg1
elseif (<argn> == 4) // Heal
spell_say In Mani
sd 1
mg2
elseif (<argn> == 5) // Magic Arrow
spell_say In Por Ylem
mg1
elseif (<argn> == 6) // Night Sight
spell_say In Lor
mg1
elseif (<argn> == 7) // Reactive Armor
if (<act.serial>==<targ.serial>)
spell_say Flam Sanct
sd 1
mg1
else
skill fail
sysmessage @1153 Bu buyuyu sadece kendi uzerinizde kullanabilirsiniz...
return 1
endif
elseif (<argn> == 8) // Weaken
spell_say Des Mani
mg1
elseif (<argn> == 9) // Agility
spell_say Ex Uus
mg2
elseif (<argn> == 10) // Cunning
spell_say Uus Wis
mg2
elseif (<argn> == 11) // Cure
spell_say An Nox
sd 1
if (<act.findid.i_rune_poison>)
if (<act.findid.i_rune_poison.morey> > <eval ((<magery> + 400) / 2)>)
if !(rand(8) == 1)
act.effect 3,0374a,1,15,1
act.sound snd_spell_poison
f_fizzle
return 1
endif
endif
endif
mg2
elseif (<argn> == 12) // Harm
spell_say An Mani
sd 1
mg2
elseif (<argn> == 13) // Trap
spell_say In Jux
f_fizzle
return 1
elseif (<argn> == 14) // Untrap
spell_say An Jux
f_fizzle
return 1
elseif (<argn> == 15) // Protection
spell_say Uus Sanct
sd 1
mg2
elseif (<argn> == 16) // Strength
spell_say Uus Mani
sd 1
mg2
elseif (<argn> == 17) // Bless
spell_say Rel Sanct
sd 1
mg3
elseif (<argn> == 18) // Fireball
spell_say Vas Flam
sd 1
mg3
elseif (<argn> == 19) // Lock
spell_say An Por
f_fizzle
return 1
elseif (<argn> == 20) // Poison
spell_say In Nox
psg
sd 1
elseif (<argn> == 21) // Telekinesis
spell_say Ort Por Ylem
sd 1
if (<act.isitem>)
if (<act.cont.isitem>)
if ((<act.cont.type> == t_corpse) || (<act.topobj.id> == c_pv))
f_fizzle
return 1
endif
endif
else
f_fizzle
return 1
endif
mg3
elseif (<argn> == 22) // Teleport
spell_say Rel Por
mg1
sd 2
if (<src.region.guarded> == 1)
src.sysmessage @350 Bu buyuyu guard zone sehirlerde kullanimi kapatilmistir.
return 1
endif
elseif (<argn> == 23) // Unlock
spell_say Ex Por
f_fizzle
return 1
elseif (<argn> == 24) // Wall
spell_say In Sanct Ylem
sd 1
mg3
elseif (<argn> == 25) // Arch Cure
spell_say Vas An Nox
sd 2
mg4
elseif (<argn> == 26) // Arch Protection
spell_say Vas Uus Sanct
sd 2
mg4
elseif (<argn> == 27) // Curse
spell_say Des Sanct
sd 2
mg4
elseif (<argn> == 28) // Fire Field
spell_say In Flam Grav
if (<act.ischar>)
f_fizzle
return 1
elseif (<src.region.guarded> == 1)
src.sysmessage @39 Bu buyuyu guard zone icinde yapamazsiniz
f_fizzle
return 1
endif
mg4
sd 2
elseif (<src.region.guarded> == 1)
src.sysmessage @39 Bu buyuyu guard zone icinde yapamazsiniz
f_fizzle
return 1
endif
mg4
sd 2
elseif (<argn> == 29) // Greater Heal
spell_say In Vas Mani
sd 2
mg4
elseif (<argn> == 30) // Lightning
spell_say Por Ort Grav
sd 2
mg4
elseif (<argn> == 31) // Mana Drain
spell_say Ort Rel
f_fizzle
return 1
elseif (<argn> == 32) // Recall
spell_say Kal Ort Por
sd 2
mg4
elseif (<argn> == 33) // Blade Spirits
spell_say In Jux Hur Ylem
sd 2
mg5
elseif (<argn> == 34) // Dispel Field
spell_say An Grav
if (<act.ischar>)
f_fizzle
return 1
endif
sd 2
mg5
elseif (<argn> == 35) // Incognito
spell_say Kal In Ex
sd 2
mg5
elseif (<argn> == 36) // Magic Reflect
spell_say In Jux Sanct
sd 2
mg5
elseif (<argn> == 37) // Mind Blast
spell_say Por Corp Wis
sd 2
mg5
elseif (<argn> == 38) // Paralyze
spell_say An Ex Por
sd 2
mg5
elseif (<argn> == 39) // Poison Field
spell_say In Nox Grav
if (<act.topobj.ischar>)
f_fizzle
return 1
endif
sd 2
mg5
elseif (<argn> == 40) // Summon Creature
spell_say Kal Xen
sd 2
mg5
elseif (<argn> == 41) // Dispel
spell_say An Ort
sd 2
mg6
elseif (<argn> == 42) // Energy Bolt
spell_say Corp Por
sd 2
mg6
elseif (<argn> == 43) // Explosion
spell_say Vas Ort Flam
sd 2
mg6
elseif (<argn> == 44) // Invisibility
spell_say An Lor Xen
sd 2
mg6
elseif (<argn> == 45) // Mark
spell_say Kal Por Ylem
sd 2
mg6
elseif (<argn> == 46) // Mass Curse
spell_say Vas Des Sanct
sd 2
mg6
elseif (<argn> == 47) // Paralyze Field
spell_say In Ex Grav
f_fizzle
if (<act.topobj.ischar>)
f_fizzle
return 1
endif
endif
sd 3
mg6
elseif (<argn> == 48) // Reveal
spell_say Wis Quas
sd 2
mg6
elseif (<argn> == 49) // Chain Lightning
spell_say Vas Ort Grav
if (<act.uid> == <uid>)
f_fizzle
return 1
endif
sd 3
mg7
elseif (<argn> == 50) // Energy Field
spell_say In Sanct Grav
if (<act.topobj.ischar>)
f_fizzle
return 1
endif
sd 3
mg7
elseif (<argn> == 51) // Flame strike
spell_say Kal Vas Flam
sd 3
mg7
elseif (<argn> == 52) // Gate Travel
spell_say Vas Rel Por
sd 3
mg7
elseif (<argn> == 53) // Mana Vampire
spell_say Ort Sanct
f_fizzle
return 1
elseif (<argn> == 54) // Mass Dispel
spell_say Vas An Ort
sd 3
mg7
elseif (<argn> == 55) // Meteor Swarm
spell_say Flam Kal Des Ylem
if (<act.uid> == <uid>)
f_fizzle
return 1
endif
sd 3
mg7
elseif (<argn> == 56) // Polymorp
spell_say Vas Ylem Rel
f_fizzle
sd 3
mg3
elseif (<argn> == 57) // Earthquake
spell_say In Vas Por
sd 3
mg8
elseif (<argn> == 58) // Energy Vortex
spell_say Vas Corp Por
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
elseif (<argn> == 59) // Resurrect
spell_say An Corp
sd 3
mg8
elseif (<argn> == 60) // Air Elemental
spell_say Kal Vas Xen Hur
f_fizzle
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
elseif (<argn> == 61) // Summon Deamon
spell_say Kal Vas Xen Corp
f_fizzle
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
elseif (<argn> == 62) // Earth Elemental
spell_say Kal Vas Xen Ylem
f_fizzle
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
elseif (<argn> == 63) // Fire Elemental
spell_say Kal Vas Xen Flam
f_fizzle
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
elseif (<argn> == 64) // Water Elemental
spell_say Kal Vas Xen An Flam
f_fizzle
if (<region.guarded>)
criminal 1
endif
sd 3
mg8
endif
On=@SpellEffect
if (<argn> == 20)
if !(<findid.i_rune_poison>)
if (<src.poisoning> >= 0) && (<src.poisoning> < 400)
poison 300
if (<src.action> == id(skill_magery)) || (<src.action> == skill_magery)
skill fail
endif
elseif (<src.poisoning> > 399) && (<src.poisoning> < 550)
poison 500
if (<src.action> == id(skill_magery)) || (<src.action> == skill_magery)
skill fail
endif
elseif (<src.poisoning> > 549) && (<src.poisoning> < 700)
poison 600
if (<src.action> == id(skill_magery)) || (<src.action> == skill_magery)
skill fail
endif
elseif (<src.poisoning> > 699) && (<src.poisoning> < 850)
poison 700
if (<src.action> == id(skill_magery)) || (<src.action> == skill_magery)
skill fail
endif
elseif (<src.poisoning> > 849) && (<src.poisoning> < 940)
poison 800
if (<src.action> == id(skill_magery)) || (<src.action> == skill_magery)
skill fail
endif
elseif (<src.poisoning> > 939) && (<src.poisoning> <= 1000)
poison 1100
if (<src.action> == id(skill_magery)) || (<src.action> == skill_magery)
skill fail
endif
endif
sfx snd_spell_poison
effect 3,0374a,1,15,1
return 1
endif
endif
IF ((!<isgm>) && ((<SRC.REGION.FLAGS> & region_flag_safe) || (<REGION.FLAGS> & region_flag_safe)))
SRC.sysMESSAGE Bu bolgede buyuler etkili olmaz!
EFFECT 3, i_fx_glow, 3, 20, 1
RETURN 1
ENDIF
if (<flags>&statf_dead) // oluye dokunulmaz, ayiptir
if (<argn> == 59)
sfx snd_spell_resurrection
findlayer(22).remove
color <oskin>
update
effect 3,0376a,2,20,1
else
return 1
endif
elseif ((<argn> == 9) || (<argn> == 10) || (<argn> == 16) || (<argn> == 17)) // stat fix
findlayer(32).remove // spell
findlayer(44).remove // potion
elseif ((<argn> == 49) || (<argn> == 55)) // eve disardan chain atsalar bile icerdeki yemez
if !(<src.region.type> == <region.type>)
return 1
endif
//elseif (<argn> == 37) // mindblast
//if (<src.int> > <int>)
//var.mb (<src.int> - <int>)
//var.mb <eval (<var.mb> / 2)>
//if (<eval <var.mb>> > 40)
//var.mb 40
//endif
//damage <eval (<var.mb> + {-5 5)>
//else
//damage {5 10}
//endif
//sfx snd_spell_mind_blast
//effect 3,0374a,1,15,1
elseif ((<argn> == 41) || (<argn> == 54)) // dispel & mass dispel
if (<findid.i_morpher>)
if !(<findid.i_pre_morph>)
findid.i_morpher.remove
endif
endif
elseif ((<argn> == 20) || (<argn> == 39)) // poison, poison field
if !(<findid.i_rune_poison>) && (<flags>&statf_poisoned)
flags <flags>&~statf_poisoned
endif
if !(<src.uid> == <uid>)
skill fail
endif
if (<eval (<src.poisoning> + 100)> > <eval <findid.i_rune_poison.morey>>)
findid.i_rune_paralyze.remove
findid.i_rune_paralyze_field.remove
findid.i_rune_poison.remove
if (<distance> > 3) && (<eval (<src.poisoning> + 100)> > 700)
poison (600 + {-100 100})
else
poison (<src.poisoning> + {-100 100})
endif
endif
sfx snd_spell_poison
effect 3,0374a,1,15,1
return 1
elseif ((<argn> == 38) || (<argn> == 47)) // paralyze & paralyze field
if (<findid.i_pouch_trapped>)
effect 3,i_fx_explode,3,25,1
sound snd_spell_explosion
damage 20
findid.i_pouch_trapped.remove
return 1
elseif !(<src.uid> == <uid>)
findid.i_rune_poison.remove
endif
elseif (<argn> == 26) // no arch prot. over armor
if (<findtype.t_armor.cont.uid> == <uid>)
return 1
endif
elseif (<argn> == 25) // arch cure
if (<memoryfindtype.memory_town>) && !(<src.memoryfindtype.memory_town>)
return 1
elseif (<memoryfindtype.memory_guild.link.align> > 0) && !(<src.memoryfindtype.memory_guild.link.align>)
return 1
endif
if (<findid.i_rune_poison>)
if (<findid.i_rune_poison.morey> > <eval ((<src.magery> + 400) / 2)>)
if !(rand(8) == 1)
effect 3,0374a,1,15,1
sound snd_spell_poison
return 1
endif
endif
endif
elseif (<argn> == 4) || (<argn> == 29) || (<argn> == 11)
if (<memoryfindtype.memory_town>) && !(<src.memoryfindtype.memory_town>)
src.sysmessage Faction uyelerini iyilestiremezsiniz.
return 1
elseif (<memoryfindtype.memory_guild.link.align> > 0) && !(<src.memoryfindtype.memory_guild.link.align>)
src.sysmessage @0810 Order/Chaos uyelerini iyilestiremezsiniz.
return 1
endif
if (<argn> == 4) || (<argn> == 29)
if (<findid.i_rune_poison>)
effect 3,0374a,1,15,1
sound snd_spell_poison
return 1
endif
endif
endif
On=@SkillStart
if (<action> == id(skill_stealth)) || (<action> == skill_stealth)
if (<hiding> < 80.0)
sysmessage Yetersiz hiding.
skill fail
return 1
elseif (<eval (<ac> * 100)> > <eval (<stealth> + 200)>)
sysmessage Asiri zirhlisiniz.
skill fail
return 1
endif
elseif (<action> == id(skill_hiding)) || (<action> == skill_hiding)
if (<eval (<ac> * 100)> > <eval (<hiding> + 200)>)
sysmessage Asiri zirhlisiniz.
skill fail
return 1
endif
elseif ((<action> == id(skill_herding)) || (<action> == skill_herding))
if (<targ.id> == c_pv)
skill fail
return 1
endif
elseif ((<action> == id(skill_stealing)) || (<action> == skill_stealing)) // stealing fiks
if (<targ.topobj.id> == c_pv)
skill fail
return 1
elseif ((<action> == id(skill_snooping)) || (<action> == skill_snooping))
if (<src.distance> > 3 )
src.sysmessage @33 cantaya ulasamiyorsunuz.
src.action -1
return 1
elseif ((<action> == id(skill_stealing)) || (<action> == skill_stealing))
if (<src.distance> > 3 )
src.sysmessage @33 Esya'ya ulasamiyorsunuz.
src.action -1
return 1
elseif !(<targ.topobj.ischar>)
sysmessage @33 Sadece canli varliklardan calabilirsiniz.
skill fail
return 1
elseif (<targ.isitem>)
if (<targ.cont>)
if (<targ.cont.type> == t_eq_trade_window)
skill fail
return 1
endif
endif
endif
endif
// bronx's famous lame-buster 1.2a
if (<findid.i_jailcik>) || !(strmatch('<tag.mt>',''))
return 0 // jailde veya tespit edilmis.
elseif (strmatch('<serv.name>',<serv.name>'))
if (strmatch('<uid.04018c20d.rescount>','20'))
return 0
endif
elseif (strmatch('<tag.mn>',''))
tag.mn 0 // sayim tagi yoksa, ver
endif
if (strmatch('<tag.ms>','<action>'))
tag.mn <eval (<tag.mn> + 1)>
elseif ((strmatch('<tag.ms>','Skill_Magery')) && (strmatch('Skill_Meditation','<action>')))
tag.mn <eval (<tag.mn> + 1)>
elseif ((strmatch('<tag.ms>','Skill_Meditation')) && (strmatch('Skill_Magery','<action>')))
tag.mn <eval (<tag.mn> + 1)>
else
tag.mn 0
endif
if (<eval <tag.mn>> > 2500) // bu sayi ile oynamayin, sicar.
var.act <act>
newitem i_macro_detect
tag.mt <act.uid>
act.link <uid>
act.name <act.link.name> [<serv.time>]
act.more1 <serv.time>
if (strmatch('<serv.name>','<serv.name>'))
act.cont 04018c20d
try var.mts <uid.04018c20d.rescount>
endif
var.smsgx 0251
serv.allclients macrodetect <eval <var.mts>>: <name>
act <var.act>
tag.mn 0
else
tag.ms <action>
endif
On=@Click
if !(<isevent.e_faction>) && !(<findid.i_rune_incognito>) && (<memoryfindtype.memory_guild>)
if (strmatch('<tag.gs_title>','')
message @0481 [<memoryfindtype.memory_guild.link.name>]
else
message @0481 [<tag.gs_title>, <memoryfindtype.memory_guild.link.abbrev>]
endif
endif
On=@ItemSpell
if !((<argn> == 2) || (<argn> == 13) || (<argn> == 14) || (<argn> == 19)|| (<argn> == 21) || (<argn> == 23) || (<argn> == 24) || (<argn> == 28) || (<argn> == 32) || (<argn> == 34) || (<argn> == 39) || (<argn> == 45) || (<argn> == 46) || (<argn> == 47) || (<argn> == 48) || (<argn> == 50) || (<argn> == 54) || (<argn> == 55) || (<argn> == 57)) // no enchant
f_fizzle
return 1
endif
On=@ItemEquip
//if (<act.type> == t_weapon_axe)
//events +e_axer
//endif
if (<act.attr>&attr_magic) && !(<act.type> == t_armor) && !(<act.type> == t_shield) && !(<act.type> == t_armor_leather)
if (<act.color> == 02bc) || (<act.color> == 0373) || (<act.color> == 070d) || (<act.color> == 075f) || (<act.color> == 0454)
act.color 0
act.name
endif
endif
On=@ItemUnEquip
//if (<act.type> == t_weapon_axe)
//events -e_axer
//endif
On=@ItemDClick
if (<targ.topobj.id> == c_pv)
if (<targ.type> == t_container)
targ.open
endif
return 1
endif
On=@ItemClick
//if (strmatch('<act.cont.type>','t_eq_trade_window'))
//act.message [guvenli]
//endif
if (<act.topobj.id> == c_pv)
if (strmatch('<act.price>',''))
act.message [satilamaz]
elseif (<act.price> <= 0)
act.message [satilik degil]
else
if ((<act.type> == t_armor) || (<act.type> == t_armor_leather) || (<act.type> == t_shield) || (<act.type> == t_clothing) || (<act.type> == t_weapon_sword) || (<act.type> == t_weapon_fence) || (<act.type> == t_weapon_mace_staff) || (<act.type> == t_weapon_mace_smith) || (<act.type> == t_weapon_mace_pick) || (<act.type> == t_weapon_bow) || (<act.type> == t_weapon_xbow))
if !(<eval ((<act.more1l> * 100) / <act.more1h>)> == 100)
act.message [<act.price> gp] [%<eval (100 - ((<act.more1l> * 100) / <act.more1h>))> eski]
else
act.message [<act.price> gp]
endif
else
act.message [<act.price> gp]
endif
endif
endif
if (<act.layer> == 21) && (<act.cont.ischar>)
act.message Inventory
return 1
else
if ((<act.attr>&attr_newbie)) // blessed itemlari belirt
act.message @0810 [kaybolmaz]
endif
if (<act.type> == t_container)
if !(<act.baseid> == i_strong_box)
if (<act.attr>&attr_move_never) && !(strmatch('<act.region.tag.owner>,'')) && (<act.region.type> == <region.type>)
act.message @080a [kaldirilamaz]
endif
if (<act.baseid> == i_bones)
act.message [Loot: <act.rescount> Esya]
act.message <act.name>
elseif (<act.rescount> > 0)
act.message <act.typedef.name> [<act.rescount>,<eval ((<act.weight> / 10) - <act.typedef.weight>)>]
else
act.message <act.typedef.name>
endif
return 1
endif
endif
endif
if ((<act.topobj.uid> == <uid>)
if (<act.type> == t_weapon_xbow)
act.message [Bolts: <eval <rescount <act.tdata3>>>]
elseif (<act.type> == t_weapon_bow)
act.message [Ok: <eval <rescount <act.tdata3>>>]
endif
endif
On=@ItemPickUp_Pack
if (<act.topobj.id> == c_pv)
if !(<uid> == <act.topobj.tag.owner>)
return 1
endif
//elseif !(strmatch('<act.price>',''))
//if (<act.price> > 0)
//act.price 0
//endif
//endif
On=@ItemTargOn_Item
if ((<targ.topobj.id> == c_pv) && (<act.cont.uid> != <targ.topobj.uid>))
return 1
//elseif (<targ.baseid> == i_corpse) // human cesetleri bicememe
//if ((<targ.amount> == 400) || (<targ.amount> == 401))
//return 1
//endif
//endif
On=@ItemDropOn_Ground
if (<act.attr> == 04008)
act.attr 0
endif
if (<act.type> == t_fish)
src.act.bounce
endif
elseif ((<action> == id(skill_magery)) || (<action> == skill_magery))
if (<act.type> == t_food)
act.bounce
endif
endif
endif
//
[events gmfix]
On=@Click
IF (<FLAGS> & statf_insubstantial)
TAG.TEPE = [Invis]
else
tag.tepe
endif
IF (<ACCOUNT.PLEVEL> = 2)
MESSAGE @0810 <TAG.TEPE>
message @0810 [ <serv.name> Staff ]
message @0481 * <name> *
return 1
elseIF (<ACCOUNT.PLEVEL> = 3)
MESSAGE @0810 <TAG.TEPE>
message @0810 [ <serv.name> Staff ]
message @0481 * <name> *
return 1
elseIF (<ACCOUNT.PLEVEL> = 4)
MESSAGE @0810 <TAG.TEPE>
message @0810 [ <serv.name> Staff ]
message @0481 * <name> *
return 1
elseIF (<ACCOUNT.PLEVEL> = 5)
MESSAGE @0810 <TAG.TEPE>
message @0810 [ <serv.name> Staff ]
message @0481 * <name> *
return 1
elseIF (<ACCOUNT.PLEVEL> = 6)
MESSAGE @0810 <TAG.TEPE>
message @0810 [ <serv.name> Staff ]
message @0481 * <name> *
return 1
elseIF (<ACCOUNT.PLEVEL> = 7 )
MESSAGE @0810 <TAG.TEPE>
message @0810 [ <serv.name> Staff ]
message @0481 * <name> *
return 1
endif
On=@DClick
if (<privshow>)
title <serv.name> Yetkili Kadrosu
elseif strmatch('<title>','<serv.name> Yetkili Kadrosu'))
title
endif
On=@GetHit
return 1
On=@ItemClick
if !(<isevent.fix>)
if (<act.attr>&04) // blessed itemlari belirt
act.message @7ad [kaybolmaz]
endif
if (<act.type> == t_container)
if !(<act.baseid> == i_strong_box)
if (<act.attr>&attr_move_never) && !(strmatch('<act.region.tag.owner>,'')) && (<act.region.type> == <region.type>)
act.message @080a [sabit]
endif
if (<act.topobj.baseid> == c_pv)
if (strmatch('<act.price>',''))
act.message [satilamaz]
elseif (<act.price> <= 0)
act.message [satilik degil]
else
if ((<act.type> == t_armor) || (<act.type> == t_armor_leather) || (<act.type> == t_shield) || (<act.type> == t_clothing) || (<act.type> == t_weapon_sword) || (<act.type> == t_weapon_fence) || (<act.type> == t_weapon_mace_staff) || (<act.type> == t_weapon_mace_smith) || (<act.type> == t_weapon_mace_pick) || (<act.type> == t_weapon_bow) || (<act.type> == t_weapon_xbow))
if !(<eval ((<act.more1l> * 100) / <act.more1h>)> == 100)
act.message [<act.price> gp] [%<eval (100 - ((<act.more1l> * 100) / <act.more1h>))> eski]
else
act.message [<act.price> gp]
endif
else
act.message [<act.price> gp]
endif
endif
if (<act.type> == t_container)
act.message <act.typedef.name> [<act.rescount>,<eval ((<act.weight> / 10) - <act.typedef.weight>)>]
return 1
endif
endif
endif
On=@Death
hits <str>
hits 50
return 1
On=@ItemPickUp_Pack
if (<act.topobj.id> == c_pv)
if !(<uid> == <act.topobj.tag.owner>)
return 1
endif
elseif (<act.topobj.ischar>) && (<act.topobj.uid> != <uid>)
if !(<act.topobj.npc>)
return 1
endif
endif
On=@ItemDClick
if (<targ.topobj.baseid> == c_pv)
if (<targ.type> == t_container)
targ.open
endif
return 1
endif
On=@SkillStart
if ((<action> == id(skill_stealing)) || (<action> == skill_stealing)) // stealing fiks
if (<targ.topobj.baseid> == c_pv)
skill fail
return 1
endif
endif
[events e_qchar]
On=@Death
hits 5
return 1
On=@GetHit
hits (<hits> + 15)
if (<hits> > <str>)
hits <str>
endif
On=@EnvironChange
if (<npc>)
food 999
endif
[events e_buyu_cast]
ON=@SpellCast
src.events +e_fix_anim
If (<argn>=s_bless)
If (<argn>=s_protection)
If (<argn>=s_reactive_armor)
If (<argn>=s_magic_reflection)
If (<src.act.npc>=brain_animal)
src.sysmessage @38,1,1 Bu buyuyu hayvanlar üzerinde kullanamazsiniz.
endif
endif
endif
endif
endif
[EOF]
// ----------------------------
// MAGERY.SCP - MAGERY VE FREEZETIME SISTEMI
// SON GUNCELLENME TARIHI: 9 Temmuz 2oo7 - MiqRop|www.clax.gen.tr
// ----------------------------
VERSION=0.55
//------------------
// freezetime - eq items
//------------------
[itemdef i_magerylvl]
name=magery gain
id=i_memory
type=t_eq_script
weight=0
layer=layer_special
On=@Create
attr attr_invis|attr_decay
On=@Equip
timer 6
On=@Timer
if (<cont.int> < 60)
if (rand(15) == 1)
cont.int (<cont.int> + 1)
endif
elseif (<cont.int> < 100)
if (rand(25) == 1)
cont.int (<cont.int> + 1)
endif
endif
// Level 1
if (<more1> == 1)
if (rand(3) == 1)
cont.magery (<cont.magery> + 1)
endif
// Level 2
elseif (<more1> == 2)
if (rand(5) == 1)
cont.magery (<cont.magery> + 1)
endif
// Level 3
elseif (<more1> == 3)
if (rand(10) == 1)
cont.magery (<cont.magery> + 1)
endif
// Level 4
elseif (<more1> == 4)
if (rand(15) == 1)
cont.magery (<cont.magery> + 1)
endif
// Level 5
elseif (<more1> == 5)
if (rand(20) == 1)
cont.magery (<cont.magery> + 1)
endif
// Level 6
elseif (<more1> == 6)
if (rand(25) == 1)
cont.magery (<cont.magery> + 1)
endif
// Level 7
elseif (<more1> == 7)
if (rand(30) == 1)
cont.magery (<cont.magery> + 1)
endif
// Level 8
elseif (<more1> == 8)
if (rand(35) == 1)
cont.magery (<cont.magery> + 1)
endif
endif
attr attr_decay
remove
return 1
[itemdef i_evallvl]
name=eval intel gain
id=i_memory
type=t_eq_script
weight=0
layer=layer_special
On=@Create
attr attr_invis|attr_decay
On=@Equip
timer 6
On=@Timer
// Level 1
if (<more1> == 1)
if (rand(2) == 1)
cont.evaluatingintel (<cont.evaluatingintel> + 1)
endif
// Level 2
elseif (<more1> == 2)
if (rand(3) == 1)
cont.evaluatingintel (<cont.evaluatingintel> + 1)
endif
// Level 3
elseif (<more1> == 3)
if (rand(5) == 1)
cont.evaluatingintel (<cont.evaluatingintel> + 1)
endif
// Level 4
elseif (<more1> == 4)
if (rand(10) == 1)
cont.evaluatingintel (<cont.evaluatingintel> + 1)
endif
// Level 5
elseif (<more1> == 5)
if (rand(15) == 1)
cont.evaluatingintel (<cont.evaluatingintel> + 1)
endif
// Level 6
elseif (<more1> == 6)
if (rand(20) == 1)
cont.evaluatingintel (<cont.evaluatingintel> + 1)
endif
// Level 7
elseif (<more1> == 7)
if (rand(25) == 1)
cont.evaluatingintel (<cont.evaluatingintel> + 1)
endif
// Level 8
elseif (<more1> == 8)
if (rand(30) == 1)
cont.evaluatingintel (<cont.evaluatingintel> + 1)
endif
endif
attr attr_decay
remove
return 1
[itemdef i_poisonlvl]
name=poison gain
id=i_memory
type=t_eq_script
weight=0
layer=layer_special
On=@Create
attr attr_invis|attr_decay
On=@Equip
timer 3
On=@Timer
if (<more1> == 1)
cont.poisoning (<cont.poisoning> + 1)
elseif (<more1> == 2)
cont.poisoning (<cont.poisoning> + 2)
elseif (<more1> == 3)
cont.poisoning (<cont.poisoning> + 3)
elseif (<more1> == 4)
cont.poisoning (<cont.poisoning> + 4)
elseif (<more1> == 5)
cont.poisoning (<cont.poisoning> + 5)
elseif (<more1> == 6)
cont.poisoning (<cont.poisoning> + 6)
elseif (<more1> == 7)
cont.poisoning (<cont.poisoning> + 7)
elseif (<more1> == 8)
cont.poisoning (<cont.poisoning> + 8)
endif
attr attr_decay
remove
return 1
[itemdef i_spdelay_woman] // bunnar adamda kaliodu (timer -1) fixlendi uzulmeyin
name=magery delay (woman)
id=i_gold
type=t_eq_script
weight=0
layer=layer_special
On=@Create
attr attr_decay|attr_newbie
On=@Equip
src.body c_woman_nomove
if (<more1>)
timer <more1>
endif
On=@UnEquip
if !(<cont.flags>&statf_dead)
cont.body c_woman
cont.obody c_woman
endif
On=@Timer
remove
return 1
[itemdef i_spdelay_man]
name=magery delay (man)
id=i_gold
type=t_eq_script
weight=0
layer=layer_special
On=@Create
attr attr_decay|attr_newbie
On=@Equip
src.body c_man_nomove
if (<more1>)
timer <more1>
endif
On=@UnEquip
if !(<cont.flags>&statf_dead)
cont.body c_man
cont.obody c_man
endif
On=@Timer
remove
return 1
[itemdef i_spdelay_unisex] // unicornlarla seks anlaminda
name=magery delay (unisex)
id=i_gold
type=t_eq_script
weight=0
layer=layer_special
On=@Create
attr attr_decay|attr_newbie
On=@Equip
cont.flags <cont.flags>|04 // paralarim lan adami uniseksmi$
if (<more1>)
timer <more1>
endif
On=@UnEquip
if !(<cont.flags>&statf_dead)
cont.flags <cont.flags>&~04
endif
On=@Timer
remove
return 1
//------------------
// freeze body's
//------------------
[chardef c_man_nomove]
id c_man
can mt_usehands // newly added
foodtype 15 t_food, t_fruit
On=@GetHit
body c_man
obody c_man
[chardef c_man_brnx_nomove]
id c_man
can mt_usehands // newly added
foodtype 15 t_food, t_fruit
On=@GetHit
body c_man_brnx
obody c_man_brnx
[chardef c_woman_nomove]
id c_woman
can mt_usehands|mt_female
foodtype 15 t_food, t_fruit
On=@GetHit
body c_woman
obody c_woman
//------------------
// freezetime control functionz
//------------------
[function sd]
if (<findid.i_spdelay_man>)
findid.i_spdelay_man.remove
elseif (<findid.i_spdelay_woman>)
findid.i_spdelay_woman.remove
elseif (<findid.i_spdelay_unisex>)
findid.i_spdelay_unisex.remove
endif
if (<body> == c_man)
var.m <act.uid>
newitem i_spdelay_man
act.more1 <args>
act.equip
act <var.m>
elseif (<body> == c_woman)
var.m <act.uid>
newitem i_spdelay_woman
act.more1 <args>
act.equip
act <var.m>
else
var.m <act.uid>
newitem i_spdelay_unisex
act.more1 <args>
act.equip
act <var.m>
endif
endif
//------------------
// magery control functionz
//------------------
// Level 1
[function mg1]
if (<magery> < 30.0) && ((<skilllock[25]> == 0) && (<skilltotal> < 800.0))
findid.i_magerylvl.remove
var.m2 <act.uid>
newitem i_magerylvl
act.more1 1
act.equip
act <var.m2>
endif
if (<evaluatingintel> < 30.0) && ((<skilllock[16]> == 0) && (<skilltotal> < 800.0))
findid.i_evallvl.remove
var.m2 <act.uid>
newitem i_evallvl
act.more1 1
act.equip
act <var.m2>
endif
// Level 2
[function mg2]
if (<magery> < 40.0) && ((<skilllock[25]> == 0) && (<skilltotal> < 800.0))
findid.i_magerylvl.remove
var.m2 <act.uid>
newitem i_magerylvl
act.more1 2
act.equip
act <var.m2>
endif
if (<evaluatingintel> < 40.0) && ((<skilllock[16]> == 0) && (<skilltotal> < 800.0))
findid.i_evallvl.remove
var.m2 <act.uid>
newitem i_evallvl
act.more1 2
act.equip
act <var.m2>
endif
// Level 3
[function mg3]
if (<magery> < 50.0) && ((<skilllock[25]> == 0) && (<skilltotal> < 800.0))
findid.i_magerylvl.remove
var.m2 <act.uid>
newitem i_magerylvl
act.more1 3
act.equip
act <var.m2>
endif
if (<evaluatingintel> < 50.0) && ((<skilllock[16]> == 0) && (<skilltotal> < 800.0))
findid.i_evallvl.remove
var.m2 <act.uid>
newitem i_evallvl
act.more1 3
act.equip
act <var.m2>
endif
// Level 4
[function mg4]
if (<magery> < 60.0) && ((<skilllock[25]> == 0) && (<skilltotal> < 800.0))
findid.i_magerylvl.remove
var.m2 <act.uid>
newitem i_magerylvl
act.more1 4
act.equip
act <var.m2>
endif
if (<evaluatingintel> < 60.0) && ((<skilllock[16]> == 0) && (<skilltotal> < 800.0))
findid.i_evallvl.remove
var.m2 <act.uid>
newitem i_evallvl
act.more1 4
act.equip
act <var.m2>
endif
// Level 5
[function mg5]
if (<magery> < 70.0) && ((<skilllock[25]> == 0) && (<skilltotal> < 800.0))
findid.i_magerylvl.remove
var.m2 <act.uid>
newitem i_magerylvl
act.more1 5
act.equip
act <var.m2>
endif
if (<evaluatingintel> < 70.0) && ((<skilllock[16]> == 0) && (<skilltotal> < 800.0))
findid.i_evallvl.remove
var.m2 <act.uid>
newitem i_evallvl
act.more1 5
act.equip
act <var.m2>
endif
// Level 6
[function mg6]
if (<magery> < 80.0) && ((<skilllock[25]> == 0) && (<skilltotal> < 800.0))
findid.i_magerylvl.remove
var.m2 <act.uid>
newitem i_magerylvl
act.more1 6
act.equip
act <var.m2>
endif
if (<evaluatingintel> < 80.0) && ((<skilllock[16]> == 0) && (<skilltotal> < 800.0))
findid.i_evallvl.remove
var.m2 <act.uid>
newitem i_evallvl
act.more1 6
act.equip
act <var.m2>
endif
// Level 7
[function mg7]
if (<magery> < 90.0) && ((<skilllock[25]> == 0) && (<skilltotal> < 800.0))
findid.i_magerylvl.remove
var.m2 <act.uid>
newitem i_magerylvl
act.more1 7
act.equip
act <var.m2>
endif
if (<evaluatingintel> < 90.0) && ((<skilllock[16]> == 0) && (<skilltotal> < 800.0))
findid.i_evallvl.remove
var.m2 <act.uid>
newitem i_evallvl
act.more1 7
act.equip
act <var.m2>
endif
// Level 8
[function mg8]
if (<magery> < 100.0) && ((<skilllock[25]> == 0) && (<skilltotal> < 800.0))
findid.i_magerylvl.remove
var.m2 <act.uid>
newitem i_magerylvl
act.more1 8
act.equip
act <var.m2>
endif
if (<evaluatingintel> < 100.0) && ((<skilllock[16]> == 0) && (<skilltotal> < 800.0))
findid.i_evallvl.remove
var.m2 <act.uid>
newitem i_evallvl
act.more1 8
act.equip
act <var.m2>
endif
//------------------
// poison functionz
//------------------
[function psg]
if (<magery> < 50.0) && ((<skilllock[25]> == 0) && (<skilltotal> < 800.0))
findid.i_magerylvl.remove
var.m2 <act.uid>
newitem i_magerylvl
act.more1 3
act.equip
act <var.m2>
endif
if (<evaluatingintel> < 50.0) && ((<skilllock[16]> == 0) && (<skilltotal> < 800.0))
findid.i_evallvl.remove
var.m2 <act.uid>
newitem i_evallvl
act.more1 3
act.equip
act <var.m2>
endif
if (<poisoning> < 100.0) && ((<skilllock[30]> == 0) && (<skilltotal> < 800.0))
findid.i_poisonlvl.remove
var.m2 <act.uid>
newitem i_poisonlvl
if (<src.poisoning> < 30.0)
if (rand(2) == 1)
act.more1 8
endif
elseif (<src.poisoning> > 29.9) && (<src.poisoning> < 40.0)
if (rand(2) == 1)
act.more1 4
endif
elseif (<src.poisoning> > 39.9) && (<src.poisoning> < 50.0)
if (rand(2) == 1)
act.more1 3
endif
elseif (<src.poisoning> > 49.9) && (<src.poisoning> < 60.0)
if (rand(2) == 1)
act.more1 2
endif
elseif (<src.poisoning> > 59.9) && (<src.poisoning> < 70.0)
if (rand(2) == 1)
act.more1 1
endif
elseif (<src.poisoning> > 69.9) && (<src.poisoning> < 80.0)
if (rand(2) == 1)
act.more1 1
endif
elseif (<src.poisoning> > 79.9) && (<src.poisoning> < 90.0)
if (rand(2) == 1)
act.more1 1
endif
elseif (<src.poisoning> > 89.9)
if (rand(2) == 1)
act.more1 1
endif
else
act.more1 9
endif
act.equip
act <var.m2>
endif
//------------------
// breakspell functionz
//------------------
// Circle 1
[function breakspell1]
f_fizzle
// Circle 2
[function breakspell2]
f_fizzle
if (<src.mana> > 20)
src.mana (<src.mana> - {8 10})
else
src.mana 0
endif
// Circle 3
[function breakspell3]
f_fizzle
if (<src.mana> > 25)
src.mana (<src.mana> - {10 15})
else
src.mana 0
endif
// Circle 4
[function breakspell4]
f_fizzle
if (<src.mana> > 30)
src.mana (<src.mana> - {15 20})
else
src.mana 0
endif
// Circle 5
[function breakspell5]
f_fizzle
if (<src.mana> > 35)
src.mana (<src.mana> - {20 25})
else
src.mana 0
endif
// Circle 6
[function breakspell6]
f_fizzle
if (<src.mana> > 40)
src.mana (<src.mana> - {25 30})
else
src.mana 0
endif
// Circle 7
[function breakspell7]
f_fizzle
if (<src.mana> > 45)
src.mana (<src.mana> - {30 35})
else
src.mana 0
endif
// Circle 8
[function breakspell8]
f_fizzle
if (<src.mana> > 50)
src.mana (<src.mana> - {35 40})
else
src.mana 0
endif
//------------------
// spell: explosion
//------------------
[itemdef i_spelleffect_explosion]
name=[explosion spelleffect]
id=i_gold
type=t_eq_script
weight=0
layer=layer_special
On=@Equip
cont.sayu explosion
timer 2
On=@Create
attr attr_decay|attr_newbie
On=@Timer
cont.effect 3,i_fx_explode,6,15,1
cont.sfx snd_spell_explosion
if (<cont.hitpoints> > 32)
cont.hits=(<cont.hits> - {25 30})
cont.damage 1
else
cont.hits=0
endif
attr attr_decay
remove
return 1
//------------------
// spell: polymorph
//------------------
[function plym]
if (<findid.i_pre_morph>)
findid.i_pre_morph.remove
f_fizzle
endif
if !(<findid.i_morpher>)
newitem i_pre_morph
act.more <args>
act.equip
newitem i_morpher
act.more <body>
act.equip
else
findid.i_morpher.timer {285 320}
newitem i_pre_morph
act.more <args>
act.equip
endif
[itemdef i_pre_morph]
name=[casting polymorph]
id=i_gold
type=t_eq_script
weight=0
layer=layer_special
On=@Create
attr attr_decay|attr_newbie
On=@Equip
timer 4
cont.spell_say Vas Ylem Rel
cont.anim 17
cont.sd 3
cont.events +e_breakpoly
On=@UnEquip
cont.events -e_breakpoly
cont.tag.okarma <cont.karma>
cont.karma 10000
cont.consume 1 i_reag_spider_silk
cont.consume 1 i_reag_blood_moss
cont.consume 1 i_reag_mandrake_root
cont.consume 1 i_reag_sulfur_ash
On=@Timer
attr attr_decay
if (<cont.mana> < 40)
cont.f_fizzle
else
cont.mana (<cont.mana> - 40)
cont.sfx snd_spell_polymorph
cont.body <more>
cont.karma <tag0.okarma>
cont.tag.okarma
cont.update
endif
remove
return 1
[itemdef i_morpher]
name=Polymorph
id=i_rune_polymorph
type=t_eq_script
weight=0
layer=layer_special
On=@Equip
timer {285 320}
cont.events +e_poly
On=@UnEquip
cont.events -e_poly
cont.body <more>
cont.update
On=@Timer
attr attr_decay
remove
return 1
[events e_poly]
On=@Death
findid.i_morpher.remove
[events e_breakpoly]
On=@SpellCast
findid.i_pre_morph.remove
findid.i_morpher.remove
f_fizzle
On=@GetHit
findid.i_pre_morph.remove
findid.i_morpher.remove
f_fizzle
On=@Hit
findid.i_pre_morph.remove
findid.i_morpher.remove
f_fizzle
On=@Death
findid.i_pre_morph.remove
findid.i_morpher.remove
On=@SkillStart
findid.i_pre_morph.remove
findid.i_morpher.remove
f_fizzle
[EOF]