Q: event medal shop

 

dudka

новичок
на своем сервере выигравших какой либо евент я награждаю медалями
за определенное количество этих медалей планируется продавать b-s grade
собственно вопрос в том как сделать npc который бы и продавал итемы за медали
 
+
-
edit
 

Mirosya

разработчик OpenWorlds
dudka:
на своем сервере выигравших какой либо евент я награждаю медалями
за определенное количество этих медалей планируется продавать b-s grade
собственно вопрос в том как сделать npc который бы и продавал итемы за медали
 

посмотри реализацию luxure-shopa,сделанную на jynthone - и по образу и подобию накатай свое.
 

dudka

новичок
btw как сделать чтоб при заходе на сервер открывалось welcome окно?
я добавил в on-player-start.f

"jbh/welcome.htm" show
но ничего не происходит
 
+
-
edit
 

Balancer

администратор
★★★★★
Происходит, но когда игрок ещё не загрузил реально игру :)

Проблема в том, что объект игрока создаётся дважды. Перенос обработки во включение онлайн-состояния не помог, т.к. оно тоже включается очень рано. Наверное, в спавн надо будет перенести :)

А так - у любого NPC можно будет поставить :)
 

dudka

новичок
я так и думал )
но в паке project-io это както реализованно
хотя в on-player-start.f нет вообще никакого упоминиания о welcom.htm
 
+
-
edit
 

Vairus

втянувшийся
Примерно как должен выглядеть этот скрипт на медали:

Файл _init_.py
code text
  1. ### Settings
  2. NPC         = [NPCID]
  3. QuestId     = 9999
  4. QuestName   = "weapon"
  5. QuestDesc   = "medal_shop"
  6. InitialHtml = "1.htm"
  7.  
  8. Items       = [
  9. ["ItemName", ItemID, HowMuchItems, MedalID, HowMuchMedalsneed],
  10. ["ItemName", ItemID, HowMuchItems, MedalID, HowMuchMedalsneed]
  11. ]
  12.  
  13. ### ---------------------------------------------------------------------------
  14. ### DO NOT MODIFY BELOW THIS LINE
  15. ### ---------------------------------------------------------------------------
  16.  
  17. print "importing " + QuestDesc + ": " + str(QuestId) + ": " + QuestName + ": " + str(len(Items)) + " item(s)",
  18. import sys
  19. from net.sf.l2j.gameserver.model.quest import State
  20. from net.sf.l2j.gameserver.model.quest import QuestState
  21. from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
  22.  
  23. ### doRequestedEvent
  24. def do_RequestedEvent(event, st, giveItemId, giveItemQty, takeItem1Id, takeItem1Qty) :
  25.     if st.getQuestItemsCount(takeItem1Id) >= takeItem1Qty :
  26.         st.takeItems(takeItem1Id, takeItem1Qty)
  27.         st.giveItems(giveItemId, giveItemQty)
  28.         st.exitQuest(1)
  29.         return event + ".htm"
  30.     else :
  31.         return "You do not have enough Medals."
  32.  
  33. ### main code
  34. class Quest (JQuest) :
  35.  
  36.  def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
  37.  
  38.  def onEvent (self,event,st) :
  39.     htmltext = event
  40.  
  41.     if event == "0":
  42.         return InitialHtml
  43.  
  44.     for item in Items:
  45.         if event == str(item[1]):
  46.             htmltext = do_RequestedEvent(event, st, item[1], item[2], item[3], item[4], item[5], item[6])
  47.    
  48.     if htmltext != event:
  49.       st.setState(COMPLETED)
  50.       st.exitQuest(1)
  51.  
  52.     return htmltext
  53.  
  54.  def onTalk (Self,npcId,st):
  55.    htmltext = "<html><head><body>I have nothing to say with you</body></html>"
  56.    st.setState(STARTED)
  57.    return InitialHtml
  58.  
  59. ### Quest class and state definition
  60. QUEST       = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
  61. CREATED     = State('Start',     QUEST)
  62. STARTED     = State('Started',   QUEST)
  63. COMPLETED   = State('Completed', QUEST)
  64.  
  65. ### Quest initialization
  66. QUEST.setInitialState(CREATED)
  67.  
  68. for item in NPC:
  69. ### Quest NPC starter initialization
  70.    QUEST.addStartNpc(item)
  71.  
  72. ### Quest NPC initialization
  73.    STARTED.addTalkId(item)
  74.  
  75. print "...done"


Файл 1.htm


