bauwbas Posted July 10, 2011 Posted July 10, 2011 Good evening everybody :) Long time ago, i had my own forum with l2j script, but i closed due lack of time, so i want to share few scripts. This little script allow to use simple html color codes to set players nick's and title's in database. In short if player make rrhis name/title color will stay. This script I used to my server, i created special npc who sell color and colors remained permanently. Index: L2PcInstance.java =================================================================== --- L2PcInstance.java (revision 1116) +++ L2PcInstance.java (working copy) @@ -220,8 +220,8 @@ private static final String ADD_SKILL_SAVE = "INSERT INTO character_skills_save (char_obj_id,skill_id,skill_level,effect_count,effect_cur_time,reuse_delay,restore_type,class_index,buff_index) VALUES (?,?,?,?,?,?,?,?,?)"; private static final String RESTORE_SKILL_SAVE = "SELECT skill_id,skill_level,effect_count,effect_cur_time, reuse_delay FROM character_skills_save WHERE char_obj_id=? AND class_index=? AND restore_type=? ORDER BY buff_index ASC"; 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=?,event_points=?,coupon=?,donator=?,death_penalty_level=?,koof=?,noob=? 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,event_points,coupon,donator,hero,death_penalty_level,koof,noob 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=?,event_points=?,coupon=?,donator=?,death_penalty_level=?,koof=?,noob=?,name_color=?,title_color=? 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,event_points,coupon,donator,hero,death_penalty_level,koof,noob,name_color,title_color 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 (?,?,?,?,?,?)"; private static final String UPDATE_CHAR_SUBCLASS = "UPDATE character_subclasses SET exp=?,sp=?,level=?,class_id=? WHERE char_obj_id=? AND class_index =?"; @@ -251,6 +251,7 @@ public static final int STORE_PRIVATE_BUY = 3; public static final int STORE_PRIVATE_MANUFACTURE = 5; public static final int STORE_PRIVATE_PACKAGE_SELL = 8; + public boolean OnSr = false; /** * The table containing all minimum level needed for each Expertise (None, D, C, B, A, S) */ @@ -5729,7 +5730,7 @@ con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement; statement = con.prepareStatement("INSERT INTO characters " + "(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," + "movement_multiplier,attack_speed_multiplier,colRad,colHeight," - + "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,coupon) " + "values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); + + "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,coupon,name_color,title_color) " + "values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); statement.setString(1, _accountName); statement.setInt(2, getObjectId()); statement.setString(3, getName()); @@ -5788,6 +5789,8 @@ statement.setLong(56, 0); statement.setLong(57, System.currentTimeMillis()); statement.setInt(58, 0); + statement.setString(59, StringToHex(Integer.toHexString(getAppearance().getNameColor()).toUpperCase())); + statement.setString(60, StringToHex(Integer.toHexString(getAppearance().getTitleColor()).toUpperCase())); statement.executeUpdate(); statement.close(); } @@ -5936,6 +5939,10 @@ player.setJailTimer(rset.getLong("jail_timer")); else player.setJailTimer(0); + + player.getAppearance().setNameColor(Integer.decode((new StringBuilder()).append("0x").append(rset.getString("name_color")).toString()).intValue()); + player.getAppearance().setTitleColor(Integer.decode((new StringBuilder()).append("0x").append(rset.getString("title_color")).toString()).intValue()); + CursedWeaponsManager.getInstance().checkPlayer(player); player.setAllianceWithVarkaKetra(rset.getInt("varka_ketra_ally")); player.setCoupon(rset.getInt("coupon")); @@ -6299,7 +6306,9 @@ statement.setLong(59, getDeathPenaltyBuffLevel()); statement.setInt(60, isKoof() ? 1 : 0); statement.setInt(61, isNoob() ? 1 : 0); - statement.setInt(62, getObjectId()); + statement.setString(62, StringToHex(Integer.toHexString(getAppearance().getNameColor()).toUpperCase())); + statement.setString(63, StringToHex(Integer.toHexString(getAppearance().getTitleColor()).toUpperCase())); + statement.setInt(64, getObjectId()); statement.execute(); statement.close(); } @@ -11391,4 +11400,31 @@ public void updateFOSTitleFlag(){ FortressSiege.setTitleSiegeFlags(this); } -} + + private String StringToHex(String color) + { + switch(color.length()) + { + case 1: + color = (new StringBuilder()).append("00000").append(color).toString(); + break; + + case 2: + color = (new StringBuilder()).append("0000").append(color).toString(); + break; + + case 3: + color = (new StringBuilder()).append("000").append(color).toString(); + break; + + case 4: + color = (new StringBuilder()).append("00").append(color).toString(); + break; + + case 5: + color = (new StringBuilder()).append("0").append(color).toString(); + break; + } + return color; + } +} \ No newline at end of file And in your database make these two query's: ALTER TABLE characters ADD name_color varchar(8) DEFAULT ''; ALTER TABLE characters ADD title_color varchar(8) DEFAULT ''; Quote
CrazyDeagle Posted July 10, 2011 Posted July 10, 2011 Thanks you for your sharing ^^ i dont test but i think all work. Quote
iStab Posted July 10, 2011 Posted July 10, 2011 Thanks you for your sharing ^^ i dont test but i think all work. Because you can't / you doesn't know, get lost. You don't know to add / modify something and that mean you are another spammer. Quote
bauwbas Posted July 11, 2011 Author Posted July 11, 2011 Thanks you for your sharing ^^ i dont test but i think all work. Working, and tested on interlude packs. I think l2jserver have something like this in gracia, ep, hi5 Quote
v1hack Posted July 12, 2011 Posted July 12, 2011 Because you can't / you doesn't know, get lost. You don't know to add / modify something and that mean you are another spammer. agree he is bot.. also this crap has every pack il aswell Quote
bauwbas Posted July 13, 2011 Author Posted July 13, 2011 No, only on interlude, but it must work too. There is nothing special what interlude have and hi5 not. Quote
shawshaw Posted August 24, 2011 Posted August 24, 2011 hey bro.. can you share the code for L2J-Freya? if you have some tho.. but it would be so sweet if you can make 1 for l2j-freya... i'm kinda newbie for this things, that's why i need a professional guide.. but hopefully ,wil learn soon... thanks in advance... gob job too.. keep it up.. Quote
shawshaw Posted October 28, 2011 Posted October 28, 2011 i have error :( look it did you added name_color in your character table? if not, then add it.. Quote
Malamandre Posted October 28, 2011 Posted October 28, 2011 Nice share bro...Thanks for sharing with us! Quote
bauwbas Posted December 13, 2011 Author Posted December 13, 2011 You took it from L2JFrozen I guess. ^.^ Give one example what frozen had created? They event don't how to create db installer, what talk about script.. Btw tooked everything from Scoria ))) Quote
Dollar Posted January 8, 2012 Posted January 8, 2012 @@ -5729,7 +5730,7 @@ + statement.setString(59, StringToHex(Integer.toHexString(getAppearance().getNameColor()).toUpperCase())); + statement.setString(60, StringToHex(Integer.toHexString(getAppearance().getTitleColor()).toUpperCase())); @@ -6299,7 +6306,9 @@ + statement.setString(62, StringToHex(Integer.toHexString(getAppearance().getNameColor()).toUpperCase())); + statement.setString(63, StringToHex(Integer.toHexString(getAppearance().getTitleColor()).toUpperCase())); no docking ??? Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.