Jump to content
  • 0

Idk How...help Me On That Please


Question

Posted (edited)

  1. 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
  2.  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

  3. 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";
    	
    	
    	    }
    	
    	
    	 
    	
    	
    	}
Edited by Kelrzher

Recommended Posts

  • 0
Posted (edited)

Not that much but still... it was useful for me to know it. :lol:

obviously its not that much ... but did u expect to spend a whole MINUTE to get the photo and edit it?  :dat:

Edited by bravetobe
  • 0
Posted (edited)
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (revision 5)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (revision )
@@ -114,12 +114,7 @@
 import net.sf.l2j.gameserver.model.actor.stat.PcStat;
 import net.sf.l2j.gameserver.model.actor.status.PcStatus;
 import net.sf.l2j.gameserver.model.actor.template.PcTemplate;
-import net.sf.l2j.gameserver.model.base.ClassId;
-import net.sf.l2j.gameserver.model.base.ClassLevel;
-import net.sf.l2j.gameserver.model.base.Experience;
-import net.sf.l2j.gameserver.model.base.PlayerClass;
-import net.sf.l2j.gameserver.model.base.Race;
-import net.sf.l2j.gameserver.model.base.SubClass;
+import net.sf.l2j.gameserver.model.base.*;
 import net.sf.l2j.gameserver.model.entity.Castle;
 import net.sf.l2j.gameserver.model.entity.Duel.DuelState;
 import net.sf.l2j.gameserver.model.entity.Hero;
@@ -597,7 +592,9 @@
     private int _coupleId = 0;
     private boolean _marryrequest = false;
     private int _requesterId = 0;
-    
+
+    private Faction faction;
+    
     private final SummonRequest _summonRequest = new SummonRequest();
     
     private final GatesRequest _gatesRequest = new GatesRequest();
@@ -10704,5 +10701,17 @@
                 activeChar.sendPacket(new RecipeShopMsg(this));
                 break;
         }
+    }
+
+    public Faction getFaction() {
+        return this.faction;
+    }
+
+    public void setFaction(Faction faction) {
+        this.faction = faction;
+    }
+
+    public boolean isGood() {
+        return this.faction == Faction.GOOD;
     }
 }
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java    (revision 5)
+++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java    (revision )
@@ -31,6 +31,7 @@
 import net.sf.l2j.gameserver.model.L2Clan.SubPledge;
 import net.sf.l2j.gameserver.model.L2World;
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.base.Faction;
 import net.sf.l2j.gameserver.model.base.Race;
 import net.sf.l2j.gameserver.model.entity.ClanHall;
 import net.sf.l2j.gameserver.model.entity.Couple;
@@ -95,6 +96,12 @@
                 GmListTable.getInstance().addGm(activeChar, false);
             else
                 GmListTable.getInstance().addGm(activeChar, true);
+        } else {
+            if (activeChar.getRace() == Race.Human || activeChar.getRace() == Race.Elf || (activeChar.getRace() == Race.Dwarf && activeChar.getAppearance().getSex())) {
+                activeChar.setFaction(Faction.GOOD);
+            } else {
+                activeChar.setFaction(Faction.EVIL);
+            }
         }
         
         // Set dead status if applies
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java    (revision 5)
+++ java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java    (revision )
@@ -273,8 +273,12 @@
             writeD(0);
             writeD(0);
         }
-        
+
+        if (_activeChar.isGM()) {
-        writeD(_activeChar.getAppearance().getNameColor());
+            writeD(_activeChar.getAppearance().getNameColor());
+        } else {
+            writeD(_activeChar.isGood() ? 0x00FF00 : 0x0000FF);
+        }
         
         // new c5
         writeC(_activeChar.isRunning() ? 0x01 : 0x00); // changes the Speed display on Status Window
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/model/base/Faction.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- java/net/sf/l2j/gameserver/model/base/Faction.java    (revision )
+++ java/net/sf/l2j/gameserver/model/base/Faction.java    (revision )
@@ -0,0 +1,6 @@
+package net.sf.l2j.gameserver.model.base;
+
+public enum Faction {
+    GOOD,
+    EVIL
+}
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java    (revision 5)
+++ java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java    (revision )
@@ -218,8 +218,12 @@
             writeD(0);
             writeD(0);
         }
-        
+
+        if (_activeChar.isGM()) {
-        writeD(_activeChar.getAppearance().getNameColor());
+            writeD(_activeChar.getAppearance().getNameColor());
+        } else {
+            writeD(_activeChar.isGood() ? 0x00FF00 : 0x0000FF);
+        }
         
         writeD(0x00); // isRunning() as in UserInfo?
         
\ No newline at end of file

There is some topic shit... :lol:

I had to download both l2 and acis to do this... ;D

 

Note that the edited packets are just an example of how to use this... ^^

Edited by Tessa
  • 0
Posted
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (revision 5)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java    (revision )
@@ -114,12 +114,7 @@
 import net.sf.l2j.gameserver.model.actor.stat.PcStat;
 import net.sf.l2j.gameserver.model.actor.status.PcStatus;
 import net.sf.l2j.gameserver.model.actor.template.PcTemplate;
-import net.sf.l2j.gameserver.model.base.ClassId;
-import net.sf.l2j.gameserver.model.base.ClassLevel;
-import net.sf.l2j.gameserver.model.base.Experience;
-import net.sf.l2j.gameserver.model.base.PlayerClass;
-import net.sf.l2j.gameserver.model.base.Race;
-import net.sf.l2j.gameserver.model.base.SubClass;
+import net.sf.l2j.gameserver.model.base.*;
 import net.sf.l2j.gameserver.model.entity.Castle;
 import net.sf.l2j.gameserver.model.entity.Duel.DuelState;
 import net.sf.l2j.gameserver.model.entity.Hero;
@@ -597,7 +592,9 @@
     private int _coupleId = 0;
     private boolean _marryrequest = false;
     private int _requesterId = 0;
-    
+
+    private Faction faction;
+    
     private final SummonRequest _summonRequest = new SummonRequest();
     
     private final GatesRequest _gatesRequest = new GatesRequest();
@@ -10704,5 +10701,17 @@
                 activeChar.sendPacket(new RecipeShopMsg(this));
                 break;
         }
+    }
+
+    public Faction getFaction() {
+        return this.faction;
+    }
+
+    public void setFaction(Faction faction) {
+        this.faction = faction;
+    }
+
+    public boolean isGood() {
+        return this.faction == Faction.GOOD;
     }
 }
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java    (revision 5)
+++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java    (revision )
@@ -31,6 +31,7 @@
 import net.sf.l2j.gameserver.model.L2Clan.SubPledge;
 import net.sf.l2j.gameserver.model.L2World;
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.base.Faction;
 import net.sf.l2j.gameserver.model.base.Race;
 import net.sf.l2j.gameserver.model.entity.ClanHall;
 import net.sf.l2j.gameserver.model.entity.Couple;
@@ -95,6 +96,12 @@
                 GmListTable.getInstance().addGm(activeChar, false);
             else
                 GmListTable.getInstance().addGm(activeChar, true);
+        } else {
+            if (activeChar.getRace() == Race.Human || activeChar.getRace() == Race.Elf || (activeChar.getRace() == Race.Dwarf && activeChar.getAppearance().getSex())) {
+                activeChar.setFaction(Faction.GOOD);
+            } else {
+                activeChar.setFaction(Faction.EVIL);
+            }
         }
         
         // Set dead status if applies
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java    (revision 5)
+++ java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java    (revision )
@@ -273,8 +273,12 @@
             writeD(0);
             writeD(0);
         }
-        
+
+        if (_activeChar.isGM()) {
-        writeD(_activeChar.getAppearance().getNameColor());
+            writeD(_activeChar.getAppearance().getNameColor());
+        } else {
+            writeD(_activeChar.isGood() ? 0x00FF00 : 0x0000FF);
+        }
         
         // new c5
         writeC(_activeChar.isRunning() ? 0x01 : 0x00); // changes the Speed display on Status Window
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/model/base/Faction.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- java/net/sf/l2j/gameserver/model/base/Faction.java    (revision )
+++ java/net/sf/l2j/gameserver/model/base/Faction.java    (revision )
@@ -0,0 +1,6 @@
+package net.sf.l2j.gameserver.model.base;
+
+public enum Faction {
+    GOOD,
+    EVIL
+}
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java    (revision 5)
+++ java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java    (revision )
@@ -218,8 +218,12 @@
             writeD(0);
             writeD(0);
         }
-        
+
+        if (_activeChar.isGM()) {
-        writeD(_activeChar.getAppearance().getNameColor());
+            writeD(_activeChar.getAppearance().getNameColor());
+        } else {
+            writeD(_activeChar.isGood() ? 0x00FF00 : 0x0000FF);
+        }
         
         writeD(0x00); // isRunning() as in UserInfo?
         
\ No newline at end of file

There is some topic shit... :lol:

I had to download both l2 and acis to do this... ;D

 

Note that the edited packets are just an example of how to use this... ^^

 

will test and report

  • 0
Posted

Inline comparsion is faster than if statement?

The comparison return a boolean as your method, you are adding an additional if to check everytime the method is called while the comparison hold the result already.

  • 0
Posted

The comparison return a boolean as your method, you are adding an additional if to check everytime the method is called while the comparison hold the result already.

I understand, and I fixed my mistake... thanks for the hint. :lol:

  • 0
Posted

I understand, and I fixed my mistake... thanks for the hint. :lol:

its not mistake wtf ... 

let the nerds doing that with this specific way.we oldschool newbies.

Guest
This topic is now closed to further replies.

×
×
  • Create New...