Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   очень много вопросов! (https://forum.zone-game.info/showthread.php?t=15534)

mego4el 16.08.2011 16:45

очень много вопросов!
 
1) на l2jc4 не работают кланхоллы, как оптимальнее всего будет реализовать их?, откуда лучше будет взять код?
2) при релогине персонажа снимает по 5 реков, а должно снимать просто по 3 в день, где искать ошибку?
3) не хотят работать множество квестов, и у нпц просто пишет "I have nothing to say you", я проверял много раз код\id npc\html-ки, пробовал менять по-разному, но никаких результатов это не дало, я не могу понять в чем здесь дело?, вот например этот квест:
[spoiler]
Код:

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

#NPC
JEREMY = 8521
PULIN = 8543
NAFF = 8544
CROCUS = 8545
KUBER = 8546
BEORIN = 8547

#QUEST ITEMS
SPECIAL_DRINK = 7197
FEE_OF_DRINK = 7198

#REWARDS
ADENA = 57
HASTE_POTION = 734

#Chance to get an S-grade random recipe instead of just adena and haste potion
RPCHANCE=10
#Change this value to 1 if you wish 100% recipes, default 70%
ALT_RP100=0

#MESSAGES
default="<html><head><body>I have nothing to say you</body></html>"

class Quest (JQuest) :

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

 def onEvent (self,event,st) :
  htmltext = event
  cond=st.getInt("cond")
  if event == "8521-1.htm" :
    if cond==0:
    st.set("cond","1")
    st.setState(STARTED)
    st.giveItems(SPECIAL_DRINK,5)
    st.playSound("ItemSound.quest_accept")
    else:
      htmltext=default
  if event == "8547-1.htm" :
    if st.getQuestItemsCount(SPECIAL_DRINK):
      if cond==1:
    st.takeItems(SPECIAL_DRINK,1)
    st.giveItems(FEE_OF_DRINK,1)
    st.set("cond","2")
      else:
        htmltext=default
    else:
      htmltext="LMFAO!"
      st.extiQuest(1)
  if event == "8546-1.htm" :
    if st.getQuestItemsCount(SPECIAL_DRINK):
      if cond==2:
    st.takeItems(SPECIAL_DRINK,1)
    st.giveItems(FEE_OF_DRINK,1)
    st.set("cond","3")
      else:
        htmltext=default
    else:
      htmltext="LMFAO!"
      st.extiQuest(1)
  if event == "8545-1.htm" :
    if st.getQuestItemsCount(SPECIAL_DRINK):
      if cond==3:
    st.takeItems(SPECIAL_DRINK,1)
    st.giveItems(FEE_OF_DRINK,1)
    st.set("cond","4")
      else:
        htmltext=default
    else:
      htmltext="LMFAO!"
      st.extiQuest(1)
  if event == "8544-1.htm" :
    if st.getQuestItemsCount(SPECIAL_DRINK):
      if cond==4:
    st.takeItems(SPECIAL_DRINK,1)
    st.giveItems(FEE_OF_DRINK,1)
    st.set("cond","5")
      else:
        htmltext=default
    else:
      htmltext="LMFAO!"
      st.extiQuest(1)
  if event == "8543-1.htm" :
    if st.getQuestItemsCount(SPECIAL_DRINK):
      if cond==5:
    st.takeItems(SPECIAL_DRINK,1)
    st.giveItems(FEE_OF_DRINK,1)
    st.set("cond","6")
      else:
        htmltext=default
    else:
      htmltext="LMFAO!"
      st.extiQuest(1)
  if event == "8521-3.htm" :
    if st.getQuestItemsCount(FEE_OF_DRINK) == 5:
    st.takeItems(FEE_OF_DRINK,5)
        if st.getRandom(100) < RPCHANCE :
          st.giveItems(range(6847+ALT_RP100,6853,2)[st.getRandom(3)],1)
        else:
    st.giveItems(ADENA,18800)
    st.giveItems(HASTE_POTION,1)
    st.playSound("ItemSound.quest_finish")
    st.exitQuest(1)
    else:
        htmltext=default
  return htmltext

 def onTalk (Self,npc,st):
  htmltext = default
  npcId = npc.getNpcId()
  id = st.getState()
  if id == CREATED :
    st.set("cond","0")
  cond = int(st.get("cond"))
  if npcId == 8521 and cond == 0 :
    if st.getPlayer().getLevel() >= 68 :
      htmltext = "8521-0.htm"
    else:
      st.exitQuest(1)
  elif npcId == 8547 and cond == 1 and st.getQuestItemsCount(SPECIAL_DRINK) :
    htmltext = "8547-0.htm"
  elif npcId == 8546 and cond == 2 and st.getQuestItemsCount(SPECIAL_DRINK) :
    htmltext = "8546-0.htm"
  elif npcId == 8545 and cond == 3 and st.getQuestItemsCount(SPECIAL_DRINK) :
    htmltext = "8545-0.htm"
  elif npcId == 8544 and cond == 4 and st.getQuestItemsCount(SPECIAL_DRINK) :
    htmltext = "8544-0.htm"
  elif npcId == 8543 and cond == 5 and st.getQuestItemsCount(SPECIAL_DRINK) :
    htmltext = "8543-0.htm"
  elif npcId == 8521 and cond == 6 and st.getQuestItemsCount(FEE_OF_DRINK) == 5 :
    htmltext = "8521-2.htm"
  return htmltext

QUEST      = Quest(622,"622_DeliveryOfSpecialLiquor","Delivery of special liquor")
CREATED    = State('Start', QUEST)
STARTED    = State('Started', QUEST)

QUEST.setInitialState(CREATED)
QUEST.addStartNpc(8521)

CREATED.addTalkId(8521)
STARTED.addTalkId(8521)

for i in range(8543,8548):
    STARTED.addTalkId(i)

STARTED.addQuestDrop(8521,SPECIAL_DRINK,1)
STARTED.addQuestDrop(8521,FEE_OF_DRINK,1)

print "importing quests: 622: Delivery of special liquor"

[/spoiler]
4) у гладиаторов на всех скиллах не показывает отката, в чем может быть дело???

5) не дает почему-то более одного саба, хотя квест пройден. пробовал разобраться, накопал следующее:
[spoiler]
Код:

if (!Config.ALT_GAME_SUBCLASS_WITHOUT_QUESTS)
                    {
                        L2ItemInstance elixirItem = player.getInventory().getItemByItemId(ELIXIR_ITEM_ID);
                        L2ItemInstance destinyItem = player.getInventory().getItemByItemId(
                                                                                          DESTINY_ITEM_ID);

                        if (elixirItem == null)
                        {
                            player.sendMessage("You must have completed the Mimir's Elixir quest to continue adding your sub class.");
                            return;
                        }
                       
                        if (destinyItem == null)
                        {
                            player.sendMessage("You must have completed the Fate's Whisper quest to continue adding your sub class.");
                            return;
                        }
                       
                        if (allowAddition)
                        {
                            player.destroyItemByItemId("Quest", ELIXIR_ITEM_ID, 1, this, true);
                            player.destroyItemByItemId("Quest", DESTINY_ITEM_ID, 1, this, true);
                        }

[/spoiler]

проверка чисто на наличие предметов, но это не совсем правильно, как я понимаю. затем я попробовал вырезал этот кусочек из С6:

[spoiler]
Код:

if (!Config.ALT_GAME_SUBCLASS_WITHOUT_QUESTS)
                    {
                        QuestState qs = player.getQuestState("235_MimirsElixir");
                        if (qs == null || !qs.isCompleted())
                        {
                            player.sendMessage("You must have completed the Mimir's Elixir quest to continue adding your sub class.");
                            return;
                        }
                        if(!Config.ALT_SUB_WITHOUT_FATES)
                        {
                            qs = player.getQuestState("234_FatesWhisper");
                            if (qs == null || !qs.isCompleted())
                            {
                                player.sendMessage("You must have completed the Fate's Whisper quest to continue adding your sub class.");
                                return;
                            }
                        }
                    }

[/spoiler]

но в игре все та же штука, пишет что саб не пройден, хотя он пройден! импорт queststate в этот класс сделал, разумеется.(
как сделать что бы нормально работало, подскажите плз?

6) максимальное кол-во адены обнуляется, то есть число MAX_INT, когда в игре подбираешь или покупаешь\продаешь, то сумма выходит за предел и просто становится ноль, и так далее по кругу. я пытался найти подходящую строчку в коде, но нашел только MAX INT karma (PCInstance). что делать?((
7) когда игрок подбирает предмет, то пишет только название предмета, а его количество нет, как исправить?
8) где и как можно поправить точки респауна в городах?, просто существуют точки, которые вообще в текстурах, и приходится еще раз юзать сое.

спасибо заранее, буду очень благодарен!!!!

Azagthtot 16.08.2011 18:24

Re: очень много вопросов!
 
На эти и другие вопросы, вам ответят ваши друзья Н. Вирт и Г. Шилд, со своим курсом "Программирование в картинках".
Поясню, что бы не было "обид". Ваши вопросы все из одной серии. Надо брать вашу сборку, отлаживать и править. Сказать "почему такое происходит и как исправить" не видя самого кода, и без отладки нельзя.

mego4el 17.08.2011 01:06

Re: очень много вопросов!
 
здесь не все зависит от кода, если вы этого не заметили, со своим, как я понял, высоким интеллектом.
многие сталкивались с подобными проблемами, и находили решение, не хочу изобретать велосипед, я надеюсь на добрых людей, спасибо.

Ro_0TT 17.08.2011 06:01

Re: очень много вопросов!
 
Цитата:

Сообщение от mego4el (Сообщение 135657)
здесь не все зависит от кода, если вы этого не заметили, со своим, как я понял, высоким интеллектом.
многие сталкивались с подобными проблемами, и находили решение, не хочу изобретать велосипед, я надеюсь на добрых людей, спасибо.

Вопросы слишком элементарны, отвечать на них - безтолку, попробуйте взять в руки то, что посоветовал вам Azagthtot и разобраться самому. И вам полезно и лишние строки в базе своим постом не забиваете :).


Текущее время: 02:18. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot