Рега на форт

Vodka TreasureHunter

Выдающийся
Местный
За веру и верность форуму
Сообщения
371
Розыгрыши
0
Репутация
242
Реакции
174
Баллы
1 388
Решил передать фунцию рега на форт, раньше было клацаешь одну строчку регаешься, вторую снимаешь регу.
Решил сделать окно как на fisrt-team или же l2nextgen, FT ближе по сходству с моей сборкой по этому вытаскивал от туда.
Поменял файлы:
SuspiciousMerchantInstance.java
package l2p.gameserver.serverpackets;

import java.util.Calendar;

import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import l2p.gameserver.model.pledge.Alliance;
import l2p.gameserver.model.pledge.Clan;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.entity.events.impl.CastleSiegeEvent;
import l2p.gameserver.model.entity.residence.Castle;
import l2p.gameserver.model.entity.residence.ClanHall;
import l2p.gameserver.model.entity.residence.Residence;
import l2p.gameserver.model.entity.residence.Fortress;

/**
* Shows the Siege Info<BR>
* <BR>
* packet type id 0xc9<BR>
* format: cdddSSdSdd<BR>
* <BR>
* c = c9<BR>
* d = UnitID<BR>
* d = Show Owner Controls (0x00 default || >=0x02(mask?) owner)<BR>
* d = Owner ClanID<BR>
* S = Owner ClanName<BR>
* S = Owner Clan LeaderName<BR>
* d = Owner AllyID<BR>
* S = Owner AllyName<BR>
* d = current time (seconds)<BR>
* d = Siege time (seconds) (0 for selectable)<BR>
* d = Size of Siege Time Select Related
* d - next siege time
*
* @reworked VISTALL
*/
public class CastleSiegeInfo extends L2GameServerPacket
{
private long _startTime;
private int _id, _ownerObjectId, _allyId;
private boolean _isLeader;
private String _ownerName = "NPC";
private String _leaderName = StringUtils.EMPTY;
private String _allyName = StringUtils.EMPTY;
private int[] _nextTimeMillis = ArrayUtils.EMPTY_INT_ARRAY;

public CastleSiegeInfo(Castle castle, Player player)
{
this((Residence)castle, player);

CastleSiegeEvent siegeEvent = castle.getSiegeEvent();
long siegeTimeMillis = castle.getSiegeDate().getTimeInMillis();
if(siegeTimeMillis == 0)
_nextTimeMillis = siegeEvent.getNextSiegeTimes();
else
_startTime = (int)(siegeTimeMillis / 1000);
}

public CastleSiegeInfo(ClanHall ch, Player player)
{
this((Residence)ch, player);

_startTime = (int)(ch.getSiegeDate().getTimeInMillis() / 1000);
}
public CastleSiegeInfo(Fortress fortes, Player player)
{
this((Residence)fortes, player);

_startTime = (int)(fortes.getSiegeDate().getTimeInMillis() / 1000);
}


protected CastleSiegeInfo(Residence residence, Player player)
{
_id = residence.getId();
_ownerObjectId = residence.getOwnerId();
Clan owner = residence.getOwner();
if(owner != null)
{
_isLeader = player.isGM() || owner.getLeaderId(Clan.SUBUNIT_MAIN_CLAN) == player.getObjectId();
_ownerName = owner.getName();
_leaderName = owner.getLeaderName(Clan.SUBUNIT_MAIN_CLAN);
Alliance ally = owner.getAlliance();
if(ally != null)
{
_allyId = ally.getAllyId();
_allyName = ally.getAllyName();
}
}
}

@Override
protected void writeImpl()
{
writeC(0xC9);
writeD(_id);
writeD(_isLeader ? 0x01 : 0x00);
writeD(_ownerObjectId);
writeS(_ownerName); // Clan Name
writeS(_leaderName); // Clan Leader Name
writeD(_allyId); // Ally ID
writeS(_allyName); // Ally Name
writeD((int) (Calendar.getInstance().getTimeInMillis() / 1000));
writeD((int) _startTime);
if(_startTime == 0) //если ноль то идет цыкл
writeDD(_nextTimeMillis, true);
}
}
CastleSiegeInfo.java
package l2p.gameserver.serverpackets;

import java.util.Calendar;

import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import l2p.gameserver.model.pledge.Alliance;
import l2p.gameserver.model.pledge.Clan;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.entity.events.impl.CastleSiegeEvent;
import l2p.gameserver.model.entity.residence.Castle;
import l2p.gameserver.model.entity.residence.ClanHall;
import l2p.gameserver.model.entity.residence.Residence;
import l2p.gameserver.model.entity.residence.Fortress;

