Перейти к содержанию
Авторизация  
Ando

Скрипт Бафера

Рекомендуемые сообщения

Всем привет. Кто поможет добавить в этот скрипт бафера

import sys

from com.l2jfrozen.commons.util.database import L2DatabaseFactory

from com.l2jfrozen.gameserver.model.quest import State

from com.l2jfrozen.gameserver.model.quest import QuestState

from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest

 

from com.l2jfrozen.gameserver.model.actor.instance import L2PcInstance

from com.l2jfrozen.gameserver.model import L2Skill

from java.util import Iterator

from com.l2jfrozen.gameserver.datatables import SkillTable

 

qn = "9990_buffer"

 

NPC = [40001]

ACCEPT_BUFF = [1040, 1068, 1035, 1043, 1077, 1078, 1085, 1311, 1032,

1036, 1045, 1048, 4352, 4357, 4342, 4358, 4360, 1243,

1388, 1389, 1087, 1059, 1268, 1303]

ACCEPT_DANCES = [271, 272, 273, 274, 275, 276, 277,

310, 365]

ACCEPT_SONGS = [364, 264, 269, 265, 363, 349,

305, 304, 267, 266, 268]

ACCEPT_CHANTS = []

ACCEPT_SPECIAL = [1363, 1356, 1355, 1357, 1413,

]

ACCEPT_RESISTS = []

 

QuestId = -1

QuestName = "Buffer"

QuestDesc = "custom"

 

print qn + " Buffer by Andranik"

 

 

 

class Quest (JQuest) :

 

 

 

def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

 

def onEvent(self, event, st):

htmltext = "Sory, failed Event"

ownerid = st.getPlayer().getObjectId()

effects = st.getPlayer().getAllEffects()

if event.startswith("page_") :

page = int(event.replace("page_", ""))

htmltext = str(page) + ".htm"

elif event == "cancel" :

st.getPlayer().stopAllEffects()

htmltext = "1.htm"

activePage = 1

elif event == "reload" :

st.getPlayer().restoreCP()

st.getPlayer().restoreHP()

st.getPlayer().restoreMP()

htmltext = "1.htm"

elif event.startswith("buff_") :

id_lvl = event.replace("buff_", "")

id_lvl = id_lvl.split("_")

SkillTable.getInstance().getInfo(int(id_lvl[0]), int(id_lvl[1])).getEffects(st.getPlayer(), st.getPlayer())

htmltext = str(int(id_lvl[2])) + ".htm"

elif event.startswith("profile_") :

act = event.replace("profile_", "")

con = L2DatabaseFactory.getInstance().getConnection()

if act.startswith("buff_") :

act = str(int(act.replace("buff_", "")))

sql = con.prepareStatement("SELECT * FROM profile_buff WHERE char_id = ? AND pindex = ?")

sql.setInt(1, int(ownerid))

sql.setInt(2, int(act))

rs = sql.executeQuery()

rs.next()

full_buffs = rs.getString("skills").split(";")

sql.close()

rs.close()

for buff in full_buffs :

if buff != "" :

buff = buff.split(",")

SkillTable.getInstance().getInfo(int(buff[0]), int(buff[1])).getEffects(st.getPlayer(), st.getPlayer())

 

htmltext = "1.htm"

elif act.startswith("save_") :

act = str(int(act.replace("save_", "")))

sqll = con.prepareStatement("DELETE FROM profile_buff WHERE char_id = ? AND pindex = ?")

sqll.setInt(1, int(ownerid))

sqll.setInt(2, int(act))

sqll.execute()

sqll.close()

saving = "++"

for eff in effects :

eff_id = eff.getSkill().getId()

eff_level = eff.getSkill().getLevel()

if saving == "++" :

if (eff_id in ACCEPT_BUFF or eff_id in ACCEPT_DANCES or eff_id in ACCEPT_SONGS or eff_id in ACCEPT_CHANTS or eff_id in ACCEPT_SPECIAL or eff_id in ACCEPT_RESISTS) :

saving = str(eff_id) + "," + str(eff_level) + ";"

else :

if (eff_id in ACCEPT_BUFF or eff_id in ACCEPT_DANCES or eff_id in ACCEPT_SONGS or eff_id in ACCEPT_CHANTS or eff_id in ACCEPT_SPECIAL or eff_id in ACCEPT_RESISTS) :

saving += str(eff_id) + "," + str(eff_level) + ";"

sql = con.prepareStatement("INSERT INTO profile_buff (char_id, pindex, skills) VALUES ('" + str(ownerid) + "', '" + str(act) + "', '" + saving + "')")

sql.execute()

sql.close()

htmltext = "8.htm"

con.close()

return htmltext

 

def onTalk (self, npc, player):

htmltext = "1.htm"

st = player.getQuestState(qn)

if not st : return htmltext

npcId = npc.getNpcId()

return htmltext

 

 

QUEST = Quest(QuestId, qn, QuestDesc)

CREATED = State('Start', QUEST)

STARTED = State('Started', QUEST)

COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

 

for npcId in NPC:

QUEST.addStartNpc(npcId)

QUEST.addTalkId(npcId)

 

 

возможность выхиливать hp, cp, mp. Вот из другого бафера вырезал кусок скрипта для хила, но вот как его вставить чтобы ошибку не выдавало?

 

#MP-HP

if event == "71":

st.takeItems

st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp())

return "1.htm"

st.setState(State.COMPLETED)

Изменено пользователем Ando

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

обычно выходит такая ошибка

Traceback (innermost last):

(no code object) at line 0

SyntaxError: ('inconsistent dedent', ('__init__.py', 42, 2, ' def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)'))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

обычно выходит такая ошибка

Traceback (innermost last):

(no code object) at line 0

SyntaxError: ('inconsistent dedent', ('__init__.py', 42, 2, ' def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)'))

Залей баффера самого и то что хочешь в него вставить, сделаю скину.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

elif event == "reload" :

st.getPlayer().restoreCP()

st.getPlayer().restoreHP()

st.getPlayer().restoreMP()

htmltext = "1.htm"

 

А это что?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

elif event == "reload" :

st.getPlayer().restoreCP()

st.getPlayer().restoreHP()

st.getPlayer().restoreMP()

htmltext = "1.htm"

 

А это что?

 

это часть скрипта для выхиливания

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...