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

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Помогите включить функцию в java (https://forum.zone-game.info/showthread.php?t=9029)

Дух системы 10.07.2010 20:12

Помогите включить функцию в java
 
доброго вечера.

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

Код:

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?

PROGRAMMATOR 10.07.2010 21:06

Re: Помогите включить функцию в java
 
[SOURCE="java"]CursedWeapon cw = new CursedWeapon(id, skillId, name);[/SOURCE]

Дух системы 10.07.2010 22:20

Re: Помогите включить функцию в java
 
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.

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

PROGRAMMATOR 11.07.2010 00:46

Re: Помогите включить функцию в java
 
Напрямую попробовать:
[SOURCE="java"]CursedWeapon.endOfLife();[/SOURCE]
или
[SOURCE="java"]CursedWeapon.getInstance().endOfLife();[/SOURCE]

Как-то так.

Lavs 11.07.2010 12:58

Re: Помогите включить функцию в java
 
Она xml определяется в датапаке.
Помоему CursedWeapon.xml

Дух системы 14.07.2010 21:04

Re: Помогите включить функцию в java
 
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 итема

Дух системы 01.08.2010 21:27

Re: Помогите включить функцию в java
 
реализовал :)

Код:

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


n3k0nation 01.08.2010 23:14

Re: Помогите включить функцию в java
 
Цитата:

Сообщение от Дух системы (Сообщение 81767)
реализовал :)

Код:

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


Таким образом будут удалено все проклятое оружие из игры, даже его носит другой игрок, если я правильно понял, то нужно для игрока, который проходит квест, можно сделать вот так, например:
Код:

csw.getCursedWeapon(player.getCursedWeaponEquipedId()).endOfLife();
P.S: перед этим желательно сделать проверку isCursedWeaponEquipped().

Дух системы 02.08.2010 21:48

Re: Помогите включить функцию в java
 
интересно, надо будет проверить

откуда взят csw??

pitch 03.08.2010 08:27

Re: Помогите включить функцию в java
 
Цитата:

Сообщение от Дух системы (Сообщение 78830)
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 = "..."


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

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