Güncellemeler kısmında kendi eklediğim özellikleri yazıyor onun dışında sıradan bir bandaj sistemi (ayarlar defnameli)
// Healing System v5.0
// Scripted by Fusion (a.k.a. Jdog)
// Güncelleyen Mortal
[comment Healing System v5.0]
güncellemeler :
- bandaj atılırken frozen olma eklendi
- dexe göre delay ayarlandı
- ikinci bandajda atmayı bekleme süreside dexe göre ayarlandı
- zehir tedavi için gerekli skill eklendi
- tedavi yapan/yapılan messageleri eklendi
- sysmessageler türkçeleştirildi
[defname def_bandage]
BloodyBandageAtFail 0 // Bloody bandages at failure or success?
EnableFail 0 // Enable/disable failing.
HealCriminal 1 // Healing criminals is a crime?
HealInterrupt 1 // Healing interruption.
MessageColor 1001 // Color of the sysmessages.
SkillCancel 1 // Cancel used skill(s) when bandage is applied?
TargMaxDistance 3 // Maximum distance from target.
UseFromGround 1 // Can bandages be used from the ground?
SecondBandageTimer 5 // ikinci bandajı atmayı beklemek için gerekli zaman
PoisonSkillAmount 700 // poiyi tedavi için gerekli skill ihtiyacı
[defname def_bandage_resurrect]
EnableResurrect 1 // Allow resurrection?
FirstSkillAmount 800 // First skill amount required for resurrection.
FirstSkillResurrect healing // First skill check for resurrection.
ResurrectConsume 2 // Amount of bandages consumed at resurrection.
ResurrectDelay 0 // Delay for resurrection.
SecondSkillAmount 1000 // Second skill amount required for resurrection.
SecondSkillResurrect anatomy // Second skill check for resurrection.
[typedef t_bandage]
on=@DClick
if (<src.tag0.heal>)
src.sysmessage @<def0.messagecolor>,,1 Bir süre beklemelisiniz.
return 1
endif
if (!<def0.UseFromGround>)
if (<topobj.uid> == <src.uid>)
src.sysmessage @<def0.MessageColor>,,1 Bandajları kullanabilmek için üzerinizde olmalı.
endif
else
target @<def0.MessageColor>,,1 Kimi tedavi etmek istiyorsunuz ?
endif
return 1
on=@Targon_Char
if (<src.targ.distance> <= <def0.TargMaxDistance>)
if (<src.targ.findid(i_rune_poison)>)
if (<src.<def.firstskillresurrect>> < <def0.poisonskillamount>)
src.sysmessage @<def0.messagecolor>,,1 Zehiri tedavi edebilicek kadar bilginiz yok.
return 1
endif
endif
if (<src.targ.flags> & statf_dead)
if (<def0.EnableResurrect>)
if (<src.<def0.FirstSkillResurrect>> >= <def0.FirstSkillAmount>)
if (<src.<def0.SecondSkillResurrect>> >= <def0.SecondSkillAmount>)
if (<src.rescount i_bandage> >= <def0.ResurrectConsume>)
src.consume <def0.ResurrectConsume> i_bandage
serv.newitem = i_memory_healer
new.cont = <src.uid>
new.link = <src.targ.uid>
new.more = 1
new.timer = <def0.ResurrectDelay>
//src.tag.heal 1
//timerf <eval <bandajsuresi> + <def0.Secondbandagetimer>>,src.tag.heal
if (!<new.timer>)
new.trigger = @Timer
endif
if (<def0.HealInterrupt>)
src.events +e_heal_interrupt
endif
endif
else
src.sysmessage @<def0.MessageColor>,,1 Yetenekleriniz bu işlem için yeterli değil.
endif
endif
endif
else
if (<src.targ.hits> < <src.targ.maxhits>)
if (<src.targ.uid> == <src.uid>)
src.sysmessage @<def0.MessageColor>,,1 Kendinize bandaj uyguluyorsunuz.
else
src.sysmessage @<def0.MessageColor>,,1 Seçtiğiniz canlıya bandaj uygulanıyor.
endif
if (<def0.SkillCancel>)
src.action = -1
endif
src.consume 1 i_bandage
src.sound = 058
serv.newitem = i_memory_healer
new.cont = <src.uid>
new.link = <src.targ.uid>
new.timer = <src.bandajsuresi>
SRC.FLAGS=<SRC.FLAGS>|020004
src.tag.heal 1
timerf <eval <bandajsuresi> + <def0.Secondbandagetimer>>,src.tag.heal
if (!<new.timer>)
new.trigger = @Timer
endif
if (<def0.HealInterrupt>)
src.events +e_heal_interrupt
endif
else
src.sysmessage @<def0.MessageColor>,,1 Seçtiğiniz canlı tedaviye gerek duymuyor.
endif
endif
else
src.sysmessage @<def0.MessageColor>,,1 Seçilen canlı sizden uzakta.
endif
return 1
on=@targon_item
return 0
[itemdef i_memory_healer]
id = i_memory
name = Healing Memory Object
weight = 0
type = t_eq_script
on=@Create
attr = attr_invis|attr_decay
on=@Timer
if (<distance <link>> <= <def0.TargMaxDistance>)
if (<cont.tag0.failrate> > 3)
cont.tag0.failrate = 0
else
f_fail_healing
endif
doswitch <more>
begin
if (!<qval <link.flags> & statf_dead ? 1:0>) // Workaround for logical NOT issue.
f_heal
endif
end
begin
if (<link.flags> & statf_dead)
link.resurrect
endif
end
enddo
if (<def0.HealCriminal>)
if (<link.kills> > <serv.murdermincount>) || (<link.flags> & statf_criminal)
cont.criminal = 1
endif
endif
f_gain_healing
else
cont.sysmessage @<def0.MessageColor> Seçilen canlı sizden uzakta.
endif
if (<def0.HealInterrupt>)
cont.events -e_heal_interrupt
endif
remove
return 1
[function f_heal]
if (<link.flags> & statf_poisoned)
if (<link.uid> == <cont.uid>)
link.findid(i_rune_poison).remove
link.message @<def.messagecolor>,,1 Zehiri tedavi eder
link.flags <link.flags>&~04
elif (<link.uid> == !<cont.uid>)
link.findid(i_rune_poison).remove
link.message @<def.messagecolor>,,1 <uid.<cont>.name> tarafından zehir tedavi edildi
link.flags <link.flags>&~04
endif
else
if (<link.uid> == <cont.uid>)
local.heal_val = <eval (<cont.healing> @ 2) / rand(20000,30000)>
link.hits += <local.heal_val>
link.message @<def.messagecolor>,,1 Kendini tedavi eder
link.flags <link.flags>&~04
elif (<link.uid> == !<cont.uid>)
local.heal_val = <eval (<cont.healing> @ 2) / rand(20000,30000)>
link.hits += <local.heal_val>
link.message @<def.messagecolor>,,1 <uid.<cont>.name> tarafından tedavi edilir
link.flags <link.flags>&~04
endif
endif
if (<link.hits> > <link.maxhits>)
link.hits = <link.maxhits>
endif
[function f_fail_healing]
if (<def0.EnableFail>)
local.failchance = <eval rand(1,1100)>
if (<local.failchance> > <cont.healing>)
doswitch <cont.findid(i_memory_healer).more>
cont.sysmessage @<def0.MessageColor>,,1 Bandajlarınız etkili olmadı. Tekrar deneyiniz.
enddo
cont.tag0.failrate += 1
cont.findid(i_memory_healer).remove
cont.flags <cont.flags>&~04
endif
endif
[function f_gain_healing]
if (<cont.healing> < 1000)
cont.tag0.gainchance += 70
if (<cont.tag0.gainchance> > <cont.healing>)
cont.healing += 0.1
cont.tag0.gainchance = 0
endif
endif
[events e_heal_interrupt]
on=@GetHit
if (<R1,4> > 2)
sysmessage @<def0.MessageColor>,,1 Bandaj uygularken elleriniz kaydı, yaranızı iyileştiremediniz.
findid(i_memory_healer).remove
events -e_heal_interrupt
message @089,,1 * Bandajlar yirtilir *
flags <flags>&~04
return 0
endif
[function bandajsuresi]
if (<src.dex> < 26)
local.zaman 7
elif (<src.dex> < 36)
local.zaman 6
elif (<src.dex> < 91)
local.zaman 5
elif (<src.dex> < 101)
local.zaman 4
endif
return <dlocal.zaman>
[eof]
Total votes: 0
Off Topic 2 gün önce
Sunucular 3 gün önce
Sunucular 3 hafta önce
Ultima Online 1 ay önce
Sunucular 2 ay önce
Sunucular 3 ay önce
Sphere Scripting 3 ay önce
CS 1.6 4 ay önce
Sunucular 5 ay önce
Sunucular 5 ay önce
Sunucular 5 ay önce
2024-09-26 14:21
2024-07-08 22:50
2024-07-08 22:34
2024-06-19 22:05
2024-06-01 02:19
2024-05-31 21:17
2024-04-09 16:53
2024-04-06 18:20
Yorumlar (0)