Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Помогите включить функцию в java
#1
доброго вечера.

есть кастом квест

Код:
package events.DemonicItems;

import com.l2open.gameserver.model.actor.L2Npc;
import com.l2open.gameserver.model.actor.instance.L2PcInstance;
import com.l2open.gameserver.model.quest.Quest;
import com.l2open.gameserver.model.quest.QuestState;
import com.l2open.gameserver.model.CursedWeapon;

public class DemonicItems extends Quest
{
    // NPC
    private final static int PRIEST = 78945;

    public DemonicItems(int questId, String name, String descr)
    {
        super(questId, name, descr);
        addStartNpc(PRIEST);
        addTalkId(PRIEST);
    }
    
    public String onEvent(String event, QuestState qs)
    {
        String htmltext = "";
        int cond = qs.getInt("cond");
        if(event.equalsIgnoreCase("removecw"))
        {
            if (cond == 0)
            {
                if(qs.getQuestItemsCount(8689) >= 1)
                {
                    cw.endOfLife();
                    qs.takeItems(8689, 1);
                    qs.giveItems(90000, 1);
                    qs.playSound("ItemSound.quest_itemget");
                    htmltext = "2.htm";
                }
                else
                    htmltext = "3.htm";
            }
        }
        return htmltext;
    }

    public String onTalk(L2Npc npc, L2PcInstance player)
    {
        String htmltext = "";
        QuestState st = player.getQuestState(getName());
        htmltext = "<html><body>I have nothing to say to you.</body></html>";
        if (st == null)
            return htmltext;
        int npcId = npc.getNpcId();
        if (npcId == PRIEST)
        {
            htmltext = "1.htm";
            st.set("cond", "0");
        }
        return htmltext;
    }

    public static void main(String[] args)
    {
        new DemonicItems(-1, "DemonicItems", "events");
    }
}

собсно ругается на cw.endOfLife();
endOfLife() находится в com.l2open.gameserver.model.CursedWeapon;
как определить эту cw?
[Изображение: guru.gif]
Ответ
#2
[SOURCE="java"]CursedWeapon cw = new CursedWeapon(id, skillId, name);[/SOURCE]
Ответ
#3
PROGRAMMATOR, спасибо за ответ. но с этим ответом все стало еще более непонятнее.
Код:
1. ERROR in \DemonicItems.java (at line 30)
        CursedWeapon cw = new CursedWeapon(id, skillId, name);
                                           ^^
id cannot be resolved
----------
2. ERROR in \DemonicItems.java (at line 30)
        CursedWeapon cw = new CursedWeapon(id, skillId, name);
                                               ^^^^^^^
skillId cannot be resolved
----------
3. ERROR in \DemonicItems.java (at line 30)
        CursedWeapon cw = new CursedWeapon(id, skillId, name);
                                                        ^^^^
name cannot be resolved
----------
3 problems (3 errors)id cannot be resolved
skillId cannot be resolved
name cannot be resolved
10 июля 22:18:59: [WARNING] Failed executing script: C:\Web\GS\L2jcore2\Game\data

мне необходимо реализовать снятие проклятого оружия с игрока и дать итем.
глянув в AdminCursedWeapons.java понял что снимается все это функцией endOfLife(), которая лежит в CursedWeapon.java.

нельзя ли как то обратиться к этой функции?
[Изображение: guru.gif]
Ответ
#4
Напрямую попробовать:
[SOURCE="java"]CursedWeapon.endOfLife();[/SOURCE]
или
[SOURCE="java"]CursedWeapon.getInstance().endOfLife();[/SOURCE]

Как-то так.
Ответ
#5
Она xml определяется в датапаке.
Помоему CursedWeapon.xml
Ответ
#6
PROGRAMMATOR, не получается, помоги разобраться
Код:
----------
1. ERROR in \DemonicItems.java (at line 30)
        CursedWeapon.endOfLife();
        ^^^^^^^^^^^^^^^^^^^^^^^^
Cannot make a static reference to the non-static method endOfLife() from the typ
e CursedWeapon
----------
1 problem (1 error)Cannot make a static reference to the non-static method endOf
Life() from the type com.l2open.gameserver.model.CursedWeapon
Код:
----------
1. ERROR in \DemonicItems.java (at line 30)
        CursedWeapon.getInstance().endOfLife();
                     ^^^^^^^^^^^
