Jump to content

Recommended Posts

Posted

Index: /TrunK/L2JBrasil_CORE/java/config/L2JBrasil-Custom.properties
===================================================================
--- /TrunK/L2JBrasil_CORE/java/config/L2JBrasil-Custom.properties (revision 59)
+++ /TrunK/L2JBrasil_CORE/java/config/L2JBrasil-Custom.properties (revision 65)
@@ -30,2 +30,15 @@
# Castle Circlets can be equipped only by clan members if they own a castle - default true 
CastleCircletsRestriction = True
+
+#--------------------------------------------------------------- 
+# Donator Config                                               - 
+#---------------------------------------------------------------  
+# Donator Color Name & Title Config  
+# Donator Name Color Enabled?. 
+DonatorNameColorEnabled = False 
+# Donator Color Name Selection 
+DonatorColorName = 00FFFF 
+# Donator Title Color Enabled? 
+DonatorTitleColorEnabled = False 
+# Donator Color Name Selection 
+DonatorTitleColor = 00FF00
Index: /TrunK/L2JBrasil_CORE/java/net/sf/l2j/Config.java
===================================================================
--- /TrunK/L2JBrasil_CORE/java/net/sf/l2j/Config.java (revision 59)
+++ /TrunK/L2JBrasil_CORE/java/net/sf/l2j/Config.java (revision 65)
@@ -891,4 +891,8 @@
     public static boolean   CASTLE_CROWN; 
     public static boolean   CASTLE_CIRCLETS; 
+    public static boolean   DONATOR_NAME_COLOR_ENABLED; 
+    public static int               DONATOR_NAME_COLOR; 
+    public static boolean   DONATOR_TITLE_COLOR_ENABLED; 
+    public static int               DONATOR_TITLE_COLOR; 
     /** L2JBRASIL Custom - End */   
     
@@ -1983,5 +1987,10 @@
                is.close(); 
                 
-                CASTLE_SHIELD = Boolean.parseBoolean(L2JBrasilCustom.getProperty("CastleShieldRestriction", "true"));  
+               DONATOR_NAME_COLOR_ENABLED = Boolean.parseBoolean(L2JBrasilCustom.getProperty("DonatorNameColorEnabled", "False")); 
+               DONATOR_NAME_COLOR  = Integer.decode("0x" + L2JBrasilCustom.getProperty("DonatorColorName", "00FFFF")); 
+               DONATOR_TITLE_COLOR_ENABLED = Boolean.parseBoolean(L2JBrasilCustom.getProperty("DonatorTitleColorEnabled", "False")); 
+               DONATOR_TITLE_COLOR = Integer.decode("0x" + L2JBrasilCustom.getProperty("DonatorTitleColor", "00FF00")); 
+
+               CASTLE_SHIELD = Boolean.parseBoolean(L2JBrasilCustom.getProperty("CastleShieldRestriction", "true"));  
                 CLANHALL_SHIELD = Boolean.parseBoolean(L2JBrasilCustom.getProperty("ClanHallShieldRestriction", "true"));  
                 APELLA_ARMORS = Boolean.parseBoolean(L2JBrasilCustom.getProperty("ApellaArmorsRestriction", "true"));  
@@ -1989,5 +1998,5 @@
                 CASTLE_CROWN = Boolean.parseBoolean(L2JBrasilCustom.getProperty("CastleLordsCrownRestriction", "true"));  
                 CASTLE_CIRCLETS = Boolean.parseBoolean(L2JBrasilCustom.getProperty("CastleCircletsRestriction", "true"));                 
-            } 
+           } 
             catch (Exception e) 
             { 
Index: /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java
===================================================================
--- /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 56)
+++ /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 65)
@@ -153,5 +153,13 @@
             activeChar.setProtection(true);

-               activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
+        if (activeChar.isdonator()) 
+                    { 
+                             activeChar.getAppearance().setNameColor(Config.DONATOR_NAME_COLOR); 
+                         activeChar.getAppearance().setTitleColor(Config.DONATOR_TITLE_COLOR); 
+                          activeChar.sendMessage("Welcome "+activeChar.getName()+" to our Server!"); 
+                           activeChar.sendMessage("Enjoy your Stay Mate!"); 
+                     } 
+        
+        activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());

                if (L2Event.active && L2Event.connectionLossData.containsKey(activeChar.getName()) && L2Event.isOnEvent(activeChar))
Index: /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 57)
+++ /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 65)
@@ -216,6 +216,6 @@
        private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE char_obj_id=? AND class_index=?";

-    private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=? WHERE obj_id=?";
-    private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level FROM characters WHERE obj_id=?";
+    private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,donator=?  WHERE obj_id=?";
+    private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,donator FROM characters WHERE obj_id=?";
     private static final String RESTORE_CHAR_SUBCLASSES = "SELECT class_id,exp,sp,level,class_index FROM character_subclasses WHERE char_obj_id=? ORDER BY class_index ASC";
     private static final String ADD_CHAR_SUBCLASS = "INSERT INTO character_subclasses (char_obj_id,class_id,exp,sp,level,class_index) VALUES (?,?,?,?,?,?)";
@@ -453,5 +453,6 @@
        private boolean _noble = false;
        private boolean _hero = false;
-
+       private boolean _donator = false; 
+       
        /** The L2FolkInstance corresponding to the last Folk wich one the player talked. */
        private L2FolkInstance _lastFolkNpc = null;
@@ -5480,5 +5481,5 @@
                                                         "exp,sp,karma,pvpkills,pkkills,clanid,maxload,race,classid,deletetime," +
                                                         "cancraft,title,accesslevel,online,isin7sdungeon,clan_privs,wantspeace," +
-                                                        "base_class,newbie,nobless,power_grade,last_recom_date) " +
+                                                        "base_class,newbie,nobless,power_grade,last_recom_date,donator) " +
                        "values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
                        statement.setString(1, _accountName);
@@ -5539,4 +5540,5 @@
                        statement.setLong(56, 0);
                        statement.setLong(57,System.currentTimeMillis());
+            statement.setInt(58, isdonator() ? 1 :0); 
                        statement.executeUpdate();
                        statement.close();
@@ -5612,5 +5614,6 @@
                                player.setNewbie(rset.getInt("newbie")==1);
                                player.setNoble(rset.getInt("nobless")==1);
-
+                               player.setdonator(rset.getInt("donator")==1); 
+                               
                                player.setClanJoinExpiryTime(rset.getLong("clan_join_expiry_time"));
                                if (player.getClanJoinExpiryTime() < System.currentTimeMillis())
@@ -6076,5 +6079,6 @@
                        statement.setString(55, getName());
                        statement.setLong(56, getDeathPenaltyBuffLevel());
-            statement.setInt(57, getObjectId());
+            statement.setInt(57, isdonator() ? 1 : 0); 
+            statement.setInt(58, getObjectId()); 

                        statement.execute();
@@ -6207,4 +6211,14 @@
     {
         return _isIn7sDungeon;
+    } 
+     
+    public boolean isdonator() 
+    { 
+        return _donator; 
+    } 
+     
+    public void setdonator(boolean donator) 
+    { 
+        _donator = donator; 
     }

Index: /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminDonator.java
===================================================================
--- /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminDonator.java (revision 65)
+++ /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminDonator.java (revision 65)
@@ -0,0 +1,165 @@
+/*
+ * 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 2, 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+package net.sf.l2j.gameserver.handler.admincommandhandlers;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.L2DatabaseFactory;
+import net.sf.l2j.gameserver.Announcements;
+import net.sf.l2j.gameserver.GmListTable;
+import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
+import net.sf.l2j.gameserver.model.L2Object;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.network.SystemMessageId;
+import net.sf.l2j.gameserver.serverpackets.SystemMessage;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+/**
+ *
+ * Author Rayan
+ *
+ */
+public class AdminDonator implements IAdminCommandHandler
+{
+       private static String[] _adminCommands =
+       {
+               "admin_setdonator",};
+       private final static Log _log = LogFactory.getLog(AdminDonator.class.getName());
+       private static final int REQUIRED_LEVEL = Config.GM_MENU;
+
+       public boolean useAdminCommand(String command, L2PcInstance activeChar)
+       {
+               if (!Config.ALT_PRIVILEGES_ADMIN)
+               {
+                       if (!(checkLevel(activeChar.getAccessLevel()) && activeChar.isGM()))
+                       {
+                               return false;
+                       }
+               }
+               if (command.startsWith("admin_setdonator"))
+               {
+                       L2Object target = activeChar.getTarget();
+                       L2PcInstance player = null;
+                       SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2);
+                       if (target instanceof L2PcInstance)
+                       {
+                               player = (L2PcInstance)target;
+                       } else
+                       {
+                               player = activeChar;
+                       }
+
+                       if (player.isdonator())
+                       {
+                               player.setdonator(false);
+                               sm.addString("You are no longer a server donator.");
+                               GmListTable.broadcastMessageToGMs("GM "+activeChar.getName()+" removed donator stat of player"+ target.getName());
+                               Connection connection = null;
+                               try
+                               {
+                                       connection = L2DatabaseFactory.getInstance().getConnection();
+
+                                       PreparedStatement statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name=?");
+                                       statement.setString(1,target.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 false;}
+
+                                       statement = connection.prepareStatement("UPDATE characters SET donator=0 WHERE obj_id=?");
+                                       statement.setInt(1, objId);
+                                       statement.execute();
+                                       statement.close();
+                                       connection.close();
+                               }
+                               catch (Exception e)
+                               {
+                                       _log.warn("could not set donator stats of char:", e);
+                               }
+                               finally
+                               {
+                                       try { connection.close(); } catch (Exception e) {}
+                               }
+                       }
+                       else
+                       {
+                               player.setdonator(true);
+                               sm.addString("You are now a server donator, congratulations!");
+                               GmListTable.broadcastMessageToGMs("GM "+activeChar.getName()+" has given donator stat for player "+target.getName()+".");
+                               Connection connection = null;
+                               try
+                               {
+                                       connection = L2DatabaseFactory.getInstance().getConnection();
+
+                                       PreparedStatement statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name=?");
+                                       statement.setString(1,target.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 false;}
+
+                                       statement = connection.prepareStatement("UPDATE characters SET donator=1 WHERE obj_id=?");
+                                       statement.setInt(1, objId);
+                                       statement.execute();
+                                       statement.close();
+                                       connection.close();
+                               }
+                               catch (Exception e)
+                               {
+                                       _log.warn("could not set donator stats of char:", e);
+                               }
+                               finally
+                               {
+                                       try { connection.close(); } catch (Exception e) {}
+                               }
+
+                       }
+                       player.sendPacket(sm);
+                       player.broadcastUserInfo();
+                       if(player.isdonator() == true)
+                       {
+                               Announcements.getInstance().announceToAll(player.getName() + " Has Become a Server Donator!");
+                       }
+               }
+               return false;
+       }
+   public String[] getAdminCommandList() {
+               return _adminCommands;
+       }
+       private boolean checkLevel(int level)
+       {
+               return (level >= REQUIRED_LEVEL);
+       }
+}
Index: /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/GameServer.java
===================================================================
--- /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/GameServer.java (revision 56)
+++ /TrunK/L2JBrasil_CORE/java/net/sf/l2j/gameserver/GameServer.java (revision 65)
@@ -77,4 +77,5 @@
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminCursedWeapons;
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminDelete;
+import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminDonator; 
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminDoorControl;
import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminEditChar;
@@ -570,4 +571,5 @@
         _adminCommandHandler.registerAdminCommandHandler(new AdminTvTEvent());
         //_adminCommandHandler.registerAdminCommandHandler(new AdminRadar());
+        _adminCommandHandler.registerAdminCommandHandler(new AdminDonator()); 
         _log.config("AdminCommandHandler: Loaded " + _adminCommandHandler.size() + " handlers.");

Credits: Guma

Source: L2Jbrasil svn

Posted

That's too simple.

Not to mention that even if you don't enable the use of the colors system, iy will be enabled, since there is no check when the player gets the appearence.

 

Here: if (activeChar.isdonator())

+                    {

+                            activeChar.getAppearance().setNameColor(Config.DONATOR_NAME_COLOR);

+                        activeChar.getAppearance().setTitleColor(Config.DONATOR_TITLE_COLOR);

 

  • 1 month later...
Posted

Well...can someone explain what ecxactly it is?

 

A kind of failed donations system, with a few configurations like "privs" for donator characters..

Kinda useless for me in this way of build, but anyway..

Posted

I didn't read the whole code but what I figured out is that it gives custom color to name and title of the donator.

It will also make an announcement once a donator will go in-game.

Well,it's not something unique since it has been coded many times in a different way but thanks anyway!

  • 1 year later...
  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • TG Support: https://t.me/buyingproxysup | Channel: https://t.me/buyingproxycom Discord support: #buyingproxy | Server: Join the BuyingProxy Discord Server! Create your free account here  
    • I've purchased the Samurai interface. Everything went smoothly, and the interface is excellent. Highly recommended!
    • For quick reference, I’ve been using the D12 dice roller when testing dice mechanics—clean design and instant results help a lot. It might give you a solid visual template to work from as you build your own games.
    • 🪙 GoldRush — High Five x20 🪙   A fresh High Five server focused on active progression, fair competition, and a healthy player-driven economy.   GoldRush is built for players who want a fresh spin on our beloved game that is connected to today's world via Web3 marketplace.    🏅 Gold Bar & Marketplace • Gold Bars are part of the server's custom economy — they can be used in Marketplace or Cosmetics shop. • Tokens are optional and used only for server Marketplace features.   ⚙️ Server Rates • EXP: 20x • SP: 20x • Adena: 10x • Normal Drop Chance: 8x • Spoil Chance: 12x • Raid Drop Chance: 3x • Quest Item Drop Amount: 5x • Quest EXP/SP Reward: 10x • Quest Adena Reward: 5x   ✨ Enchant Rates • Max Enchant: Weapons +16 / Armors +12 • +0 to +3 armor / weapon = 100% safe • +0 to +4 full body armor = 100% safe • +4 to +6 = 66% • +7 to +9 = 60% • +10 to +12 = 54% • +13 to +14 = 48% • +15 to +16 = 42%   🛒 Alt+B Services GoldRush includes useful Alt+B services: • GM Shop up to Dynasty • Buffer 1h • Teleports • Drop Search • Rankings   🎒 Auto-Loot • Normal mob drops: auto-loot • Adena: auto-loot • Raid drops: stay on the ground • Herbs: stay on the ground   🧙 Class Progression • 1st and 2nd professions are free with shadow weapon reward. • 3rd profession: 5kk • Auto Learn Skills • Subclass - No Quest • Noblesse - Full Quest     ⚔️ Olympiad • Hero period: 1 week • Olympiad time: 18:00–00:00 server time • Match duration: 5 minutes • Max enchant in Olympiad: +6   🏰 Sieges Castle sieges take place on Sundays at 16:00 and 20:00 GMT+3. The first siege will happen 2 weeks after launch.   🐉 Grand Boss Respawn Queen Ant: 24h + 2h random Core: 30h + 2h random Orfen: 48h + 2h random Baium: 120h + 3h random Antharas: 120h + 24h random Valakas: 120h + 24h random Beleth: 120h + 24h random   ⚔️ Fair Play Bots are strictly forbidden and will result in a ban without warning. Dualbox is limited to 1 box. GoldRush is built around a healthy player-to-player economy. Website : https://www.goldrushpvp.xyz/ Discord : https://discord.com/invite/v3zRZVV6ka Guide of how to make an account on our web3 server!  
    • Patch notes of update v1.0 is done regarding some feedbacks. Added Special Buffs category to the buffer. Queen Cat, Seraphim and Dwarf equipment buffs are now available. Special buffs last 1 hour and can be saved in schemes. Players can now Shift+Click monsters to check drops and spoil directly in-game.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..