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

Баффер

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

Создал бафера но не знаю как добавить в него проверку на адену и лвл. Чтоб с персонажа 39 лвл не брало адену а у остальных проверяло наличие адены и отнимало нужную сумму.

Вот сам скрипт:

 

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 = [40002]
prise_ID = 57
ACCEPT_BUFF = [1040, 1068, 1035, 1043, 1077, 1078, 1085, 1311, 1032,
		 1036, 1045, 1048, 4352, 4357, 4391, 4403, 4405,
		 1388, 1389, 1087, 1059, 1268, 1240, 1044, 1303]
ACCEPT_DANCES = [271, 272, 273, 274, 275, 276, 277, 307, 309,
			 310, 311, 365]
ACCEPT_SONGS = [364, 264, 269, 265, 363, 349,
		 305, 304, 267, 266, 268]
ACCEPT_CHANTS = [1251, 1252, 1253, 1284, 1006, 1007, 1009, 1362,
			 1310, 1309, 1308, 1391, 1390, 1002]
ACCEPT_SPECIAL = [1363, 1356, 1355, 1357, 1413,]
ACCEPT_RESISTS = [ 1352, 1354]
Full_buff_f3_prise = 10000
Full_buff_m3_prise = 10000
prise = 1000
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"
if event == "mage":
st.takeItems(prise_ID,Full_buff_m3_prise)
st.getPlayer().stopAllEffects()
SkillTable.getInstance().getInfo(1045,6).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1048,6).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1085,3).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1036,2).getEffects(st.getPlayer(),st.getPlayer())
SkillTable.getInstance().getInfo(1059,3).getEffects(st.getPlayer(),st.getPlayer())
SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1062,2).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1078,6).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1259,4).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer(),st.getPlayer())		
SkillTable.getInstance().getInfo(1413,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1087,3).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(365,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer())
SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().restoreCP()
st.getPlayer().setCurrentHpMp(st.getPlayer().getMaxHp(), st.getPlayer().getMaxMp())
return "1.htm"
st.setState(State.COMPLETED)
if event == "warrior":
st.takeItems(prise_ID,Full_buff_f3_prise)
st.getPlayer().stopAllEffects()
SkillTable.getInstance().getInfo(1077,3).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1242,3).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1086,2).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1240,3).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1045,6).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1048,6).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1087,3).getEffects(st.getPlayer(),st.getPlayer())		
SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1036,2).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1268,4).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1062,2).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1259,4).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer(),st.getPlayer())
SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(266,1).getEffects(st.getPlayer(),st.getPlayer())
SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer(),st.getPlayer())	
SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer(),st.getPlayer())
st.getPlayer().restoreCP()
st.getPlayer().setCurrentHpMp(st.getPlayer().getMaxHp(), st.getPlayer().getMaxMp())
return "1.htm"
st.setState(State.COMPLETED)
elif event == "cancel" :
 st.getPlayer().stopAllEffects()
 htmltext = "1.htm"
 activePage = 1
elif event == "reload" :
 st.getPlayer().restoreCP()
 st.getPlayer().setCurrentHpMp(st.getPlayer().getMaxHp(), st.getPlayer().getMaxMp())
 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("buffs_") :
 id_lvl = event.replace("buffs_", "")
 id_lvl = id_lvl.split("_")
 SkillTable.getInstance().getInfo(int(id_lvl[0]), int(id_lvl[1])).getEffects(st.getPlayer(), st.getPlayer())
 htmltext = "9.htm"
elif event.startswith("buffn_") :
 id_lvl = event.replace("buffn_", "")
 id_lvl = id_lvl.split("_")
 SkillTable.getInstance().getInfo(int(id_lvl[0]), int(id_lvl[1])).getEffects(st.getPlayer(), st.getPlayer())
 htmltext = "10.htm"
elif event.startswith("buffa_") :
 id_lvl = event.replace("buffa_", "")
 id_lvl = id_lvl.split("_")
 SkillTable.getInstance().getInfo(int(id_lvl[0]), int(id_lvl[1])).getEffects(st.getPlayer(), st.getPlayer())
 htmltext = "11.htm"
elif event.startswith("buffq_") :
 id_lvl = event.replace("buffq_", "")
 id_lvl = id_lvl.split("_")
 SkillTable.getInstance().getInfo(int(id_lvl[0]), int(id_lvl[1])).getEffects(st.getPlayer(), st.getPlayer())
 htmltext = "12.htm"
elif event.startswith("buffz_") :
 id_lvl = event.replace("buffz_", "")
 id_lvl = id_lvl.split("_")
 SkillTable.getInstance().getInfo(int(id_lvl[0]), int(id_lvl[1])).getEffects(st.getPlayer(), st.getPlayer())
 htmltext = "13.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())
st.getPlayer().restoreCP()
st.getPlayer().setCurrentHpMp(st.getPlayer().getMaxHp(), st.getPlayer().getMaxMp())	
	 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 = "1.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)

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


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

Я думаю так.

 

Заменить:

 

st.takeItems(prise_ID,Full_buff_m3_prise);

 

на

 

if(st.getPlayer().getLevel() <= 39)

{

st.takeItems(prise_ID,0);

}

else

{

st.takeItems(prise_ID,Full_buff_m3_prise);

}

 

Ну и соответственоо остальные по аналогии.

Изменено пользователем BrainEater
  • Upvote 1

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


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

Проблема в том что бафер бафает даже если нету адены надо проверку на адену.

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


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

Тебе же написали пример данного кода?

Что тут уж такого трудного?

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


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

Всё, он просто немного неправильно написал.

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


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

Доделаю выложу баффер!

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


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

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

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

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

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

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

Войти

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

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

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

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

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