code text
  1. <html><body>
  2. <table border=0 width=300>
  3. <tr>
  4. <td align=left><font color="LEVEL">Weapon for Medals:</font></td>
  5. <td align=right> </td>
  6. <td width=5>
  7. </td>
  8. </tr>
  9. </table>
  10. <table border=0 width=300>
  11. <tr>
  12. <td width=35 height=45><img src=icon.weapon_youweaponname_i00 width=32 height=32 align=left></td>
  13. <td width=365 valign=top>
  14. <table border=0 width=100%>
  15. <tr><td><a action="bypass -h Quest 9999_weapon 72.htm"><font color="FFFFFF">YouItemName</font> (Grade #)</a></td></tr>
  16. <tr><td><a action="bypass -h Quest 9999_weapon 72.htm"><font color="B09878">Sword (or Other) / # Handed</font></a></td></tr>
  17. </table>
  18. </td>
  19. </tr>
  20. </body></html>


файл 72.htm

code text
  1. <html><body>
  2. <table border=0 width=300>
  3. <tr>
  4. <td align=left><font color="LEVEL">Item Information</font></td>
  5. <td align=right><button value=Back action="bypass -h Quest 9999_weapon 0" width=40 height=15 back=sek.cbui94 fore=sek.cbui92></td>
  6. <td width=5>
  7. </td>
  8. </tr>
  9. </table>
  10. <table border=0 bgcolor="000000" width=500 height=160>
  11. <tr>
  12. <td valign=top>
  13. <table border=0>
  14. <tr>
  15. <td valign=top width=35><img src=icon.weapon_youweaponname_i00 width=32 height=32 align=left></td>
  16. <td valign=top width=400>
  17. <table border=0 width=100%>
  18. <tr><td><font color="FFFFFF">ItemName</font> (Grade #)</td></tr>
  19. <tr><td><font color="B09878">Sword (or Other) / # Handed</font></td></tr>
  20. </table>
  21. </td>
  22. </tr>
  23. </table>
  24. <table border=0 width=400>
  25. <tr><td valign=top><font color="CCCCCC">P. Atk. :</font> <font color="B09878">WeaponPAtk</font></td></tr>
  26. <tr><td valign=top><font color="CCCCCC">M. Atk. :</font> <font color="B09878">WeaponMAtk</font></td></tr>
  27. <tr><td valign=top><font color="CCCCCC">Atk. Spd. :</font> <font color="B09878">WeaponAtk.Spd.</font></td></tr>
  28. <tr><td valign=top><font color="CCCCCC">Consumed Soulshot :</font> <font color="B09878">X #</font></td></tr>
  29. <tr><td valign=top><font color="CCCCCC">Spirtshot Consumption :</font> <font color="B09878">X #</font></td></tr>
  30. <tr><td valign=top><font color="CCCCCC">Weight :</font> <font color="B09878">WeaponWeight</font></td></tr>
  31. </table>
  32. </td>
  33. </tr>
  34. </table>
  35.  
  36.  
  37. <font color="LEVEL">Item Required</font>
  38. <table border=0 bgcolor="000000" width=500 height=120>
  39. <tr>
  40. <td valign=top>
  41. <table border=0>
  42. <tr>
  43. <td valign=top width=35><img src=icon.etc_medal_i00 width=32 height=32 align=left></td>
  44. <td valign=top width=400>
  45. <table border=0 width=100%>
  46. <tr><td><font color="FFFFFF">Medals</font></td></tr>
  47. <tr><td><font color="B09878">X  ###</font></td></tr>
  48. </table>
  49. </td>
  50. </tr>
  51.  
  52.  
  53. <table border=0 width=300>
  54. <tr><td align=center><button value=Buy action="bypass -h Quest 9999_weapon ItemID" width=60 height=15 back=sek.cbui94 fore=sek.cbui92></td></tr>
  55. </table>
  56. </body></html>


Заменяеш Слова ItemName. Weapon***. # на точ то тебе нужно и все должно работать!

все должно находится в data/jscript/medal_shop/9999_weapon/

ах да чуть незабыл Текст НПС (прикрепляеш к любому из папки merchants и на него прилепляеш данный выше скрипт):

code text
  1. <html>
  2. <body>
  3. Medal Shop Traderi:
  4.  
  5. ####################YOUTEXT#####################################
  6.  
  7. I'm sorry but we don't accept adena anymore, only <font color="LEVEL">medals.</font> I hope that's not too inconvenient.
  8.  
  9. If you're looking for armor, just ask my wife next to me.
  10.  
  11. <a action="bypass -h npc_%objectId%_Quest 9999_weapon"><font color="LEVEL">Buy Weapons</font></a>
  12.  
  13. <a action="bypass -h npc_%objectId%_TerritoryStatus">See the Lord and Tax Rate Information</a>
  14.  
  15. <a action="bypass -h npc_%objectId%_Quest"><font color="LEVEL">Quest</font></a>
  16.  
  17. </body>
  18. </html>
Если взять кило водяры и пол литра закусона, И вдохнуть марихуаны правым глазом через нос, То придет Иосиф Сталин без руки, но семиногий И взмахнет забавно **ем И попросит Папирос. © http://www.Lineages.ru Server Administrator  
+
-
edit
 

Balancer

администратор
★★★★★
Мда... Что-то мне подсказывает, что на Форте оно должно быть проще :) Хотя надо разобраться с самой задачей. Пощупать, что за медали такие и т.п. :)

