Autor Tema: Ayuda adaptando Evento Medallas a L2JAdmins fissban rev 1093  (Leído 68 veces)

canonmagic

  • Newbie
  • *
  • Mensajes: 18
  • Karma: +0/-0
    • Ver Perfil
Ayuda adaptando Evento Medallas a L2JAdmins fissban rev 1093
« en: Junio 11, 2018, 06:17:25 pm »
Buenas, les escribo para pedirles una pequeña ayuda, estoy aprendiendo poco a poco el comportamiento del datapack L2Jadmins, para ir aprendiendo poco a poco maneras de crear scripts y mods me he tomado la tarea de traer algunos de otros datapacks y adaptarlos. Pero me he encontrado un pequeño percance con el evento de las event medals. Ya hize un script aparte para los drops globales y me funciono perfectamente, pero al intentar adaptar la quest de los gatos "Roy the cat" y "Winnie the cat" me tira el siguiente error el GameServer:

Código
------------------------------------------------------------------=[ Scripts ]
java.lang.NoSuchMethodException: net.sf.l2j.gameserver.scripts.quests.normal.Eve
ntMedalQuest.<init>()
        at java.base/java.lang.Class.getConstructor0(Unknown Source)
        at java.base/java.lang.Class.getDeclaredConstructor(Unknown Source)
        at net.sf.l2j.gameserver.data.ScriptsData.parseFile(ScriptsData.java:58)

        at net.sf.l2j.util.XmlParser.loadFile(XmlParser.java:94)
        at net.sf.l2j.util.XmlParser.loadFile(XmlParser.java:67)
        at net.sf.l2j.gameserver.data.ScriptsData.load(ScriptsData.java:43)
        at net.sf.l2j.gameserver.GameServer.<init>(GameServer.java:296)
        at net.sf.l2j.gameserver.GameServer.main(GameServer.java:356)

y revisando el script detenidamente:

Código
/*
 * Copyright (C) 2014-2018 L2jAdmins
 *
 * This file is part of L2jAdmins.
 *
 * L2jAdmins is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * L2jAdmins is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package net.sf.l2j.gameserver.scripts.quests.normal;

import net.sf.l2j.gameserver.model.actor.L2Npc;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

/**
 * @author Noname
 *
 */

import net.sf.l2j.gameserver.scripts.Script;
import net.sf.l2j.gameserver.scripts.ScriptState;
import net.sf.l2j.util.lib.Rnd;

