Jump to content

Rizlaaa

Members
  • Posts

    362
  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by Rizlaaa

  1. did your 'friend' coded anything?
  2. αν θελεις να συνδεεται στο Internet ξεχασε το απο μενα. Και να μπορουσα δεν θα σου το εδινα. Επισης για paysafe θα χρειαστει extra λεφτα γιατι οπως ξερεις η paysafe εχει captcha και θα χρειαστει να αγορασεις captcha killer για να μπορεσεις να εχεις access. Η γινεται και με assembla.
  3. Ενοειται πως ειπε μ.... το παιδι , αλλα πιστεψε με ο katara αυτη τι στιγμη ξερει πραγματικα παρα πολλα πραγματα. Οσο για το project δεν εχω να πω τιποτα , οποιος θελει το κατεβαζει και τεσταρει. Προσωπικα δε θα στηριζομουν σε ενα τετοιο pack
  4. isn't it a faster way? but i don't know i just noticed it :P maybe its better but maybe and worse who knows .
  5. ### Eclipse Workspace Patch 1.0 #P Chr.6GMS Index: java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java (revision 5263) +++ java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java (working copy) @@ -38,6 +38,7 @@ public final class RequestEnchantItem extends L2GameClientPacket { + private int safe = 3; protected static final Logger _log = Logger.getLogger(Inventory.class.getName()); private static final String _C__58_REQUESTENCHANTITEM = "[C] 58 RequestEnchantItem"; private static final int[] CRYSTAL_SCROLLS = { 731, 732, 949, 950, 953, 954, 957, 958, 961, 962 }; @@ -240,96 +241,18 @@ } } else - { + { if (!blessedScroll) { - if (item.getEnchantLevel() > 0) - { - sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_S2_EVAPORATED); - sm.addNumber(item.getEnchantLevel()); - sm.addItemName(item.getItemId()); - activeChar.sendPacket(sm); - } - else - { - sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_EVAPORATED); - sm.addItemName(item.getItemId()); - activeChar.sendPacket(sm); - } + item.setEnchantLevel(safe); + item.updateDatabase(); } else { - sm = new SystemMessage(SystemMessageId.BLESSED_ENCHANT_FAILED); - activeChar.sendPacket(sm); - } - - if (!blessedScroll) - { - if (item.getEnchantLevel() > 0) - { - sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED); - sm.addNumber(item.getEnchantLevel()); - sm.addItemName(item.getItemId()); - activeChar.sendPacket(sm); - } - else - { - sm = new SystemMessage(SystemMessageId.S1_DISARMED); - sm.addItemName(item.getItemId()); - activeChar.sendPacket(sm); - } - - L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getEquipSlot()); - if (item.isEquipped()) - { - InventoryUpdate iu = new InventoryUpdate(); - for (int i = 0; i < unequiped.length; i++) - { - iu.addModifiedItem(unequiped[i]); - } - activeChar.sendPacket(iu); - - activeChar.broadcastUserInfo(); - } - - int count = item.getCrystalCount() - (item.getItem().getCrystalCount() +1) / 2; - if (count < 1) count = 1; - - L2ItemInstance destroyItem = activeChar.getInventory().destroyItem("Enchant", item, activeChar, null); - if (destroyItem == null) return; - - L2ItemInstance crystals = activeChar.getInventory().addItem("Enchant", crystalId, count, activeChar, destroyItem); - - sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S); - sm.addItemName(crystals.getItemId()); - sm.addNumber(count); - activeChar.sendPacket(sm); - - if (!Config.FORCE_INVENTORY_UPDATE) - { - InventoryUpdate iu = new InventoryUpdate(); - if (destroyItem.getCount() == 0) iu.addRemovedItem(destroyItem); - else iu.addModifiedItem(destroyItem); - iu.addItem(crystals); - - activeChar.sendPacket(iu); - } - else activeChar.sendPacket(new ItemList(activeChar, true)); - - StatusUpdate su = new StatusUpdate(activeChar.getObjectId()); - su.addAttribute(StatusUpdate.CUR_LOAD, activeChar.getCurrentLoad()); - activeChar.sendPacket(su); - - activeChar.broadcastUserInfo(); - - L2World world = L2World.getInstance(); - world.removeObject(destroyItem); - } - else - { - item.setEnchantLevel(0); + item.setEnchantLevel(safe); item.updateDatabase(); } + activeChar.sendMessage("Your "+item.getItemName()+" enchanting failed , your item enchanted to +"+safe); } sm = null;
  6. couldn't you just schedule a task that will execute in 5 seconds when a player takes 1 pvp kill. and just check the other variable? ex: private int k; class check implements Runnable{ L2PcInstance p; public check(L2PcInstance p){ if(p.k == 2){ p.k = 0; //DONE } } public void run(){ check(p); } } and in the increasepvpkills method after setpvpkills + 1, ThreadpoolManager.scheduleGeneral(new check(this),50000); /50000 = the time in milliseconds , its random
  7. προς το παρον οχι, αλλα πες μου τι χρειαζεσαι. Οτι μπορει να γινει σε interlude Μπορει να γινει και σε hi5 αρκει να το παρεχει το client.
  8. Νο. It's a good language to begin(yes) but you can learn it whenever you want and you can do many things with Visual Basic. Personally i don't like it :P , i prefer the family of C languages
  9. Ξανα ανοιξαμε και σας περιμενουμε :D
  10. Ποτε μην χρησιμοποιεις το thread.sleep , ειδικα σε κλασεις οπως το l2pcinstance δεν κανει, ενας server με πολλα ατομα θα κολουσε τρελα αν ειχε αυτο.Ειναι ο χειροτερος τροπος ετσι. Επρεπε να δημιουργησεις μια κλαση που να κανει Implement την Runnable και μετα να παρεις access με την threadpoolmanager.
  11. Nice, that's a good "line" to learn . Since you learn C , C++, java and visual C will be easy . Visual Basic will be a bit hard cause of it's syntax but you will learn it ;D
  12. innactive. Locked για λιγες μερες , δουλευω σε ενα project. οτι θελετε PM
  13. GL ppl online?
  14. Πανε στο net.sf.l2j.gameserver.model.base και ανοιξε την κλασση Experience. Εκει θα βρεις κατι τετοιο 0L, 68L, 363L, 1168L, 2884L, 6038L, 11287L, 19423L, 31378L, 48229L, //level 10 71201L, 101676L, 141192L, 191452L, 254327L, 331864L, 426284L, 539995L, 675590L, 835854L, //level 20 1023775L, 1242536L, 1495531L, 1786365L, 2118860L, 2497059L, 2925229L, 3407873L, 3949727L, 4555766L, //level 30 5231213L, 5981539L, 6812472L, 7729999L, 8740372L, 9850111L, 11066012L, 12395149L, 13844879L, 15422851L, //level 40 17137002L, 18995573L, 21007103L, 23180442L, 25524751L, 28049509L, 30764519L, 33679907L, 36806133L, 40153995L, //level 50 45524865L, 51262204L, 57383682L, 63907585L, 70852742L, 80700339L, 91162131L, 102265326L, 114038008L, 126509030L, //level 60 146307211L, 167243291L, 189363788L, 212716741L, 237351413L, 271973532L, 308441375L, 346825235L, 387197529L, 429632402L, //level 70 474205751L, 532692055L, 606319094L, 696376867L, 804219972L, 931275828L, 1151275834L, 1511275834L, 2099275834L, 4200000000L, //level 80 Προσθεσε κατω απ'ο αυτο κατι τετοιο 6300000000L, //level 81 8820000000L, //level 82 11844000000L, //level 83 15472800000L, //level 84 19827360000L, //level 85 25314000000L, //level 86 35314000000L, //level 87 45314000000L, //level 88 55314000000L, //level 89 65314000000L, //level 90 75314000000L, //level 91 85314000000L, //level 92 95314000000L, //level 93 95389000000L, //level 94 95489000000L, //level 95 99489000000L, //level 95 95489100000L Και δες αν λειτουργει , αν λειτουργει το να κανεις το exp δυσκολο απο 80 μεχρι 90 ειναι ευκολο μετα. Τεσταρετο
  15. Η εχει λαθος ο κωδικας η απλα ξεχασες να βαλεις το μερος του EnterWorld.java
  16. Maybe yes , but i don't want :P . I prefer to be just a simple vip member.
  17. Στην ουσια το ιδιο κανεις , το ονομα των μεθοδων θα αλλαξεις μονο. Κοιτα πως λειτουργει ενα pvp color system. Για να σε διευκολυνω θα "παιξεις με τις παρακατω μεθοδους" getPvpKills() getPkKills() setTitleColor() setNameColor() Ελπιζω να καταλαβαινεις τι κανει η καθεμια , το λεει το ονομα της. Ανοιξε ενα Pvp system και θα καταλαβεις τι ειναι αυτα. Αλλαξε τα οπως επιθυμεις για να πετυχεις αυτο που θες.
  18. Ειμαι εκτος pc , το ειδα το request σου. Θα μπορεσω να το κανω αυριο(Τεταρτη) που θα γυρισω Κοζανη :P
  19. Γεια σε ολους , ζητηθηκε. Ο clan leader μπορει να γραψει .clanannounce_add για να προσθεσει μια ανακοινωση η οποια θα σταλθει σε ολα τα clan members , αλλα και οσοι ειναι offline θα την δουν μολις μπουν. Π.χ θελει να ανακοινωσει : simera oli 5 i ora siege aden , αλλα θελει να βεβαιωθει οτι δε θα το ξεχασει κανεις. Επισης και να ηταν Online οταν εγινε η ανακοινωση , παλι οταν ο παιχτης μπει θα του σταλθει.Επισης μπορει να γραψει .clanannounce_remove για να αφαιρεσει την ανακοινωση για να βαλει καινουρια. PS:το αρχειο ExShowScreenMessage θα το εχετε μη το βαλετε, εκτος αν εχετε clean L2J ### Eclipse Workspace Patch 1.0 #P Chr.6DTP Index: sql/characters.sql =================================================================== --- sql/characters.sql (revision 8778) +++ sql/characters.sql (working copy) @@ -79,6 +79,7 @@ clan_join_expiry_time DECIMAL(20,0) NOT NULL DEFAULT 0, clan_create_expiry_time DECIMAL(20,0) NOT NULL DEFAULT 0, death_penalty_level int(2) NOT NULL DEFAULT 0, + announce varchar(100) NOT NULL default '' PRIMARY KEY (obj_Id), KEY `clanid` (`clanid`) ) ; ### Eclipse Workspace Patch 1.0 #P Chr.6GMS Index: java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 5263) +++ java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (working copy) @@ -55,8 +55,10 @@ import net.sf.l2j.gameserver.model.entity.TvTEvent; import net.sf.l2j.gameserver.model.quest.Quest; import net.sf.l2j.gameserver.network.SystemMessageId; +import net.sf.l2j.gameserver.serverpackets.CreatureSay; import net.sf.l2j.gameserver.serverpackets.Die; import net.sf.l2j.gameserver.serverpackets.EtcStatusUpdate; +import net.sf.l2j.gameserver.serverpackets.ExShowScreenMessage; import net.sf.l2j.gameserver.serverpackets.ExStorageMaxCount; import net.sf.l2j.gameserver.serverpackets.FriendList; import net.sf.l2j.gameserver.serverpackets.HennaInfo; @@ -71,6 +73,7 @@ import net.sf.l2j.gameserver.serverpackets.SignsSky; import net.sf.l2j.gameserver.serverpackets.SystemMessage; import net.sf.l2j.gameserver.serverpackets.UserInfo; +import net.sf.l2j.gameserver.serverpackets.ExShowScreenMessage.SMPOS; import net.sf.l2j.gameserver.util.FloodProtector; /** @@ -251,6 +254,8 @@ SevenSigns.getInstance().sendCurrentPeriodMsg(activeChar); Announcements.getInstance().showAnnouncements(activeChar); + + loadAnnounceClan(activeChar); Quest.playerEnter(activeChar); activeChar.sendPacket(new QuestList()); @@ -350,6 +355,18 @@ TvTEvent.onLogin(activeChar); } + private void loadAnnounceClan(L2PcInstance pc){ + if(pc.hasNewAnnounce()){ + CreatureSay msg1 = new CreatureSay(1,Say2.CLAN,"Clan Announcement",pc.getAnnounce()); + + ExShowScreenMessage msg2 = new ExShowScreenMessage(pc.getAnnounce(), 15000, SMPOS.TOP_CENTER, true); + + pc.sendPacket(msg1); + pc.sendPacket(msg2); + + } + } + /** * @param activeChar */ Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 5263) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -214,8 +214,8 @@ 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=?,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=?,announce=? 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,announce 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 =?"; @@ -451,6 +451,8 @@ private boolean _noble = false; private boolean _hero = false; + + private String announce = null; /** The L2FolkInstance corresponding to the last Folk wich one the player talked. */ private L2FolkInstance _lastFolkNpc = null; @@ -4671,6 +4673,13 @@ { return _partyMatchingMemo; } + + public boolean hasNewAnnounce(){ + if(getAnnounce() != "" && getAnnounce() != null) + return true; + + return false; + } public boolean isPartyMatchingShowClass() { @@ -5595,6 +5604,7 @@ player.setOnlineTime(rset.getLong("onlinetime")); player.setNewbie(rset.getInt("newbie")==1); player.setNoble(rset.getInt("nobless")==1); + player.setAnnounce(rset.getString("announce")); player.setClanJoinExpiryTime(rset.getLong("clan_join_expiry_time")); if (player.getClanJoinExpiryTime() < System.currentTimeMillis()) @@ -6059,7 +6069,8 @@ statement.setLong(54, getClanCreateExpiryTime()); statement.setString(55, getName()); statement.setLong(56, getDeathPenaltyBuffLevel()); - statement.setInt(57, getObjectId()); + statement.setString(57, getAnnounce()); + statement.setInt(58, getObjectId()); statement.execute(); statement.close(); @@ -8215,6 +8226,15 @@ return true; } + public String getAnnounce() + { + return announce; + } + + public void setAnnounce(String newAnnounce){ + announce = newAnnounce; + } + public boolean isNoble() { return _noble; Index: java/net/sf/l2j/gameserver/serverpackets/ExShowScreenMessage.java =================================================================== --- java/net/sf/l2j/gameserver/serverpackets/ExShowScreenMessage.java (revision 0) +++ java/net/sf/l2j/gameserver/serverpackets/ExShowScreenMessage.java (revision 0) @@ -0,0 +1,125 @@ +/* + * 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. + */ +package net.sf.l2j.gameserver.serverpackets; + +public class ExShowScreenMessage extends L2GameServerPacket +{ + public static enum SMPOS + { + DUMMY, TOP_LEFT, TOP_CENTER, TOP_RIGHT, MIDDLE_LEFT, MIDDLE_CENTER, MIDDLE_RIGHT, BOTTOM_CENTER, BOTTOM_RIGHT, + } + + private final int _type; + private final int _sysMessageId; + private final int _hide; + private final int _unk2; + private final int _unk3; + private final int _unk4; + private final int _size; + private final int _position; + private final boolean _effect; + private final String _text; + private final int _time; + + public ExShowScreenMessage(String text, int time) + { + _type = 1; + _sysMessageId = -1; + _hide = 0; + _unk2 = 0; + _unk3 = 0; + _unk4 = 0; + _position = 0x02; + _text = text; + _time = time; + _size = 0; + _effect = false; + } + + public ExShowScreenMessage(String text, int time, SMPOS pos, boolean effect) + { + this(text, time, pos.ordinal(), effect); + } + + public ExShowScreenMessage(String text, int time, int pos, boolean effect) + { + _type = 1; + _sysMessageId = -1; + _hide = 0; + _unk2 = 0; + _unk3 = 0; + _unk4 = 0; + _position = pos; + _text = text; + _time = time; + _size = 0; + _effect = effect; + } + + public ExShowScreenMessage(int type, int messageId, int position, int unk1, int size, int unk2, int unk3, boolean showEffect, int time, int unk4, String text) + { + _type = type; + _sysMessageId = messageId; + _hide = unk1; + _unk2 = unk2; + _unk3 = unk3; + _unk4 = unk4; + _position = position; + _text = text; + _time = time; + _size = size; + _effect = showEffect; + } + + // Close packet + public ExShowScreenMessage() + { + _type = 1; + _sysMessageId = -1; + _hide = 1; // hide it + _unk2 = 0; + _unk3 = 0; + _unk4 = 0; + _position = 0x02; + _text = ""; + _time = 0; + _size = 0; + _effect = false; + } + + @Override + public String getType() + { + return "[s]FE:39 ExShowScreenMessage"; + } + + @Override + protected void writeImpl() + { + writeC(0xfe); + writeH(0x38); + writeD(_type); // 0 - system messages, 1 - your defined text + writeD(_sysMessageId); // system message id (_type must be 0 otherwise no effect) + writeD(_position); // message position + writeD(_hide); // hide + writeD(_size); // font size 0 - normal, 1 - small + writeD(_unk2); // ? + writeD(_unk3); // ? + writeD(_effect == true ? 1 : 0); // upper effect (0 - disabled, 1 enabled) - _position must be 2 (center) otherwise no effect + writeD(_time); // time + writeD(_unk4); // ? + writeS(_text); // your text (_type must be 1, otherwise no effect) + } +} Index: java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java (revision 5263) +++ java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java (working copy) @@ -18,22 +18,29 @@ */ package net.sf.l2j.gameserver.clientpackets; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.util.logging.Level; import java.util.logging.Logger; import net.sf.l2j.Config; +import net.sf.l2j.L2DatabaseFactory; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.communitybbs.CommunityBoard; import net.sf.l2j.gameserver.handler.AdminCommandHandler; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.L2CharPosition; +import net.sf.l2j.gameserver.model.L2ClanMember; import net.sf.l2j.gameserver.model.L2Object; 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.entity.L2Event; import net.sf.l2j.gameserver.serverpackets.ActionFailed; +import net.sf.l2j.gameserver.serverpackets.CreatureSay; +import net.sf.l2j.gameserver.serverpackets.ExShowScreenMessage; import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage; +import net.sf.l2j.gameserver.serverpackets.ExShowScreenMessage.SMPOS; /** * This class ... @@ -85,6 +92,60 @@ { comeHere(activeChar); } + else if (_command.startsWith("clan_ann")){ + String announce = _command.substring(9); + + if(announce == null || announce == ""){ + activeChar.sendMessage("nothing happened"); + return; + } + + else if(announce.length() >= 100){ + activeChar.sendMessage("Max Length: 100"); + return; + } + + else if(activeChar.hasNewAnnounce()){ + activeChar.sendMessage("There is already a clan announcement, delete it first."); + return; + } + + else { + CreatureSay msg1 = new CreatureSay(1,Say2.CLAN,"Clan Announcement",announce); + ExShowScreenMessage msg2 = new ExShowScreenMessage(announce, 15000, SMPOS.TOP_CENTER, true); + for(L2ClanMember member : activeChar.getClan().getMembers()){ + L2PcInstance real = member.getPlayerInstance(); + if(real == null) + continue; + if(real.isOnline() == 1){ + real.setAnnounce(announce); + real.sendPacket(msg1); + real.sendPacket(msg2); + } + } + + Connection con = null; + PreparedStatement state = null; + + try{ + con = L2DatabaseFactory.getInstance().getConnection(); + state = con.prepareStatement("UPDATE characters SET announce=? WHERE clanid=?"); + state.setString(1, announce); + state.setInt(2, activeChar.getClan().getClanId()); + state.execute(); + + state.close(); + } + + catch(Exception ie){ + ie.printStackTrace(); + } + finally{ + con.close(); + } + + } + } else if (_command.startsWith("player_help ")) { playerHelp(activeChar, _command.substring(12)); Index: java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/clanannounce.java =================================================================== --- java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/clanannounce.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/clanannounce.java (revision 0) @@ -0,0 +1,108 @@ + +package net.sf.l2j.gameserver.handler.voicedcommandhandlers; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; + +import javolution.text.TextBuilder; +import net.sf.l2j.L2DatabaseFactory; +import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; +import net.sf.l2j.gameserver.model.L2ClanMember; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.serverpackets.ExShowScreenMessage; +import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage; + +/** + * + * @author irat + */ +public class clanannounce implements IVoicedCommandHandler +{ + + ExShowScreenMessage screenMessage = new ExShowScreenMessage("Using clan notice system services.",2); + private final String[] commands = {"clanannounce_add","clanannounce_remove"}; + + public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) + { + if(activeChar == null) + return false; + + if(!activeChar.isClanLeader()) + return false; + + else if(activeChar.getClan() == null ) + return false; + + else if(activeChar.getClan().getMembersCount() == 0){ + activeChar.sendMessage("You don't have any members"); + return false; + } + + if(command.equals("clanannounce_add")){ + activeChar.sendPacket(screenMessage); + showChat(activeChar); + } + else if(command.equals("clanannounce_remove")){ + for(L2ClanMember member : activeChar.getClan().getMembers()){ + L2PcInstance real = member.getPlayerInstance(); + + + if(real == null) + continue; + + if(real.isOnline() == 1){ + real.setAnnounce(""); + } + } + Connection con = null; + PreparedStatement state = null; + + try{ + con = L2DatabaseFactory.getInstance().getConnection(); + state = con.prepareStatement("UPDATE characters SET announce=? WHERE clanid=?"); + state.setString(1,""); + state.setInt(2,activeChar.getClan().getClanId()); + + state.execute(); + state.close(); + } + catch(Exception ie){ + ie.printStackTrace(); + } + finally{ + try + { + con.close(); + } + catch (SQLException e2) + { + // + } + } + } + return true; + } + + private void showChat(L2PcInstance playable){ + NpcHtmlMessage html = new NpcHtmlMessage(1); + TextBuilder tb = new TextBuilder(); + + tb.append("<html><head>"); + tb.append("<title>Clan Notice</title></head><body>"); + tb.append("<center><font color=\"FFFF00\">Hey! Welcome </font>"+"<font color=\"FF11FF\">"+playable.getName()+"</font></center>"); + tb.append("<font color=\"FFAA23\">Here you can handle the clan notice system.<br>Create a new announce to broadcast in all your clan members.<br>Offline members will be informed when they log in.</font>"); + tb.append("<br><br><center><font color=\"55FF55\">Creating New Announce:</font><br>"); + tb.append("<multiedit var=\"clan_announce\" width=240 height=30>"); + tb.append("<br><button value=\"Broadcast Announce\" action=\"bypass -h clan_ann $clan_announce\" width=60 height=15 length=\"3000\" back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>"); + tb.append("</center></body></html>"); + html.setHtml(tb.toString()); + playable.sendPacket(html); + } + + public String[] getVoicedCommandList() + { + return commands; + } + +}
  20. yes. or he can create 2 integers for each one class and combine them ;D
  21. if i understand well you want to check the party if have some classes , if yes teleport the whole party some where? If yes , just create a loop in the party and check the ids you want , if they have these ids teleport the whole party somewhere. for(L2PcInstance j : player.getParty().getPartyMembers()){ int id = j.getClassId().getId(); if(id == 1|| id == 2){ for(L2PcInstance g :player.getParty().getPartyMembers()) g.teleToLocation(x, y, z); break; } }
×
×
  • 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