Rizlaaa
Members-
Posts
362 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Articles
Profiles
Forums
Store
Everything posted by Rizlaaa
-
did your 'friend' coded anything?
-
[Discussion]Κάντε request java mods
Rizlaaa replied to Rizlaaa's topic in Server Development Discussion [Greek]
αν θελεις να συνδεεται στο Internet ξεχασε το απο μενα. Και να μπορουσα δεν θα σου το εδινα. Επισης για paysafe θα χρειαστει extra λεφτα γιατι οπως ξερεις η paysafe εχει captcha και θα χρειαστει να αγορασεις captcha killer για να μπορεσεις να εχεις access. Η γινεται και με assembla. -
[Share] L2jKatara Source
Rizlaaa replied to Dulens.'s topic in Server Development Discussion [Greek]
Ενοειται πως ειπε μ.... το παιδι , αλλα πιστεψε με ο katara αυτη τι στιγμη ξερει πραγματικα παρα πολλα πραγματα. Οσο για το project δεν εχω να πω τιποτα , οποιος θελει το κατεβαζει και τεσταρει. Προσωπικα δε θα στηριζομουν σε ενα τετοιο pack -
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 .
-
[Discussion]Κάντε request java mods
Rizlaaa replied to Rizlaaa's topic in Server Development Discussion [Greek]
### 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; -
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
-
[Discussion]Κάντε request java mods
Rizlaaa replied to Rizlaaa's topic in Server Development Discussion [Greek]
προς το παρον οχι, αλλα πες μου τι χρειαζεσαι. Οτι μπορει να γινει σε interlude Μπορει να γινει και σε hi5 αρκει να το παρεχει το client. -
Νο. 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
-
[Discussion]Κάντε request java mods
Rizlaaa replied to Rizlaaa's topic in Server Development Discussion [Greek]
Ξανα ανοιξαμε και σας περιμενουμε :D -
[Share][GR]PvpSkillRewardSystem
Rizlaaa replied to AbsolutePower's topic in Server Shares & Files [L2J]
Ποτε μην χρησιμοποιεις το thread.sleep , ειδικα σε κλασεις οπως το l2pcinstance δεν κανει, ενας server με πολλα ατομα θα κολουσε τρελα αν ειχε αυτο.Ειναι ο χειροτερος τροπος ετσι. Επρεπε να δημιουργησεις μια κλαση που να κανει Implement την Runnable και μετα να παρεις access με την threadpoolmanager. -
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
-
[Discussion]Κάντε request java mods
Rizlaaa replied to Rizlaaa's topic in Server Development Discussion [Greek]
innactive. Locked για λιγες μερες , δουλευω σε ενα project. οτι θελετε PM -
cool :P
-
GL ppl online?
-
[Discussion]Κάντε request java mods
Rizlaaa replied to Rizlaaa's topic in Server Development Discussion [Greek]
Πανε στο 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 ειναι ευκολο μετα. Τεσταρετο -
Color Name And Title
Rizlaaa replied to ExCaLiBuR®'s question in Request Server Development Help [Greek]
Η εχει λαθος ο κωδικας η απλα ξεχασες να βαλεις το μερος του EnterWorld.java -
Maybe yes , but i don't want :P . I prefer to be just a simple vip member.
-
Στην ουσια το ιδιο κανεις , το ονομα των μεθοδων θα αλλαξεις μονο. Κοιτα πως λειτουργει ενα pvp color system. Για να σε διευκολυνω θα "παιξεις με τις παρακατω μεθοδους" getPvpKills() getPkKills() setTitleColor() setNameColor() Ελπιζω να καταλαβαινεις τι κανει η καθεμια , το λεει το ονομα της. Ανοιξε ενα Pvp system και θα καταλαβεις τι ειναι αυτα. Αλλαξε τα οπως επιθυμεις για να πετυχεις αυτο που θες.
-
WTS [WTS]Hide Drop Event + Video
Rizlaaa replied to Rizlaaa's topic in Marketplace [L2Packs & Files]
up -
[Req] Ένα Java Code??????
Rizlaaa replied to pnsrx8's question in Request Server Development Help [Greek]
Ειμαι εκτος pc , το ειδα το request σου. Θα μπορεσω να το κανω αυριο(Τεταρτη) που θα γυρισω Κοζανη :P -
WTS [WTS]Hide Drop Event + Video
Rizlaaa replied to Rizlaaa's topic in Marketplace [L2Packs & Files]
up -
Γεια σε ολους , ζητηθηκε. Ο 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; + } + +}
-
WTS [WTS]Hide Drop Event + Video
Rizlaaa replied to Rizlaaa's topic in Marketplace [L2Packs & Files]
bump -
yes. or he can create 2 integers for each one class and combine them ;D
-
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; } }