public class EventMedalQuest extends Script
{
private final static int CAT_ROY = 6228;
private final static int CAT_WINNIE = 6229;
private final static int GLITTERING_MEDAL = 6393;

private final static int WIN_CHANCE = 50;

private final static int[] MEDALS =
{
5,
10,
20,
40
};
private final static int[] BADGES =
{
6399,
6400,
6401,
6402
};

private static final int[][] _spawns_winnie =
{
{
-44342,
-113726,
-240,
0
},
{
-44671,
-115437,
-240,
22500
},
{
-13073,
122841,
-3117,
0
},
{
-13972,
121893,
-2988,
32768
},
{
-14843,
123710,
-3117,
8192
},
{
11327,
15682,
-4584,
25000
},
{
11243,
17712,
-4574,
57344
},
{
18154,
145192,
-3054,
7400
},
{
19214,
144327,
-3097,
32768
},
{
19459,
145775,
-3086,
48000
},
{
17418,
170217,
-3507,
36000
},
{
47146,
49382,
-3059,
32000
},
{
44157,
50827,
-3059,
57344
},
{
79798,
55629,
-1560,
0
},
{
83328,
55769,
-1525,
32768
},
{
80986,
54452,
-1525,
32768
},
{
83329,
149095,
-3405,
49152
},
{
82277,
148564,
-3467,
0
},
{
81620,
148689,
-3464,
32768
},
{
81691,
145610,
-3467,
32768
},
{
114719,
-178742,
-821,
0
},
{
115708,
-182422,
-1449,
0
},
{
-80731,
151152,
-3043,
28672
},
{
-84097,
150171,
-3129,
4096
},
{
-82678,
151666,
-3129,
49152
},
{
117459,
76664,
-2695,
38000
},
{
115936,
76488,
-2711,
59000
},
{
119576,
76940,
-2275,
40960
},
{
-84516,
243015,
-3730,
34000
},
{
-86031,
243153,
-3730,
60000
},
{
147124,
27401,
-2192,
40960
},
{
147985,
25664,
-2000,
16384
},
{
111724,
221111,
-3543,
16384
},
{
107899,
218149,
-3675,
0
},
{
114920,
220080,
-3632,
32768
},
{
147924,
-58052,
-2979,
49000
},
{
147285,
-56461,
-2776,
33000
},
{
44176,
-48688,
-800,
33000
},
{
44294,
-47642,
-792,
50000
}
};

private static final int[][] _spawns_roy =
{
{
-44337,
-113669,
-224,
0
},
{
-44628,
-115409,
-240,
22500
},
{
-13073,
122801,
-3117,
0
},
{
-13949,
121934,
-2988,
32768
},
{
-14786,
123686,
-3117,
8192
},
{
11281,
15652,
-4584,
25000
},
{
11303,
17732,
-4574,
57344
},
{
18178,
145149,
-3054,
7400
},
{
19208,
144380,
-3097,
32768
},
{
19508,
145775,
-3086,
48000
},
{
17396,
170259,
-3507,
36000
},
{
47151,
49436,
-3059,
32000
},
{
44122,
50784,
-3059,
57344
},
{
79806,
55570,
-1560,
0
},
{
83328,
55824,
-1525,
32768
},
{
80986,
54504,
-1525,
32768
},
{
83332,
149160,
-3405,
49152
},
{
82277,
148598,
-3467,
0
},
{
81621,
148725,
-3467,
32768
},
{
81680,
145656,
-3467,
32768
},
{
114733,
-178691,
-821,
0
},
{
115708,
-182362,
-1449,
0
},
{
-80789,
151073,
-3043,
28672
},
{
-84049,
150176,
-3129,
4096
},
{
-82623,
151666,
-3129,
49152
},
{
117498,
76630,
-2695,
38000
},
{
115914,
76449,
-2711,
59000
},
{
119536,
76988,
-2275,
40960
},
{
-84516,
242971,
-3730,
34000
},
{
-86003,
243205,
-3730,
60000
},
{
147184,
27405,
-2192,
17000
},
{
147920,
25664,
-2000,
16384
},
{
111776,
221104,
-3543,
16384
},
{
107904,
218096,
-3675,
0
},
{
114920,
220020,
-3632,
32768
},
{
147888,
-58048,
-2979,
49000
},
{
147262,
-56450,
-2776,
33000
},
{
44176,
-48732,
-800,
33000
},
{
44319,
-47640,
-792,
50000
}
};

public EventMedalQuest(int questId, String name, String descr)
{
super(5000, "EventMedalQuest");
addStartNpc(CAT_ROY);
addStartNpc(CAT_WINNIE);
addTalkId(CAT_ROY);
addTalkId(CAT_WINNIE);
addFirstTalkId(CAT_ROY);
addFirstTalkId(CAT_WINNIE);
for (int[] _spawn : _spawns_roy)
{
addSpawn(CAT_ROY, _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0);
}
for (int[] _spawn : _spawns_winnie)
{
addSpawn(CAT_WINNIE, _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0);
}
}

@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = "";
ScriptState st = player.getScriptState(getName());
htmltext = event;

int level = checkLevel(st);

if (event.equalsIgnoreCase("game"))
{
if (st.getItemsCount(GLITTERING_MEDAL) < MEDALS[level])
return "8229-no.htm";
else
return "8229-game.htm";
}
else if (event.equalsIgnoreCase("heads") || event.equalsIgnoreCase("tails"))
{
if (st.getItemsCount(GLITTERING_MEDAL) < MEDALS[level])
return "8229-" + event.toLowerCase() + "-10.htm";

st.takeItems(GLITTERING_MEDAL, MEDALS[level]);

if (Rnd.get(100) > WIN_CHANCE)
{
level = 0;
}
else
{
if (level>0)
st.takeItems(BADGES[level-1], -1);
st.giveItems(BADGES[level], 1);
st.playSound("Itemsound.quest_itemget");
level++;
}
return "8229-" + event.toLowerCase() + "-" + String.valueOf(level) + ".htm";
}
else if (event.equalsIgnoreCase("talk"))
{
return String.valueOf(npc.getId()) + "-lvl-" + String.valueOf(level) + ".htm";
}
return htmltext;
}

@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
ScriptState st = player.getScriptState(getName());
if (st == null)
{
ScriptState q = player.getScriptState(getName());
st = q.setState(player);
}
return npc.getId() + ".htm";
}

public int checkLevel(ScriptState st)
{
int _lev = 0;
if (st == null)
{
return 0;
}
else if (st.getItemsCount(6402) > 0)
{
_lev = 4;
}
else if (st.getItemsCount(6401) > 0)
{
_lev = 3;
}
else if (st.getItemsCount(6400) > 0)
{
_lev = 2;
}
else if (st.getItemsCount(6399) > 0)
{
_lev = 1;
}

return _lev;
}

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

{
}

}

El problema parece que esta en esta parte... pero no he logrado entender todavía el problema.

Código
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
ScriptState st = player.getScriptState(getName());
if (st == null)
{
ScriptState q = player.getScriptState(getName());
st = q.setState(player);
}
return npc.getId() + ".htm";
}

¿Tienen alguna idea de que puede estar causándome el problema para poder solucionarlo?, Disculpen mi ignorancia por adelantado apenas es el 2do script que intento hacer funcionar  :-\
« Última modificación: Junio 14, 2018, 12:22:22 am por fissban »

fissban

  • Administrador
  • Full Member
  • *
  • Mensajes: 123
  • Karma: +0/-0
    • Ver Perfil
Re:Ayuda adaptando Evento Medallas a L2JAdmins fissban rev 1093
« Respuesta #1 en: Junio 13, 2018, 02:40:36 pm »
esto no lo necesitas
Código
	public static void main(String[] args)
{
new EventMedalQuest(-1, "Event Medal", "events");
}

esto
Código
	public EventMedalQuest(int questId, String name, String descr)
{
super(5000, "EventMedalQuest");

por

Código
	public EventMedalQuest()
{
super(5000, "EventMedalQuest");

canonmagic

  • Newbie
  • *
  • Mensajes: 18
  • Karma: +0/-0
    • Ver Perfil
Re:Ayuda adaptando Evento Medallas a L2JAdmins fissban rev 1093
« Respuesta #2 en: Junio 13, 2018, 08:32:15 pm »
Vaya, muchisimas gracias nuevamente fissban  ;D tenia ya alrededor de 3 dias dandole vueltas al script sin saber donde se encontraba el error  ::).