/**
* Shows the Siege Info<BR>
* <BR>
* packet type id 0xc9<BR>
* format: cdddSSdSdd<BR>
* <BR>
* c = c9<BR>
* d = UnitID<BR>
* d = Show Owner Controls (0x00 default || >=0x02(mask?) owner)<BR>
* d = Owner ClanID<BR>
* S = Owner ClanName<BR>
* S = Owner Clan LeaderName<BR>
* d = Owner AllyID<BR>
* S = Owner AllyName<BR>
* d = current time (seconds)<BR>
* d = Siege time (seconds) (0 for selectable)<BR>
* d = Size of Siege Time Select Related
* d - next siege time
*
* @reworked VISTALL
*/
public class CastleSiegeInfo extends L2GameServerPacket
{
private long _startTime;
private int _id, _ownerObjectId, _allyId;
private boolean _isLeader;
private String _ownerName = "NPC";
private String _leaderName = StringUtils.EMPTY;
private String _allyName = StringUtils.EMPTY;
private int[] _nextTimeMillis = ArrayUtils.EMPTY_INT_ARRAY;

public CastleSiegeInfo(Castle castle, Player player)
{
this((Residence)castle, player);

CastleSiegeEvent siegeEvent = castle.getSiegeEvent();
long siegeTimeMillis = castle.getSiegeDate().getTimeInMillis();
if(siegeTimeMillis == 0)
_nextTimeMillis = siegeEvent.getNextSiegeTimes();
else
_startTime = (int)(siegeTimeMillis / 1000);
}

public CastleSiegeInfo(ClanHall ch, Player player)
{
this((Residence)ch, player);

_startTime = (int)(ch.getSiegeDate().getTimeInMillis() / 1000);
}
public CastleSiegeInfo(Fortress fortes, Player player)
{
this((Residence)fortes, player);

_startTime = (int)(fortes.getSiegeDate().getTimeInMillis() / 1000);
}


protected CastleSiegeInfo(Residence residence, Player player)
{
_id = residence.getId();
_ownerObjectId = residence.getOwnerId();
Clan owner = residence.getOwner();
if(owner != null)
{
_isLeader = player.isGM() || owner.getLeaderId(Clan.SUBUNIT_MAIN_CLAN) == player.getObjectId();
_ownerName = owner.getName();
_leaderName = owner.getLeaderName(Clan.SUBUNIT_MAIN_CLAN);
Alliance ally = owner.getAlliance();
if(ally != null)
{
_allyId = ally.getAllyId();
_allyName = ally.getAllyName();
}
}
}

@Override
protected void writeImpl()
{
writeC(0xC9);
writeD(_id);
writeD(_isLeader ? 0x01 : 0x00);
writeD(_ownerObjectId);
writeS(_ownerName); // Clan Name
writeS(_leaderName); // Clan Leader Name
writeD(_allyId); // Ally ID
writeS(_allyName); // Ally Name
writeD((int) (Calendar.getInstance().getTimeInMillis() / 1000));
writeD((int) _startTime);
if(_startTime == 0) //если ноль то идет цыкл
writeDD(_nextTimeMillis, true);
}
}
И вроде все получилось, я уже обрадовался но...
d07aaae14e09.jpg
Но когда регаюсь ничего не происходит, скорей всего это и за даты осады.
Должно писать Дата осады 2015/07/13 20:11 но пишет "Нерешительные"

Буду рад любым ответам где может быть ошибка.
 
Последнее редактирование модератором:
сборка изначально была на фениксах(епилог) на которых была эта функция после сборку поднимали до хф
потом за исходники взялась команда лавео(епилог) но руки у них не дошли что бы нормально опустить хф до епилога

никогда не понимал людей с круглым мозгом...(это метафора, без обид)
просто реально - КОЛЕСО...

поднимали до хф - опустить хф до епилога
 

я когда это окно делал добавлял что то, а вот где увы уже забыл....

ExShowFortressSiegeInfo
ExShowFortressInfo
RequestFortressSiegeInfo
рой где то там
Все файлы эти я поменял но ничего, с окном все нормально кроме даты осады не хочет показывать.
 
а дата у тебя как юзается, стоит её делить на 1000? или она уже верно приходит? или....
 
а формат числа какой у тебя юзается, стоит его делить на 1000? или оно уже верное приходит? или....
Оно не регается на форт потому что проблема с датой осады.
Где ты менял дату для осады, можешь вспомнить?
 
почти 3 года прошло, вряд ли вспомню на вскидку....
если не решишь до воскресенья проблему пиши в ПМ поковыряемся...
просто сейчас спатиньки, завтра работа )))
 
почти 3 года прошло, вряд ли вспомню на вскидку....
если не решишь до воскресенья проблему пиши в ПМ поковыряемся...
просто сейчас спатиньки, завтра работа )))
Окей, спокойной.
 
ага, слушай но вот такая проблема осталась до моей регистрации, все равно пишет "Нерешительные" в поле дата осады но когда зарегался уже все норм, пишет в дате осады время.
Что скажешь по этому поводу?
 
строка скорее всего берётся с клиента, ищи в клиент файлах.
но сначала -> Поиск в своём проекте, просто я хз как и что у тебя там работает.
 
Назад
Сверху Снизу