1). в папке config залесть в script.cfg и вставить снизу там где custom: custom/q8009_HotSpringsBuffs/__init__.py
должно получиться вот так: Quote
# Custom
custom/3995_echo/__init__.py
custom/4000_ShadowWeapons/__init__.py
custom/7000_HeroItems/__init__.py
custom/8000_RaidbossInfo/__init__.py
custom/8001_NpcLocationInfo/__init__.py
custom/6050_KetraOrcSupport/__init__.py
custom/6051_VarkaSilenosSupport/__init__.py
custom/q8009_HotSpringsBuffs/__init__.py <------------это
2). Создать папку в data\scripts\custom\ q8009_HotSpringsBuffs.
там же создать файл __init__.py и вставить:
Quote
import sys
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
from net.sf.l2j.gameserver.datatables import SkillTable
from net.sf.l2j.gameserver.model import L2Effect
from net.sf.l2j.util import Rnd
from java.lang import System qn = "q8009_HotSpringsBuffs"
HSMOBS = [21316, 21321, 21314, 21319]
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onAttack (self,npc,player,damage,isPet):
npcId = npc.getNpcId()
if npcId in HSMOBS:
if (Rnd.get(100) < 50):
if player.getFirstEffect(int(4552)):
holera = player.getFirstEffect(int(4552)).getLevel()
if (Rnd.get(100) < 30):
if holera < 10:
newholera = int(holera + 1)
npc.setTarget(player)
npc.doCast(SkillTable.getInstance().getInfo(4552,newholera))
else:
npc.setTarget(player)
npc.doCast(SkillTable .getInstance().getInfo(4552,1))
else:
if player.getFirstEffect(int(4554)):
malaria = player.getFirstEffect(int(4554)).getLevel()
if (Rnd.get(100) < 15):
if malaria < 10:
newmalaria = int(malaria + 1)
npc.setTarget(player)
npc.doCast(SkillTable.getInstance().getInfo(4554,newmalaria))
else:
npc.setTarget(player)
npc.doCast(SkillTabl e.getInstance().getInfo(4554,1))
return
QUEST = Quest(8009,qn,"custom")
for i in HSMOBS:
QUEST.addAttackId(i)
3).Правка самих скилов в data\stat\skills в файле 4500-4599:
<skill id="4554" levels="10" name="Hot Springs Malaria">
<table name="#Tab-mAtkSpd"> 1.04 1.08 1.12 1.16 1.08 1 1 1 1 1 </table>
<table name="#MpConsumeRate"> 1 0.96 0.96 0.96 0.92 0.92 0.92 0.88 0.88 0.84 </table>
<set name="mpConsume" val="55"/>
<set name="power" val="200"/>
<set name="target" val="TARGET_ONE"/>
<set name="hitTime" val="1"/>
<set name="skillType" val="BUFF"/>
<set name="operateType" val="OP_ACTIVE"/>
<set name="castRange" val="600"/>
<set name="effectRange" val="900"/>
<for>
<effect count="900" name="DamOverTime" time="4" val="0" abnormal="poison">
<mul order="0x40" stat="mAtkSpd" val="#Tab-mAtkSpd"/>
<mul order="0x40" stat="MpConsumeRate" val="#MpConsumeRate"/>
</effect>
</for>
</skill> <skill id="4552" levels="10" name="Hot Springs Cholera">
<table name="#Tab-rEvas"> 0 3 3 3 5 5 5 8 8 10 </table>
<table name="#Tab-accCombat"> 3 6 8 10 6 0 0 0 0 0 </table>
<set name="mpConsume" val="69"/>
<set name="power" val="200"/>
<set name="target" val="TARGET_ONE"/>
<set name="hitTime" val="1"/>
<set name="skillType" val="BUFF"/>
<set name="operateType" val="OP_ACTIVE"/>
<set name="castRange" val="600"/>
<set name="effectRange" val="900"/>
<for>
<effect count="900" name="DamOverTime" time="4" val="0" abnormal="poison">
<add order="0x40" stat="accCombat" val="#Tab-accCombat"/>
<sub order="0x40" stat="rEvas" val="#Tab-rEvas"/>
</effect>
</for>
</skill>
-----------------------------------------------------------
The End!