Кто работал в python?

Теги:
 

mk2

втянувшийся
Вот такой скриптик сделал для Tutorial квеста.
Но что-то мне подсказывает, что его можно сделать проще... Может какой шаблон на python нарисовать, чтоб большинство простых квестов легко делались... Короче, подскажите как лучше.

html-ки выводятся на основании имени текущего state, типа вот такая у меня директория для тьюториала:
Completed.ht
Start.htm
Started.htm
_init_.py

При событии (скажем, разговоре с NPC) вызывается метод onEvent
Ну, в общем, понятно всё :)

code text
  1. __all__ = ['Quest', 'newTutorial']
  2. print "importing quests: Tutorial"
  3.  
  4. import sys
  5. from net.sf.l2j.gameserver.model.quest import State
  6. from net.sf.l2j.gameserver.model.quest import QuestState
  7. from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
  8.  
  9.  
  10. KELTIR_NPC_ID = 12082
  11. FANGS_ITEM_ID = 3863
  12. DROP_RATE     = 500000
  13.  
  14. WORLD_MAP_ITEM_ID = 1665
  15.  
  16. CREATED = State('Created')
  17. STARTED = State('Started')
  18. COMPLETED = State('Completed')
  19.  
  20. def create() : return Quest()
  21.  
  22. QUEST = JQuest("Tutorial", "data.quests.Tutorial.create()")
  23. QUEST.addState(CREATED)
  24. QUEST.addState(STARTED)
  25. QUEST.addState(COMPLETED)
  26. QUEST.setInitialState(CREATED)
  27.  
  28. class Quest (QuestState):
  29.  
  30.   def onEvent (self,event):
  31.     st = QuestState.getState(self)
  32.     print st
  33.     if st == CREATED :
  34.         return self.start()
  35.     elif st == COMPLETED:
  36.         return self
  37.     elif st == STARTED:
  38.         return self.check()
  39.     return self
  40.  
  41.   def check(self) :
  42.     print "checking"
  43.     if QuestState.getQuestItemsCount(self,FANGS_ITEM_ID) >= 4 :
  44.         return self.completed()
  45.     print "not enough items"
  46.     print QuestState.getQuestItemsCount(self,FANGS_ITEM_ID)
  47.     QuestState.addQuestDrop(self,KELTIR_NPC_ID,FANGS_ITEM_ID,DROP_RATE)
  48.     return self
  49.  
  50.   def start(self) :
  51.     print "starting"
  52.     QuestState.addQuestDrop(self,KELTIR_NPC_ID,FANGS_ITEM_ID,DROP_RATE)
  53.     self.setState(STARTED)
  54.     return self
  55.  
  56.   def completed(self) :
  57.     print "completing"
  58.     self.setState(COMPLETED)
  59.     QuestState.clearQuestDrops(self)
  60.     QuestState.takeItems(self,FANGS_ITEM_ID,-1)
  61.     QuestState.giveItems(self,WORLD_MAP_ITEM_ID,1)
  62.     return self
 
+
-
edit
 

-=dc=-
-dc-2

новичок
ну почему питон ????
может просто на яве а?
(питоном я даже не пробовал заниматся)
Мыши плакали, кололись, но все равно жрали кактус.  

mk2

втянувшийся
Как по мне - питон проще и мощнее бейсика.
Но если хочешь - делаешь бейсик совместимым с BSF и делаешь квесты на нём.
Я специально всё делаю через BSF ( http://jakarta.apache.org/bsf/index.html ) чтоб не заставлять народ писать только на каком-то одном, мне нравящемся, скриптовом языке.
Список бейсиков - http://www.robert-tolksdorf.de/vmlanguages.html :)
 
AD Реклама Google — средство выживания форумов :)
+
-
edit
 

-=dc=-
-dc-2

новичок
mk2, 01.05.05 04:33:43:
Вот такой скриптик сделал для Tutorial квеста.
Но что-то мне подсказывает, что его можно сделать проще... Может какой шаблон на python нарисовать, чтоб большинство простых квестов легко делались... Короче, подскажите как лучше.

html-ки выводятся на основании имени текущего state, типа вот такая у меня директория для тьюториала:
Completed.ht
Start.htm
Started.htm
_init_.py

При событии (скажем, разговоре с NPC) вызывается метод onEvent
Ну, в общем, понятно всё :)

[»]
 

ты это уже закомитил ? я хотел глянуть и ненашел :(

на мой взгляд нужно
1. иметь возможность вывести произвольный Html в любом месте кода.
2. Шаблон можно так как большенство квестов сводятся пойди убей принеси(для них можно и шаблон).
3.возможность ставить /снимать флаги (Например квест выполнен)
(как вариант таблица в БД в которой можна было бы хранить произвольные значения )
как пример
code text
  1. user_id
  2. quest_id
  3. flag_name
  4. flag_value

было еще много всего чего хотелось но ша не вспомню.

Мыши плакали, кололись, но все равно жрали кактус.  

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