Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2006 20:05:42

helper2`
От:
Зарегистрирован: 2006-06-03
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Jython

Есть одна online игра вот кусок кода из игры :


print “importing custom data: 1006_tattoos”
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

class Quest (JQuest) :

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

def onEvent (self,event,st) :
htmltext = event

# TattooOpower
if event == “1”:
if st.getQuestItemsCount(1458) >= 181:
st.takeItems(1458,181)
st.giveItems(485,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TattooOfire
if event == “2”:
if st.getQuestItemsCount(1458) >= 276:
st.takeItems(1458,276)
st.giveItems(486,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TatooOstout
if event == “3”:
if st.getQuestItemsCount(1458) >= 276:
st.takeItems(1458,276)
st.giveItems(487,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TattooOflame
if event == “4”:
if st.getQuestItemsCount(1460) >= 462:
st.takeItems(1460,462)
st.giveItems(488,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TattooObraze
if event == “5”:
if st.getQuestItemsCount(1459) >= 428:
st.takeItems(1459,428)
st.giveItems(489,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TatooOblood
if event == “6”:
if st.getQuestItemsCount(1461) >= 462:
st.takeItems(1461,462)
st.giveItems(490,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TatooOabsolute
if event == “7”:
if st.getQuestItemsCount(1461) >= 422:
st.takeItems(1461,422)
st.giveItems(491,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TatooOsoul
if event == “8”:
if st.getQuestItemsCount(1458) >= 181:
st.takeItems(1458,181)
st.giveItems(492,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TattooOavadon
if event == “9”:
if st.getQuestItemsCount(1460) >= 208:
st.takeItems(1460,208)
st.giveItems(493,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TatooOdoom
if event == “10”:
if st.getQuestItemsCount(1460) >= 321:
st.takeItems(1460,321)
st.giveItems(494,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TattooOpledge
if event == “11”:
if st.getQuestItemsCount(1460) >= 208:
st.takeItems(1460,208)
st.giveItems(495,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TattooOdivine
if event == “12”:
if st.getQuestItemsCount(1460) >= 321:
st.takeItems(1460,321)
st.giveItems(496,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

# TattooOnightmare
if event == “13”:
if st.getQuestItemsCount(1461) >= 422:
st.takeItems(1461,422)
st.giveItems(2410,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

if event == “0”:
htmltext = “Trade has been canceled.”

if htmltext != event:
st.setState(COMPLETED)
st.exitQuest(1)

return htmltext

def onTalk (Self,npc,st):

npcId = npc.getNpcId()
htmltext = “<html><head><body>I have nothing to say to you.</body></html>”
st.setState(STARTED)
return “1.htm”

QUEST = Quest(1006,“1006_tattoos”,“custom”)
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

QUEST.addStartNpc(12613)

STARTED.addTalkId(12613)

Как можна вот например в этой куске кода :

# TattooOpower
if event == “1”:
if st.getQuestItemsCount(1458) >= 181:
st.takeItems(1458,181)
st.giveItems(485,1)
htmltext = “Enjoy your new tattoo.”
else:
htmltext = “You do not have enough crystals.”

Как зделать так чтов игрок которий играет в ету игру мог выполнить тока ету строку :

st.giveItems(485,1)



Отредактировано (Июнь 3, 2006 20:09:31)

Офлайн

#2 Июнь 3, 2006 20:40:06

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Jython

Тебе нужно эту игру взломать, или переписать, или, вообще, добавить что-то в код.
И, по конкретней, что делать с другим кодом? Например, внутри if:
st.takeItems(1458,181) и
htmltext = “Enjoy your new tattoo.”



Офлайн

#3 Июнь 3, 2006 21:42:35

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Jython

что-то я вопрос не сильно понял, да и надо бы знать что из себя представляют классы (в плане смысловой нагрузки), если надо чтоб выполнилась только st.giveItems(485,1), наверно надо закоментировать остальное%)
# st.takeItems(1458,181)

по lineage серваку есть свой форум, там думаю товарищи ближе к теме=)
из буржуйских - http://l2j.mookins.com/bb/index.php, из наших http://la2.wrk.ru/forum/ (jython топ)

был ещё http://l2j.xay.ru но уже его нет (наверно лучший форум) мож они хостинг сменили

Офлайн

#4 Июнь 4, 2006 03:12:50

helper2`
От:
Зарегистрирован: 2006-06-03
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Jython

alafin
Тебе нужно эту игру взломать, или переписать, или, вообще, добавить что-то в код.
И, по конкретней, что делать с другим кодом? Например, внутри if:
st.takeItems(1458,181) и
htmltext = “Enjoy your new tattoo.”
Вот дам пример для того чтоб получить “TattooOpower” такую вещ в игре игрок должен нажать кнопку при которой посылается такая строка на сервер :

bypass -h Quest 1006_tattoos 1

а потом сервер начинает проверять :

if st.getQuestItemsCount(1458) >= 181

есле у игрока есть количества вещи(1458) больше чем 181 :

st.takeItems(1458,181)
st.giveItems(485,1)

тогда у игрока заберут вещь(1458) в количестве 181 и дадут вешь(485) в кодличестве 1:

а я спрашываю можнали на сервер послать такую строко чтоб даже есле утебя нет вещи(1458)
в количестве 181 то сервер считал бы что у тебя есть такая вещь или можнали послать строку которая моглабы выполнить тока :
st.giveItems(485,1)
етот кусок кода?



Офлайн

#5 Июнь 4, 2006 08:55:09

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Jython

Можешь достать весь код этой игрухи или дай ссылку?! Если она полностью написана на Jython, то насколько я знаю по лицензии распространяющейся на Jython - они должны выложить или предоставить по запросу весь код написаный на Jython.



Офлайн

#6 Июнь 4, 2006 09:28:41

helper2`
От:
Зарегистрирован: 2006-06-03
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Jython

Вот сылка на сборку сервера :


http://rapidshare.de/files/20511302/L2EmuProject_Rev_1.1.2.exe.html



Офлайн

#7 Янв. 14, 2009 11:16:09

shamon
От:
Зарегистрирован: 2009-01-14
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Jython

У меня есть l2j сервер, на нем вроде питон 2.2.1 - не могли бы знатоки подсказать скрипт.Вообщем я хочу поставить что то типа игры Нпс. Даеш ему 1 монету и шанс 1/3 что можно выиграть 5 монет(аден).

Заранее Благодарен.



Офлайн

#8 Фев. 11, 2009 22:21:32

shamon
От:
Зарегистрирован: 2009-01-14
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Jython

Вот отрывок из моего скрипта :

st.takeItems(itm,1)
st.giveItems(itm,1,22)

берется у игрока оружие и кладется ему такое же но точеное на 22.

Проблемма в том,что пока игрок оружие не оденет,в базе данных оно будет точенное на 0 ((

Что надо добавить , чтобы в базу данных сразу записалось 22 ?



Офлайн

#9 Фев. 11, 2009 22:33:50

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

Jython

shamon, создай отдельный топик в подфоруме.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version