Сообщений: 433
Тем: 35
Зарегистрирован: Jun 2009
Репутация:
1,392
03-18-2012, 06:54 PM
(Сообщение последний раз редактировалось: 07-24-2013, 02:00 AM Aristocrat.)
Уважаемые гости и завсегдатаи форума Zone-Game.
Открываю эту тему с целью набить руку и получить опыт работы с L2j-сборками.
Что я могу вам предложить:
- Исправление мелких багов в L2j-подобных сборках, на которые не хватает ваших знаний.
- Написание хендлеров, войс-команд, расширение функционала
- Разработка и внедрение custom-AI для мобов, РБ и т.п.
Работаю за спасибо.
Заявки можно формировать в этой теме по-образцу:
Код: Название сборки.
Хроники
Что нужно сделать. Описание максимально подробно.(Чем подробнее описание, тем быстрее и точнее будет выполнена работа)
PS: Контакты для связи - ICQ: 324-888-423
-----------------------------------------------------
За прошедший год скилы апнуты ощутимо. Могу взяться за более широкую работу. Прежнее условие в силе - четкое и понятное ТЗ. Без него за работу скорее всего не возьмусь.
Сообщений: 341
Тем: 32
Зарегистрирован: May 2011
Репутация:
57
Тут можно?
Войс команду для открытия пустого html диалога.
Сообщений: 433
Тем: 35
Зарегистрирован: Jun 2009
Репутация:
1,392
Работу вам тоже сюда или куда-то в другое место?
PHP код: <?php
package handlers.voicedcommandhandlers;
import javolution.text.TextBuilder;
import *.gameserver.handler.IVoicedCommandHandler;
import *.gameserver.model.actor.instance.L2PcInstance;
import *.gameserver.network.gameclientcon.send.NpcHtmlMessage;
/**
*
* @author Aristo
*/
public class showHTML implements IVoicedCommandHandler {
private static String[] _voicedCommands = {
"showHtml"
};
@Override
public String[] getVoicedCommandList() {
return _voicedCommands;
}
@Override
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String x) {
if (command.startsWith("showHtml")) {
NpcHtmlMessage reply = new NpcHtmlMessage(8);
TextBuilder dialog = new TextBuilder("<html><body>");
dialog.append("<table>");
dialog.append("<tr>");
dialog.append("<td>");
dialog.append("</td>");
dialog.append("</tr>");
dialog.append("</table>");
dialog.append("</body></html>");
reply.setHtml(dialog.toString());
activeChar.sendPacket(reply);
}
return false;
}
}
Если будет более подробное ТЗ, могу сделать любые проверки и уточнения. Формирование HTML контента вручную через append
Разумеется, если вам нужно, чтобы это запускалось у вас, неплохо бы назвать хотя бы версию и авторов сборки)
Сообщений: 341
Тем: 32
Зарегистрирован: May 2011
Репутация:
57
03-19-2012, 12:02 AM
(Сообщение последний раз редактировалось: 03-19-2012, 12:13 AM Effas.)
Aristocrat Написал:Работу вам тоже сюда или куда-то в другое место?
PHP код: <?php
package handlers.voicedcommandhandlers;
import javolution.text.TextBuilder;
import *.gameserver.handler.IVoicedCommandHandler;
import *.gameserver.model.actor.instance.L2PcInstance;
import *.gameserver.network.gameclientcon.send.NpcHtmlMessage;
/**
*
* @author Aristo
*/
public class showHTML implements IVoicedCommandHandler {
private static String[] _voicedCommands = {
"showHtml"
};
@Override
public String[] getVoicedCommandList() {
return _voicedCommands;
}
@Override
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String x) {
if (command.startsWith("showHtml")) {
NpcHtmlMessage reply = new NpcHtmlMessage(8);
TextBuilder dialog = new TextBuilder("<html><body>");
dialog.append("<table>");
dialog.append("<tr>");
dialog.append("<td>");
dialog.append("</td>");
dialog.append("</tr>");
dialog.append("</table>");
dialog.append("</body></html>");
reply.setHtml(dialog.toString());
activeChar.sendPacket(reply);
}
return false;
}
}
Если будет более подробное ТЗ, могу сделать любые проверки и уточнения. Формирование HTML контента вручную через append
Разумеется, если вам нужно, чтобы это запускалось у вас, неплохо бы назвать хотя бы версию и авторов сборки) Спасибо, в ближайшее время, хотел бы поковырятся не много в ядре, посмотреть, что где и как работает, для написание мини-евентика.
Вот и, что бы не копаться будет уже инфа)
Добавлено через 5 минут
Как время будет, то спавн моба в нужную координату. А так же хотел бы пример(а так же не много теории), как осуществляется постоянная проверка на жив/мерт.
Допустим имеем 3 моба и 1го босса.
Пока 3и моба живы, у босса хп х5. (вот как этот момент проверяется постоянно?)
P.S. И еще заюз скила мобом.
В общих чертах:
1. Спавн 3х мобов и 1го рб.
2. Проверка, если живы 3и моба у рб любые статы, например х5 хп.
3. 1н моб кастует скил на босса постоянно, пока жив (название не помню, но на ИТ использовался у магов для заряда овера под али уд(луч энергии)).
Буду очень признателен.
P.S.S. Работу можно прямо сюда, думаю многим будет полезна.
Сообщений: 433
Тем: 35
Зарегистрирован: Jun 2009
Репутация:
1,392
В общих чертах:
1. Спавн 3х мобов и 1го рб.
2. Проверка, если живы 3и моба у рб любые статы, например х5 хп.
3. 1н моб кастует скил на босса постоянно, пока жив (название не помню, но на ИТ использовался у магов для заряда овера под али уд(луч энергии)).
PHP код: <?php
/*
* This program 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.
*
* This program 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 ai.individual;
import ai.group_template.L2AttackableAIScript;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
public class ZoneGameAI extends L2AttackableAIScript {
private static final int RB = 99999;
private static final int MINION = 99998;
private L2Object RB_O = null;
private L2Object MINION_O = null;
private boolean MINION_DEAD = false;
int[] mob = {
RB, MINION
};
public ZoneGameAI( int questId, String name, String descr ) {
super( questId, name, descr );
this.registerMobs( mob );
}
@Override
public String onSpawn( L2Npc npc ) {
if ( npc.getNpcId() == RB ) {
RB_O = npc;
} else if ( npc.getNpcId() == MINION ) {
MINION_O = npc;
}
return super.onSpawn( npc );
}
@Override
public String onAttack( L2Npc npc, L2PcInstance attacker, int damage, boolean isPet ) {
if ( npc.getNpcId() == MINION && npc.isDead() ) { //Проверка ИД. Если MINION и мертв,
MINION_DEAD = true; // то ставим true для переменной MINION_DEAD
} else if ( npc.getNpcId() == MINION && !npc.isDead() ) { //Проверка ИД. Если MINION и НЕмертв,
npc.broadcastPacket( new MagicSkillUse( (L2Character) MINION_O, (L2Character) RB_O, 100500, 1, 1000, 0 ) ); //Используем скил
}
if ( npc.getNpcId() == RB && MINION_DEAD ) { //Проверка ИД и переменной MINION_DEAD. Если выполняется условие, то выполняем произвольный метод.
customMethod(); //Исполнение произвольного кода.
}
return super.onAttack( npc, attacker, damage, isPet );
}
public static void main( String[] args ) {
// Quest class and state definition
new ZoneGameAI( -1, "RB", "ai" );
}
public void customMethod() {
//Произвольный код. Могут быть, например, множители статов для этого NpcID где-то в L2Npc)
}
}
Вроде ничего не забыл) В самых общих чертах.
PS: Сделал для одного моба, т.к разница только в количестве переменных)
PPS: Ява гуру прошу не принимать этот код близко к сердцу и помнить, что корвалол можно найти в аптечке)
Сообщений: 16
Тем: 4
Зарегистрирован: Oct 2011
Репутация:
0
сборка L2JTeon можно добавить StrictHeroSystem Запрещает/Разрешает простым игрокам носить HERO WEAPON
Сообщений: 433
Тем: 35
Зарегистрирован: Jun 2009
Репутация:
1,392
OnReal, Дайте линк на SVN, если есть.
Сообщений: 16
Тем: 4
Зарегистрирован: Oct 2011
Репутация:
0
Сообщений: 2,036
Тем: 37
Зарегистрирован: Jun 2011
Репутация:
10,597
Впервые за долгое время вижу, что кто-то бесплатно делает фиксы для народа. Респект. (:
Сообщений: 433
Тем: 35
Зарегистрирован: Jun 2009
Репутация:
1,392
OnReal, Файл: http://my-svn.assembla.com/svn/L2JTeon/t...ntory.java
Строка 992
Код:
Код: if (!player.isHero())
Изменить на Код: if (!player.isHero() || Config.ALL_PLAYER_CAN_EQUIP_HERO_ITEM)
Строка 1229 сделать тоже самое.
Как вставить переменную в конфиг разберетесь или тоже написать?
|