The method getInstance() is undefined for the type CursedWeapon
----------
1 problem (1 error)The method getInstance() is undefined for the type com.l2open
.gameserver.model.CursedWeapon
Lavs, там только шанс выпадения и id итема
[Изображение: guru.gif]
Ответ
#7
реализовал Smile

Код:
                    CursedWeaponsManager cwm = CursedWeaponsManager.getInstance();
                    for (CursedWeapon cw : cwm.getCursedWeapons())
                    {
                        cw.endOfLife();
                    }
[Изображение: guru.gif]
Ответ
#8
Дух системы Написал:реализовал Smile

Код:
                    CursedWeaponsManager cwm = CursedWeaponsManager.getInstance();
                    for (CursedWeapon cw : cwm.getCursedWeapons())
                    {
                        cw.endOfLife();
                    }

Таким образом будут удалено все проклятое оружие из игры, даже его носит другой игрок, если я правильно понял, то нужно для игрока, который проходит квест, можно сделать вот так, например:
Код:
csw.getCursedWeapon(player.getCursedWeaponEquipedId()).endOfLife();

P.S: перед этим желательно сделать проверку isCursedWeaponEquipped().
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#9
интересно, надо будет проверить

откуда взят csw??
[Изображение: guru.gif]
Ответ
#10
Дух системы Написал:PROGRAMMATOR, спасибо за ответ. но с этим ответом все стало еще более непонятнее.
Код:
1. ERROR in \DemonicItems.java (at line 30)
        CursedWeapon cw = new CursedWeapon(id, skillId, name);
                                           ^^
id cannot be resolved
----------
2. ERROR in \DemonicItems.java (at line 30)
        CursedWeapon cw = new CursedWeapon(id, skillId, name);
                                               ^^^^^^^
skillId cannot be resolved
----------
3. ERROR in \DemonicItems.java (at line 30)
        CursedWeapon cw = new CursedWeapon(id, skillId, name);
                                                        ^^^^
name cannot be resolved
----------
3 problems (3 errors)id cannot be resolved
skillId cannot be resolved
name cannot be resolved
10 июля 22:18:59: [WARNING] Failed executing script: C:\Web\GS\L2jcore2\Game\data

мне необходимо реализовать снятие проклятого оружия с игрока и дать итем.
глянув в AdminCursedWeapons.java понял что снимается все это функцией endOfLife(), которая лежит в CursedWeapon.java.

нельзя ли как то обратиться к этой функции?

у тя не определены аргументы конструктора:
name cannot be resolved
----------
3 problems (3 errors)id cannot be resolved
skillId cannot be resolved
name cannot be resolved

их нет...
нужно определить int id = ....
int skillId = ...
String name = "..."
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  java прогер Light87 0 1,908 01-18-2021, 12:15 AM
Последний пост: Light87
  Ребята помогите с логин и геймом Lackyjack 4 1,858 04-04-2018, 05:46 PM
Последний пост: MasVild
  Помогите переписать скрипт с Python на Java Virrilis3 0 1,464 03-29-2018, 10:55 PM
Последний пост: Virrilis3
  Помогите со сборкой lostworld HF voland3 1 2,122 03-22-2018, 12:54 AM
Последний пост: Kampina
  Квест 7 печатей как включить, как управлять! v1kt0r 5 2,904 04-29-2017, 01:17 PM
Последний пост: zGoSu
  Ищу исполнителя [Java] Abstragetic 3 2,122 02-05-2017, 03:01 AM
Последний пост: Deazer
  альт+G java HiredKiller 10 3,401 12-15-2015, 09:40 AM
Последний пост: HiredKiller
  Servise Manager Lucera 2 Java 8. DiName 8 2,673 12-07-2015, 07:43 AM
Последний пост: Deazer
  Дюп через Kamaloka.java dantest 7 2,300 09-14-2015, 09:01 PM
Последний пост: dantest
  GameServer.java dantest 10 3,075 09-11-2015, 07:23 PM
Последний пост: Zeratyl

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)