I want to put if Human , Elf , Dwarf female setGood(true) and if Orc , delf, male dwarf setEvil(true) i made the code but doesnt work correctly , thinking to delete setevil and change the setGood retail code here:http://pastebin.com/0wdWBjT5
generally i deleted the setevil and changed the setgood to setdestiny i want just to press the button and check if race suits then go to the faction.. Goods : human , elf , female dwarf
evil : orc, d.elf , male dwarf
package net.sf.l2j;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.StringTokenizer;
import java.util.logging.Logger;
import net.sf.l2j.commons.random.Rnd;
import net.sf.l2j.gameserver.ai.CtrlIntention;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
import net.sf.l2j.gameserver.network.serverpackets.SocialAction;
import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation;
public class L2FactionInstance extends L2NpcInstance
{
public L2FactionInstance(int objectId, NpcTemplate template)
{
super(objectId, template);
}
private final static Logger _log = Logger.getLogger(L2FactionInstance.class.getName());
@Override
public void onBypassFeedback(L2PcInstance player, String command)
{
player.sendPacket(ActionFailed.STATIC_PACKET);
StringTokenizer st = new StringTokenizer(command, " ");
String actualCommand = st.nextToken();
@SuppressWarnings("unused")
String val = "";
if (st.countTokens() >= 1)
{
val = st.nextToken();
}
else if (actualCommand.equalsIgnoreCase("setdestiny"))
{
setTarget(player);
if (player.isGood())
{
player.sendMessage("You already are in " + Config.FACTION_NAME_TEAM_GOOD + " faction ");
player.sendPacket(new ActionFailed());
}
if(player.getRace blabla bla
{
player.setGood(true);
Connection connection = null;
try
{
connection = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = connection.prepareStatement("SELECT obj_Id FROM characters where char_name=?");
statement.setString(1, player.getName());
ResultSet rset = statement.executeQuery();
int objId = 0;
if (rset.next())
{
objId = rset.getInt(1);
}
rset.close();
statement.close();
if (objId == 0)
{
connection.close();
return;
}
statement = connection.prepareStatement("UPDATE characters SET good=1 WHERE obj_Id=?");
statement.setInt(1, objId);
statement.execute();
statement.close();
connection.close();
}
catch (Exception e)
{
_log.info("could not set good status of char:");
}
finally
{
try
{
connection.close();
}
catch (Exception e)
{
}
}
if (player.isGood())
{
player.broadcastUserInfo();
player.sendMessage("You Are fighiting Now for" + Config.FACTION_NAME_TEAM_GOOD + " Faction ");
player.getAppearance().setNameColor(Config.FACTION_COLOR_NAME_GOOD);
player.teleToLocation(Config.GOODX, Config.GOODY, Config.GOODZ);
player.setTitle(Config.FACTION_NAME_TEAM_GOOD);
}
}
}
}
}
else if(player.getRace() == Race.Orc() bla bla bla
{
player.setEvil(true);
Connection connection = null;
try
{
connection = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = connection.prepareStatement("SELECT obj_Id FROM characters where char_name=?");
statement.setString(1, player.getName());
ResultSet rset = statement.executeQuery();
int objId = 0;
if (rset.next())
{
objId = rset.getInt(1);
}
rset.close();
statement.close();
if (objId == 0)
{
connection.close();
return;
}
statement = connection.prepareStatement("UPDATE characters SET evil=1 WHERE obj_Id=?");
statement.setInt(1, objId);
statement.execute();
statement.close();
connection.close();
}
catch (Exception e)
{
_log.info("could not set evil status of char:");
}
finally
{
try
{
connection.close();
}
catch (Exception e)
{
}
}
if (player.isEvil())
{
player.broadcastUserInfo();
player.sendMessage("You Are fighiting Now for " + Config.FACTION_NAME_TEAM_EVIL + " Faction ");
player.getAppearance().setNameColor(Config.FACTION_COLOR_NAME_EVIL);
player.teleToLocation(Config.EVILX, Config.EVILY, Config.EVILZ);
player.setTitle(Config.FACTION_NAME_TEAM_EVIL);
}
}
}
else if (actualCommand.equalsIgnoreCase("setnobless"))
{
L2PcInstance activeChar = player;
if (activeChar.isNoble())
activeChar.sendMessage("You Are Already A Noblesse!.");
else
{
activeChar.setNoble(true, true);
activeChar.sendMessage("You Are Now a Noble,You Are Granted With Noblesse Status , And Noblesse Skills.");
activeChar.broadcastUserInfo();
activeChar.getInventory().addItem("Tiara", 7694, 1, activeChar, null);
}
}
else
{
super.onBypassFeedback(player, command);
}
}
@Override
public String getHtmlPath(int npcId, int val)
{
return "data/html/mods/faction/main.htm";
}
}
Hello.
This code works well. It removes buff with double click, but If you preffer remove buff with ALT + mouse click, place this code in AbnormalStatusWnd.uc
function OnLButtonDown(WindowHandle a_WindowHandle, int X, int Y)
{
local Rect windowBounds;
local int targetRow;
local int targetCol;
local StatusIconInfo info;
local SkillInfo skillInfo;
if (IsKeyDown(IK_alt) == false)
return;
// Find window position
windowBounds = Me.GetRect();
// Process clicks outside of window frame only
if (X > (windowBounds.nX + NSTATUSICON_FRAMESIZE))
{
// Calc row and col of targeted icon
targetRow = (Y - windowBounds.nY) / NSTATUSICON_SIZE;
targetCol = (X - windowBounds.nX - NSTATUSICON_FRAMESIZE) / NSTATUSICON_SIZE;
// Store status info of targeted icon
StatusIcon.GetItem(targetRow, targetCol, info);
// Store actual skill info and make sure it is exists
if (GetSkillInfo(info.ClassID, info.Level, skillInfo))
{
// Request server to stop skill effect
// Usage: _dispel:<int:skill_id>,<int :skill_level>
// Example: _dispel:313,8
RequestBypassToServer ( "_dispel:" $ string ( skillInfo. SkillID ) $ "," $ string ( skillInfo. SkillLevel ) ) ) ;
}
}
}
Question
Kelrzher
evil : orc, d.elf , male dwarf
58 answers to this question
Recommended Posts