Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Voice enchant
#1
L2jServer

EnchantWeapon.java
[src=java]
package net.sf.l2j.gameserver.handler.voicedcommandhandlers;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
import net.sf.l2j.gameserver.model.Inventory;
import net.sf.l2j.gameserver.model.actor.instance.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.serverpackets.EnchantResult;
import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate;
import net.sf.l2j.gameserver.network.serverpackets.ItemList;
import net.sf.l2j.gameserver.network.serverpackets.StatusUpdate;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.templates.L2WeaponType;
import net.sf.l2j.util.random.Rnd;


/**
*
* Author AbsolutePower
*
**/
public class EnchantWeapon implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS =
{
"WepEnchant"
};

public boolean useVoicedCommand(String command, final L2PcInstance activeChar, String target)
{
if(command.startsWith("WepEnchant") && activeChar != null && activeChar.isOnline() == 1 && !activeChar.isOffline() || !activeChar.isFlying() || !activeChar.isAlikeDead() || !activeChar.is-beep-ted() || !activeChar.isInOlympiadMode() || !activeChar.isSitting());
TryEnchant(activeChar);
return true;
}


public void TryEnchant(final L2PcInstance activeChar)
{
final boolean CheckGoldBars = activeChar.getInventory().getItemByItemId(3470)== null || activeChar.getInventory().getItemByItemId(3470).getCount() < 4;

if (CheckGoldBars)
{
activeChar.sendMessage("You need 4 gold bars to use this voiced command");
return;
}
else
switch (Rnd.get(10))
{
case 0:
activeChar.sendMessage("Nothing happened try again");
break;
case 1:
activeChar.sendMessage("Nothing happened try again");
break;
case 2:
activeChar.sendMessage("Nothing happened try again");
break;
case 3:
activeChar.sendMessage("Nothing happened try again");
break;
case 4:
activeChar.sendMessage("Nothing happened try again");
break;
case 5:

final L2ItemInstance Weapon = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
final int MaxEnchant = Config.ENCHANT_WEAPON_MAX;
final boolean ActiveWeapon = activeChar.getActiveWeaponInstance() != null;
final boolean MaxEnchantAllowed = activeChar.getActiveWeaponInstance().getEnchantLevel() < MaxEnchant;
final boolean isNotRoDWeapon = activeChar.getActiveWeaponInstance().getItem().getItemType() != L2WeaponType.ROD;
final boolean isInInvetory = Weapon.getLocation() == L2ItemInstance.ItemLocation.INVENTORY;
final boolean isParedol = Weapon.getLocation() == L2ItemInstance.ItemLocation.PAPERDOLL;
final boolean itsMyWeapon = Weapon.getOwnerId() == activeChar.getObjectId();
final int GoldBarID = 3470;
final int GoldBarCount = 4;

if(ActiveWeapon && MaxEnchantAllowed && isNotRoDWeapon && isInInvetory && isParedol && itsMyWeapon)
{
activeChar.destroyItem("EnchantGb", GoldBarID, GoldBarCount, null, false);
Weapon.setEnchantLevel(Weapon.getEnchantLevel() + 1);
Weapon.updateDatabase();

activeChar.sendPacket(new EnchantResult(Weapon.getEnchantLevel()));
activeChar.sendPacket(new ItemList(activeChar, false));
activeChar.sendPacket(new InventoryUpdate());
activeChar.sendPacket(new StatusUpdate(activeChar));
activeChar.broadcastUserInfo();

SystemMessage sm;
sm = SystemMessage.sendString(GoldBarCount + "gold bars destroyed");
sm = SystemMessage.sendString("You have successfully enchant your " + Weapon.getItemName() + " to " + "+" + Weapon.getEnchantLevel());
activeChar.sendPacket(sm);
}
else
activeChar.sendMessage("Be careful there are some rules you must follow:You must have 4 gold bars, your weapon must be smaller than " + Config.ENCHANT_WEAPON_MAX + ", you must wear your weapon, you can't enchant rod weapons");
break;
case 6:
activeChar.sendMessage("Nothing happened try again");
break;
case 7:
activeChar.sendMessage("Nothing happened try again");
break;
case 8:
activeChar.sendMessage("Nothing happened try again");
break;
case 9:
activeChar.sendMessage("Nothing happened try again");
break;
default:
activeChar.sendMessage("Nothing happened try again");
break;
}
}
@Override
public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
}
[/src]

VoicedCommandHandler.java

registerVoicedCommandHandler(new EnchantWeapon());

import net.sf.l2j.gameserver.handler.voicedcommandhandlers.EnchantWeapon;

:redlol: Палучилось захотел поделица, voice команда аля точим пуху Wink

P.S. 50% взял у Америкосов.
У меня есть только два чувства, похмелье и изжога.
Ответ
#2
Кидайте код под
PHP код:
<?php 
[src=java] .. [/src]

Добавлено через 12 минут
А нафига вам Switch в коде?

[src=java]
if (Rnd.get(10) == 5)
{
L2ItemInstance Weapon = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
int MaxEnchant = Config.ENCHANT_WEAPON_MAX;
boolean ActiveWeapon = activeChar.getActiveWeaponInstance() != null;
boolean MaxEnchantAllowed = activeChar.getActiveWeaponInstance().getEnchantLevel() < MaxEnchant;
boolean isNotRoDWeapon = activeChar.getActiveWeaponInstance().getItem().getItemType() != L2WeaponType.ROD;
boolean isInInvetory = Weapon.getLocation() == L2ItemInstance.ItemLocation.INVENTORY;
boolean isParedol = Weapon.getLocation() == L2ItemInstance.ItemLocation.PAPERDOLL;
boolean itsMyWeapon = Weapon.getOwnerId() == activeChar.getObjectId();
int GoldBarID = 3470;
int GoldBarCount = 4;

if(ActiveWeapon && MaxEnchantAllowed && isNotRoDWeapon && isInInvetory && isParedol && itsMyWeapon)
{
activeChar.destroyItem("EnchantGb", GoldBarID, GoldBarCount, null, false);
Weapon.setEnchantLevel(Weapon.getEnchantLevel() + 1);
Weapon.updateDatabase();

activeChar.sendPacket(new EnchantResult(Weapon.getEnchantLevel()));
activeChar.sendPacket(new ItemList(activeChar, false));
activeChar.sendPacket(new InventoryUpdate());
activeChar.sendPacket(new StatusUpdate(activeChar));
activeChar.broadcastUserInfo();

SystemMessage sm = SystemMessage.sendString(GoldBarCount + "gold bars destroyed");
sm = SystemMessage.sendString("You have successfully enchant your " + Weapon.getItemName() + " to " + "+" + Weapon.getEnchantLevel());
activeChar.sendPacket(sm);
}
else
activeChar.sendMessage("Be careful there are some rules you must follow:You must have 4 gold bars, your weapon must be smaller than " + Config.ENCHANT_WEAPON_MAX + ", you must wear your weapon, you can't enchant rod weapons");
}
else
activeChar.sendMessage("Nothing happened try again");

[/src]
Ответ
#3
Ro_0TT Написал:А нафига вам Switch в коде?

:facepalm: ну нашол что у ДП спрашивать, я просто взял команду которая точит веапон подредактировал под лыжу и на примере команды .merchant в своей сборке (L2jserver) сделал заточку за ГБ и всё =))
У меня есть только два чувства, похмелье и изжога.
Ответ
#4
Sisi Написал::facepalm: ну нашол что у ДП спрашивать, я просто взял команду которая точит веапон подредактировал под лыжу и на примере команды .merchant в своей сборке (L2jserver) сделал заточку за ГБ и всё =))
Об это в первом посте писать надо.
Ответ
#5
!activeChar.is-beep-ted() - это на что проверка?Big Grin
Ответ
#6
Ro_0TT Написал:Об это в первом посте писать надо.
У меня даже в подписи написано ) Я не разработчик =))
linliss Написал:!activeChar.is-beep-ted() - это на что проверка?Big Grin
:negodue:

Добавлено через 22 минуты
Mods.properties
Сюда запилил такие строки

#---------------------------------------#
# Custom Recomends System #
#---------------------------------------#
#.buyrec Включен ?
AlowBuyRec = True

#ID итема?
RecItemID = 57

#Количество итемов?
RecPrice = 50000000

#Количество реков?
RecReward = 1

Config.java
Добавил
[src=java]
REC_BUY = Boolean.parseBoolean(Mods.getProperty("AlowBuyRec", "True"));
REC_ITEM_ID = Integer.parseInt(Mods.getProperty("RecItemID", "57"));
REC_PRICE = Integer.parseInt(Mods.getProperty("RecPrice", "50000000"));
REC_REWARD = Integer.parseInt(Mods.getProperty("RecReward", "1"));
[/src]

BuyRec.java
Создал вписал
[src=java]
package net.sf.l2j.gameserver.handler.voicedcommandhandlers;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

public class BuyRec implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS = {"buyrec"};

public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
if (command.equalsIgnoreCase("buyrec"))
{
if(activeChar.getInventory().getItemByItemId(Config.REC_ITEM_ID) != null && activeChar.getInventory().getItemByItemId(Config.REC_ITEM_ID).getCount() >= Config.REC_PRICE)
{
activeChar.getInventory().destroyItemByItemId("Rec", Config.REC_ITEM_ID, Config.REC_PRICE, activeChar, activeChar.getTarget());
activeChar.setRecomHave(activeChar.getRecomHave() + Config.REC_REWARD);
activeChar.sendMessage("You Have Earned "+Config.REC_REWARD+" Recomends.");
activeChar.broadcastUserInfo();

}
else
{
activeChar.sendMessage("You don't have enought items");
return true;
}
}
return false;
}
public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
}
[/src]

VoicedCommandHandler.java
Вписал
[src=java]
registerVoicedCommandHandler(new buyrec());

import net.sf.l2j.gameserver.handler.voicedcommandhandler s.buyrec;
[/src]

GS молчит но команда .buyrec непашет. (Не подскажете где ошибся?)
У меня есть только два чувства, похмелье и изжога.
Ответ
#7
Sisi, советую прочитать для себя Java Code Conventions: http://www.oracle.com/technetwork/java/j...36057.html, особенно раздел 9 - Naming Conventions, потом самому же будет приятно читать свой код. Режет глаз метод с большой буквы, ровно как и метод с тире в его имени Smile
Ответ
#8
ProDev Написал:Sisi, советую прочитать для себя Java Code Conventions: http://www.oracle.com/technetwork/java/j...36057.html, особенно раздел 9 - Naming Conventions, потом самому же будет приятно читать свой код. Режет глаз метод с большой буквы, ровно как и метод с тире в его имени Smile

У каждого свой стиль написания кода Smile Стандарт Java не заставляет писать камел кейс, а рекомендует. Вон, в шарпах, рекомендуют писать, как сделал автор. Так, что тут дело не принципиальное Smile
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#9
ASevenfold Написал:У каждого свой стиль написания кода Smile Стандарт Java не заставляет писать камел кейс, а рекомендует. Вон, в шарпах, рекомендуют писать, как сделал автор. Так, что тут дело не принципиальное Smile

Согласен, это только набор рекомендаций, но по моему сугубо личному мнению в проектах, в разработке которых принимает участие группа девелоперов, придерживаться таких рекомендаций стоит, иначе потом код просто не очень приятно смотреть Wink
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Enchant Scroll sakson 8 2,157 05-20-2013, 10:28 AM
Последний пост: Zubastic
  Enchant Deron 3 1,656 01-11-2012, 07:25 PM
Последний пост: Sp1tfire
  Crystal Scroll of Enchant DrugUnit 2 2,747 12-17-2010, 08:19 PM
Последний пост: Mime
  L2-WT Enchant UFODriverr 2 1,578 11-17-2010, 05:32 PM
Последний пост: UFODriverr
  Enchant UFODriverr 24 6,183 05-15-2010, 11:35 AM
Последний пост: [STIGMATED]
  Hero Weapon - Enchant Дух системы 1 1,614 05-03-2010, 11:08 AM
Последний пост: Дух системы
  Blessed Enchant Project 1 1,928 05-03-2009, 03:13 AM
Последний пост: PROGRAMMATOR
  Enchant Item List DarkLoki 0 2,144 08-11-2008, 01:17 AM
Последний пост: DarkLoki

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


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