Ну и, наконец, надо словари ввести...
 

dudka

новичок
помогите найти как и где вызывается welcome.htm 8(
svn://www.project-io.org:90 for the l2j custom server
svn://www.project-io.org:100 for the l2j custom datapack
 
+
-
edit
 

Vairus

втянувшийся
Balancer:
Мда... Что-то мне подсказывает, что на Форте оно должно быть проще :) Хотя надо разобраться с самой задачей. Пощупать, что за медали такие и т.п. :)

Ну и, наконец, надо словари ввести...
 


а ты вот и напиши на форте =)
Если взять кило водяры и пол литра закусона, И вдохнуть марихуаны правым глазом через нос, То придет Иосиф Сталин без руки, но семиногий И взмахнет забавно **ем И попросит Папирос. © http://www.Lineages.ru Server Administrator  
+
-
edit
 

Balancer

администратор
★★★★★
>а ты вот и напиши на форте =)

Пока есть более приоритетные вещи :)
 

dudka

новичок
ладно спасибо за помощь с магазином
welcome.htm буду сам ковырять
 
RU qwerty™ #03.11.2005 07:39
+
-
edit
 

qwerty™

новичок
dudka:
помогите найти как и где вызывается welcome.htm 8(
svn://www.project-io.org:90 for the l2j custom server
svn://www.project-io.org:100 for the l2j custom datapack
 


а очень просто в этой сборке приветствие не закодировано, в отличии от сборки уважаемого Балансера:) и его очень просто найти находится в l2jgameserverjavanetsfl2jgameserverclientpacketsEnterWorld.java :) оттуда же вызывается welcome.htm

а вот вам и файлик)) изучайте!
 
+
-
edit
 

Vairus

втянувшийся
dudka
магазин корректно работает?
Если взять кило водяры и пол литра закусона, И вдохнуть марихуаны правым глазом через нос, То придет Иосиф Сталин без руки, но семиногий И взмахнет забавно **ем И попросит Папирос. © http://www.Lineages.ru Server Administrator  
+
-
edit
 

mrSteam

втянувшийся
dudka я не эксперт, не пробовал. а что если с помощью WinRar обновить этот файл ? :)
Баги для читера это средство выживания Баги для админа это веревка и мыло  
+
-
edit
 

Vairus

втянувшийся
должно выглядеть так
файл data/jbforth/on-player-start.f
code text
  1.  This file loaded on every player enter in game
  2.  
  3.  To disable online notify use 'true to player-online-notify` in config/server.f
  4. online-notify
  5.  
  6. suv-load-all            load saveable user vars
  7.  
  8. enter-jail-check
  9.  
  10. "jbforth/welcome.htm" show

файл data/jbforth/welcome.htm
code text
  1. <html>Welcome to You Server Name, <font color="LEVEL">[ player@ 'Name' p@ . ]</font> ! </html>


и все работает =)
з.ы. спЫздЫл из последней сборки гринхопа...
Если взять кило водяры и пол литра закусона, И вдохнуть марихуаны правым глазом через нос, То придет Иосиф Сталин без руки, но семиногий И взмахнет забавно **ем И попросит Папирос. © http://www.Lineages.ru Server Administrator  
+
-
edit
 

Vairus

втянувшийся
mrSteam:
dudka я не эксперт, не пробовал. а что если с помощью WinRar обновить этот файл ? :)
 


только Eclipse ВинРар непрокатит... файл незагрузится.... зразу видно что ты не ЫкспЭрт =_)
Если взять кило водяры и пол литра закусона, И вдохнуть марихуаны правым глазом через нос, То придет Иосиф Сталин без руки, но семиногий И взмахнет забавно **ем И попросит Папирос. © http://www.Lineages.ru Server Administrator  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru