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

Phyton!

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

Нужна помощь знатоков питона! Вроде все делаю верно скрипт:

elif event == "reload" :
 st.getPlayer().restoreCP()
 st.getPlayer().restoreHP()
 st.getPlayer().restoreMP()
 htmltext = "1.htm"

хтмлка

<td align=center><button value="Восстановить" action="bypass -h Quest 9990_buffer reload"

 

Но в итоге выходит вот это:

post-12976-0-20830900-1390549286_thumb.jpg

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


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

Нужна помощь знатоков питона! Вроде все делаю верно скрипт:

elif event == "reload" :
 st.getPlayer().restoreCP()
 st.getPlayer().restoreHP()
 st.getPlayer().restoreMP()
 htmltext = "1.htm"

хтмлка

<td align=center><button value="Восстановить" action="bypass -h Quest 9990_buffer reload"

 

Но в итоге выходит вот это:

не знаю важно ли , но пишется вроде бы не большими restoreHP а restoreHp

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


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

Попробовал к сожалению не получилось. Гс ругается теперь на restoreCp

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


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

Попробовал к сожалению не получилось. Гс ругается теперь на restoreCp

Скинь полный скрипт для рассмотрения

 

Кто знает какую кодировку надо для питона, так как вместо слова допустим "Привет" получаю "и5>:" насколько я понял ютф не подходит однозначно.

(- Написал нпц статиста пк\пвп\клан\богатей а потерялся в самом простом:) -)

 

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


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

Скинь полный скрипт для рассмотрения

 

Кто знает какую кодировку надо для питона, так как вместо слова допустим "Привет" получаю "и5>:" насколько я понял ютф не подходит однозначно.

(- Написал нпц статиста пк\пвп\клан\богатей а потерялся в самом простом :) -)

 

вот


import sys
from com.l2jfrozen.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, 4391, 4403, 4405, 1243,
1388, 1389, 1087, 1259, 1059, 1268]
ACCEPT_DANCES = [271, 272, 273, 274, 275, 276, 277, 307, 309,
310, 311, 365]
ACCEPT_SONGS = [364, 264, 306, 269, 270, 265, 363, 349, 308,
305, 304, 267, 266, 268]
ACCEPT_CHANTS = [1251, 1252, 1253, 1284, 1006, 1007, 1009, 1362,
1310, 1309, 1308, 1391, 1390]
ACCEPT_SPECIAL = [1364, 1356, 1355, 1357, 1413, 4702, 4703, 4700,
4699, 1323]
ACCEPT_RESISTS = [1393, 1392, 1182, 1189, 1191, 1352, 1353, 1073]
QuestId = -1
QuestName = "Buffer"
QuestDesc = "custom"
print qn + " Buffer l2maxi.ru (KFan)"
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)

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


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

Попробовал к сожалению не получилось. Гс ругается теперь на restoreCp

 

Значит зделайте restoreCP с логикой туго ?

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

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


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

На сколько я помню, на l2j мето немного по-дургому выглядит. Поищите его в ядре и посмотрите как работает метод. Возможно, ему требуется значение getMaxHp.

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


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

Значит зделайте restoreCP с логикой туго ?

Нет не туго. Все варианты уже перепробывал

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


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

На сколько я помню, на l2j мето немного по-дургому выглядит. Поищите его в ядре и посмотрите как работает метод. Возможно, ему требуется значение getMaxHp.

Согласен. Хотя мне показалось как нету или не хватает st.setState могу ошибаться

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


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

На сколько я помню, на l2j мето немного по-дургому выглядит. Поищите его в ядре и посмотрите как работает метод. Возможно, ему требуется значение getMaxHp.

Не работает...скрипт по моему и писался специально для л2ж

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


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

Кто знает какую кодировку надо для питона, так как вместо слова допустим "Привет" получаю "и5>:" насколько я понял ютф не подходит однозначно.

(- Написал нпц статиста пк\пвп\клан\богатей а потерялся в самом простом :) -)

 

Чтобы писать кирилицу на питоне, нужно все загонять под таблицу /u042b - вот так например один символ будет выглядеть.

  • Upvote 1

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


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

Чтобы писать кирилицу на питоне, нужно все загонять под таблицу /u042b - вот так например один символ будет выглядеть.

Благодарю волшебник:) уже опробовал и пашет:)

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


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

Нужна помощь знатоков питона! Вроде все делаю верно скрипт:

elif event == "reload" :
 st.getPlayer().restoreCP()
 st.getPlayer().restoreHP()
 st.getPlayer().restoreMP()
 htmltext = "1.htm"

хтмлка

<td align=center><button value="Восстановить" action="bypass -h Quest 9990_buffer reload"

 

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

st.getPlayer().setCurrentHP(st.getPlayer().getMaxHp())

st.getPlayer().setCurrentMP(st.getPlayer().getMaxMp())

  • Upvote 1

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


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

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

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

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

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

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

Войти

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

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

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

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

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