Jump to content

[Share] Donation System


Recommended Posts

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

Link to comment
Share on other sites

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);

 

Link to comment
Share on other sites

  • 1 month later...

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

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock