Aliance ClanWar

Теги:
 
+
-
edit
 

Fene4ka

новичок
Не у кого еще не было желания занятся работоспосбностью Алии и Варов?
 

Beast

разработчик l2j-сервера
У меня есть :) Вот закончу с клановыми прилегиями и займусь.
 
+
-
edit
 

garri_il

втянувшийся
привет :)
народ подскажите пл. как заполнить руками таблицу для альянса ?
 
+
-
edit
 

Mr.John

новичок
Поле
clan1 - id первого клана
clan2 - id второго клана

дальше я сомневаюсь...
wantspeace1 0 или 1 - первый клан обьявляет войну
wantspeace2 0 или 1 - второй клан обьявляет войну
 
+
-
edit
 

zabbix

разработчик OpenWorlds
в С4 эти пакеты obsolete
в engine.dll от С3 хендлеры есть, а в С4 хендлеров нету :(
хотя клиент все так же посылает RequestStartPledgeWar, но ReplyStartPledgeWar не обрабатывает
Речи тайна Йоды магистра раскрыта - на Форте программист просто старый оказывается он.  
+
-
edit
 

Mr.John

новичок
zabbix а скрипт чтоб эти все хендлеры :D заработали прилогается ?
 
+
-
edit
 

zabbix

разработчик OpenWorlds
гоЙсподи, пару байт легь в логах глянуть?

code text
  1. package net.sf.l2j.gameserver.clientpackets;
  2.  
  3. import java.nio.ByteBuffer;
  4. import java.util.logging.Logger;
  5.  
  6. import net.sf.l2j.gameserver.ClientThread;
  7.  
  8. public class RequestStopPledgeWar extends ClientBasePacket
  9. {
  10.     private static final String _C__4F_REQUESTSTOPPLEDGEWAR = "[C] 4F RequestStopPledgewar";
  11.     private static Logger _log = Logger.getLogger(RequestStopPledgeWar.class.getName());
  12.  
  13.     String _pledgeName;
  14.    
  15.     public RequestStopPledgeWar(ByteBuffer buf, ClientThread client)
  16.     {
  17.         super(buf, client);
  18.         _pledgeName  = readS();
  19.     }
  20.  
  21.     void runImpl()
  22.     {
  23.         _log.info("RequestStopPledgeWar by "+getClient().getActiveChar().getClan().getName()+" with "+_pledgeName);
  24.     }
  25.    
  26.     public String getType()
  27.     {
  28.         return _C__4F_REQUESTSTOPPLEDGEWAR;
  29.     }
  30. }


code text
  1. package net.sf.l2j.gameserver.clientpackets;
  2.  
  3. import java.nio.ByteBuffer;
  4. import java.util.logging.Logger;
  5.  
  6. import net.sf.l2j.gameserver.ClanTable;
  7. import net.sf.l2j.gameserver.ClientThread;
  8. import net.sf.l2j.gameserver.model.L2Clan;
  9. import net.sf.l2j.gameserver.model.L2PcInstance;
  10. import net.sf.l2j.gameserver.model.L2World;
  11. import net.sf.l2j.gameserver.serverpackets.ActionFailed;
  12. import net.sf.l2j.gameserver.serverpackets.StartPledgeWar;
  13.  
  14. public class RequestStartPledgeWar extends ClientBasePacket
  15. {
  16.     private static final String _C__4D_REQUESTSTARTPLEDGEWAR = "[C] 4D RequestStartPledgewar";
  17.     private static Logger _log = Logger.getLogger(RequestStartPledgeWar.class.getName());
  18.  
  19.     String _pledgeName;
  20.     L2Clan _clan;
  21.     L2PcInstance player;
  22.    
  23.     public RequestStartPledgeWar(ByteBuffer buf, ClientThread client)
  24.     {
  25.         super(buf, client);
  26.         _pledgeName  = readS();
  27.     }
  28.  
  29.     void runImpl()
  30.     {
  31.         _clan = getClient().getActiveChar().getClan();
  32.         player = getClient().getActiveChar();
  33.        
  34.         if(_clan == null)
  35.             return;
  36.        
  37.         _log.info("RequestStartPledgeWar by "+_clan.getName()+" with "+_pledgeName);
  38.        
  39.         if(_clan.getLevel() < 3)
  40.         {
  41.             player.sendMessage("Only lvl3+ clans can declare war.");
  42.             player.sendPacket(new ActionFailed());
  43.             return;
  44.         }
  45.         else if(_clan.isAtWar())
  46.         {
  47.             player.sendMessage("U cant declare war wit multiply clans.");
  48.             player.sendPacket(new ActionFailed());
  49.             return;            
  50.         }
  51.         else if(_clan.getAllyId() > 0)
  52.         {
  53.             player.sendMessage("U cant declare war with clan in ally.");
  54.             player.sendPacket(new ActionFailed());
  55.             return;                        
  56.         }
  57.        
  58.         L2Clan clan = ClanTable.getInstance().getClan(_pledgeName);
  59.        
  60.         _log.info("RequestStartPledgeWar, leader: "+clan.getLeaderName()+" clan: "+_clan.getName());
  61.        
  62.         L2World.getInstance().getPlayer(clan.getLeaderName()).sendPacket(new StartPledgeWar(_clan.getName(),player.getName()));
  63.     }
  64.    
  65.     public String getType()
  66.     {
  67.         return _C__4D_REQUESTSTARTPLEDGEWAR;
  68.     }
  69. }


code text
  1. package net.sf.l2j.gameserver.clientpackets;
  2.  
  3. import java.nio.ByteBuffer;
  4. import java.util.logging.Logger;
  5.  
  6. import net.sf.l2j.gameserver.ClientThread;
  7. import net.sf.l2j.gameserver.model.L2PcInstance;
  8. import net.sf.l2j.gameserver.serverpackets.ManagePledgePower;
  9.  
  10. public class RequestPledgePower extends ClientBasePacket
  11. {
  12.     private static final String _C__C0_REQUESTPLEDGEPOWER = "[C] C0 RequestPledgePower";
  13.     private static Logger _log = Logger.getLogger(RequestPledgePower.class.getName());
  14.    
  15.     // clan related authority
  16.     private static final int CP_CL_JOIN_CLAN = 1;      // Join clan
  17.     private static final int CP_CL_GIVE_TITLE = 2;     // Give a title
  18.     private static final int CP_CL_VIEW_WAREHOUSE = 4; // View warehouse content
  19.     private static final int CP_CL_REGISTER_CREST = 8; // Register clan crest
  20.    
  21.     // clanhall related authority
  22.     private static final int CP_CH_OPEN_DOOR = 10;     // open a door
  23.     private static final int CP_CH_OTHER_RIGHTS = 20;  //??
  24.     private static final int CP_CH_DISMISS = 40;       //??
  25.    
  26.     // castle related authority
  27.     private static final int CP_CS_OPEN_DOOR = 80;
  28.     private static final int CP_CS_OTHER_RIGHTS = 100;  //???
  29.     private static final int CP_CS_DISMISS = 200;       //???
  30.  
  31.     public RequestPledgePower(ByteBuffer buf, ClientThread client)
  32.     {
  33.         super(buf,client);
  34.         _clanid = readD();
  35.         _action = readD(); // 1 - get riv(privileges button), 2 - request priv(authorize button), 3 - set priv(ok button in authorize window)
  36.        
  37.         _log.info("Clan privileges request: "+_action +" and clanid "+_clanid);
  38.        
  39.         if(_action == 2)
  40.         {
  41.             _priv = readD();
  42.         }
  43.     }
  44.    
  45.     public void runImpl()
  46.     {
  47.         L2PcInstance activeChar = getClient().getActiveChar();
  48.        
  49.         switch(_action)
  50.         {
  51.             case 1:
  52.             //case 2:
  53.                 _log.info("sending clan privileges reply");
  54.                 activeChar.sendPacket(new ManagePledgePower(activeChar.getClan()));
  55.                 break;
  56.             default:
  57.         }
  58.     }
  59.    
  60.     public boolean hasPriv(int privString, int privRequest)
  61.     {
  62.         if((privString & privRequest) == privRequest)
  63.             return true;
  64.         return false;
  65.     }
  66.    
  67.     public int addPriv(int privString, int privRequest)
  68.     {
  69.         return (privString |= privRequest);
  70.     }
  71.    
  72.     public int removePriv(int privString, int privRequest)
  73.     {
  74.         return (privString &=(~privRequest));
  75.     }
  76.    
  77.     public String getType()
  78.     {
  79.         return _C__C0_REQUESTPLEDGEPOWER;
  80.     }
  81.    
  82.     private int _clanid;
  83.     private int _action;
  84.     private int _priv;
  85.  
  86. }


code text
  1. package net.sf.l2j.gameserver.serverpackets;
  2.  
  3. import java.util.logging.Logger;
  4.  
  5. import net.sf.l2j.gameserver.model.L2Clan;
  6.  
  7.  
  8. // 0xE8 is Manor Trade packet :)
  9. public class ManagePledgePower extends ServerBasePacket
  10. {
  11.     private static final String _S__30_MANAGEPLEDGEPOWER = "[S] 30 MANAGEPLEDGEPOWER";
  12.     private static Logger _log = Logger.getLogger(ManagePledgePower.class.getName());
  13.    
  14.     final void runImpl()
  15.     {
  16.     }
  17.  
  18.    
  19.     public ManagePledgePower(L2Clan clan)
  20.     {
  21.         _clan = clan;
  22.     }
  23.    
  24.     final void writeImpl()
  25.     {  
  26.         writeC(0x30);
  27.         writeD(100);
  28.         writeD(100);
  29.        
  30.         _log.info("Fucki'n pledgePw3r packet SENT!");
  31.     }
  32.    
  33.     public String getType()
  34.     {
  35.         return _S__30_MANAGEPLEDGEPOWER;
  36.     }
  37.    
  38.     private L2Clan _clan;
  39. }


code text
  1. package net.sf.l2j.gameserver.serverpackets;
  2.  
  3. public class StartPledgeWar extends ServerBasePacket
  4. {
  5.     private static final String _S__65_STARTPLEDGEWAR = "[S] 65 StartPledgeWar";
  6.     private String _pledgeName;
  7.     private String _char;
  8.  
  9.     public StartPledgeWar(String pledge, String charName)
  10.     {
  11.         _pledgeName = pledge;
  12.         _char = charName;
  13.     }
  14.    
  15.     final void runImpl(){}
  16.    
  17.     final void writeImpl()
  18.     {
  19.         writeC(0x65);
  20.         writeS(_pledgeName);
  21.         writeS(_char);
  22.     }
  23.    
  24.     public String getType()
  25.     {
  26.         return _S__65_STARTPLEDGEWAR;
  27.     }
  28. }
Речи тайна Йоды магистра раскрыта - на Форте программист просто старый оказывается он.  
+
-
edit
 

garri_il

втянувшийся
Mr.John:
Поле
clan1 - id первого клана
clan2 - id второго клана

дальше я сомневаюсь...
wantspeace1 0 или 1 - первый клан обьявляет войну
wantspeace2 0 или 1 - второй клан обьявляет войну
 

da eto vrode k klanwaru otnosit'sj a ne k all'jnsu :)
a kak oll'jns nastroit' rukami v baze ?
 
+
-
edit
 

zabbix

разработчик OpenWorlds
allies not implemented :)
Речи тайна Йоды магистра раскрыта - на Форте программист просто старый оказывается он.  
+
-
edit
 

Apollo
Apollo2

новичок
Mr.John:
Поле
clan1 - id первого клана
clan2 - id второго клана

дальше я сомневаюсь...
wantspeace1 0 или 1 - первый клан обьявляет войну
wantspeace2 0 или 1 - второй клан обьявляет войну
 


Хм допустим 1 клан обьявляет войну.
какое значение прописывать во втором*

Как это все перевести на програмный уровень?
Что игроку не пришлось бежать к Гм каждый раз когда он решит обьявить вар.
 
+
-
edit
 

Apollo
Apollo2

новичок
Поскольку идет работа над протоколом 557-560 так дайте и обсуждать его.
Есть идеи по тому как создать alli? так как в ДБ ее нет.
 
+
-
edit
 

Apollo
Apollo2

новичок
Тема серьезная предлагаю не забывать
 
+
-
edit
 

yobzhik

новичок
Да... Я пока в яве слабый, в отличии от офа, и мне эта тема тоже интересна...
Через базу можно сделать алли, но это несерьезно ведь...
 
+
-
edit
 

Apollo
Apollo2

новичок
Можно хотя бы это узнать?
Как ты это делаешь?
 
+
-
edit
 

Vairus

втянувшийся
нужно написать диалог НПС в которомбы создавался алли и присвоение алли ИД
Потом необходимо внедрить команды.... помоему если не ошибаюсь комадны //allyinvite //allydisband //allyleave и следовательно необхожимо чтобы они считавали ИД клана с перса и просто записывали данные в таблицу, которая уже есть притом очень давно!
Если взять кило водяры и пол литра закусона, И вдохнуть марихуаны правым глазом через нос, То придет Иосиф Сталин без руки, но семиногий И взмахнет забавно **ем И попросит Папирос. © http://www.Lineages.ru Server Administrator  
CZ DarrrAngel #21.03.2006 21:02
+
-
edit
 

DarrrAngel

новичок
Незнаю сколько этой теме по времени но у меня на jellis 1324 ally пашет.Причём fix этот ещё от грини я взял когда тот ещё небыл l2j-vn если у кого сохранились с борки 2156 и т.д. то в change log там fix на ally.У меня алли создаётся через НПЦ при этом inviteи т.д. пашет.Если у кого есть декомпилятор для явы - скинте плз ascentAdminsmail.ru .Тогда смогу выложить код.А так если токо готовое.
Нуб - это тот что много просит но ничего не предлагает.Не предлогайте мне яду,я давно помер,токо вот душа не даёт покоя.Надо в этой жизни сделать что то чвое.Например сервер ;)  

Murkt

Pythoneer

DarrrAngel, то же самое. Полгода теме.
[team Їжачки - сумні падлюки]  
+
-
edit
 

yobzhik

новичок
DarrrAngel, то же самое. Полгода теме.
 


Вот и я о том =)
Человек опомнился через пол года =)
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru