Сообщений: 202
Тем: 2
Зарегистрирован: Jun 2008
Репутация:
783
Amadeo Написал:Hi, anybody have working the (PM, whisp, TELL)
![[Изображение: image.png]](http://rghost.net/7NrmydTlz/image.png)
i try to do it working but nothing. Im using this in the Say2 Packet
Код: protected final void writeImpl()
{
writeC(0x4A);
writeD(_objectId);
writeD(_type.ordinal());
switch (_type)
{
case SYSTEM_MESSAGE:
writeD(_sysString.getId());
writeD(_systemMsg.getId());
break;
case TELL:
writeS(_charName);
writeElements();
writeC(_mask);
writeC(_charLevel);
break;
default:
writeS(_charName);
writeElements();
break;
}
}
try puting a value in the writes
Код: writeC(_mask);
writeC(_charLevel);
but its the same all in red and level 1 any help; thanks
Код: // Flags
private static final int IS_FRIEND = 1 << 0;
private static final int IS_CLAN_MEMBER = 1 << 1;
private static final int IS_MENTEE_OR_MENTOR = 1 << 2;
private static final int IS_ALLIANCE_MEMBER = 1 << 3;
private static final int IS_GM = 1 << 4;
private ChatType _type;
private SysString _sysString;
private SystemMsg _systemMsg;
private int _objectId;
private String _charName;
private int _mask;
private int _charLevel = -1;
public SayPacket2(int objectId, ChatType type, SysString st, SystemMsg sm)
{
super(NpcString.NONE);
_objectId = objectId;
_type = type;
_sysString = st;
_systemMsg = sm;
}
public SayPacket2(int objectId, ChatType type, String charName, String text)
{
this(objectId, type, charName, NpcString.NONE, text);
}
public SayPacket2(int objectId, ChatType type, String charName, NpcString npcString, String... params)
{
super(npcString, params);
_objectId = objectId;
_type = type;
_charName = charName;
}
public void setCharName(String name)
{
_charName = name;
}
public void setSenderInfo(Player sender, Player receiver)
{
_charLevel = sender.getLevel();
if(receiver.getFriendList().contains(sender.getObjectId()))
_mask |= IS_FRIEND;
if(receiver.getClanId() > 0 && receiver.getClanId() == sender.getClanId())
_mask |= IS_CLAN_MEMBER;
if(receiver.getMenteeList().getMentor() == sender.getObjectId() || sender.getMenteeList().getMentor() == receiver.getObjectId())
_mask |= IS_MENTEE_OR_MENTOR;
if(receiver.getAllyId() > 0 && receiver.getAllyId() == sender.getAllyId())
_mask |= IS_ALLIANCE_MEMBER;
// Does not shows level
if(sender.isGM())
_mask |= IS_GM;
}
@Override
protected final void writeImpl()
{
writeD(_objectId);
writeD(_type.ordinal());
switch(_type)
{
case SYSTEM_MESSAGE:
writeD(_sysString.getId());
writeD(_systemMsg.getId());
break;
case TELL:
writeS(_charName);
writeElements();
writeC(_mask);
if((_mask & IS_GM) == 0)
writeC(_charLevel);
break;
default:
writeS(_charName);
writeElements();
break;
}
}
And change NpcStringContainer from:
Код: private final NpcString _npcString;
private final String[] _parameters = new String[5];
protected NpcStringContainer(NpcString npcString, String... arg)
{
_npcString = npcString;
System.arraycopy(arg, 0, _parameters, 0, arg.length);
}
protected void writeElements()
{
writeD(_npcString.getId());
for(String st : _parameters)
writeS(st);
}
to:
Код: private final NpcString _npcString;
private final String[] _parameters;
protected NpcStringContainer(NpcString npcString, String... arg)
{
_npcString = npcString;
_parameters = arg;
}
protected void writeElements()
{
writeD(_npcString.getId());
for(String st : _parameters)
writeS(st);
}
Сообщений: 22
Тем: 1
Зарегистрирован: Nov 2014
Репутация:
1
Thanks to your answers i see a fail in my packet and another fail in my own lines, it works thanks thanks thanks
Сообщений: 18
Тем: 0
Зарегистрирован: Jan 2015
Репутация:
-4
Bonux Написал:Код: // Flags
private static final int IS_FRIEND = 1 << 0;
private static final int IS_CLAN_MEMBER = 1 << 1;
private static final int IS_MENTEE_OR_MENTOR = 1 << 2;
private static final int IS_ALLIANCE_MEMBER = 1 << 3;
private static final int IS_GM = 1 << 4;
private ChatType _type;
private SysString _sysString;
private SystemMsg _systemMsg;
private int _objectId;
private String _charName;
private int _mask;
private int _charLevel = -1;
public SayPacket2(int objectId, ChatType type, SysString st, SystemMsg sm)
{
super(NpcString.NONE);
_objectId = objectId;
_type = type;
_sysString = st;
_systemMsg = sm;
}
public SayPacket2(int objectId, ChatType type, String charName, String text)
{
this(objectId, type, charName, NpcString.NONE, text);
}
public SayPacket2(int objectId, ChatType type, String charName, NpcString npcString, String... params)
{
super(npcString, params);
_objectId = objectId;
_type = type;
_charName = charName;
}
public void setCharName(String name)
{
_charName = name;
}
public void setSenderInfo(Player sender, Player receiver)
{
_charLevel = sender.getLevel();
if(receiver.getFriendList().contains(sender.getObjectId()))
_mask |= IS_FRIEND;
if(receiver.getClanId() > 0 && receiver.getClanId() == sender.getClanId())
_mask |= IS_CLAN_MEMBER;
if(receiver.getMenteeList().getMentor() == sender.getObjectId() || sender.getMenteeList().getMentor() == receiver.getObjectId())
_mask |= IS_MENTEE_OR_MENTOR;
if(receiver.getAllyId() > 0 && receiver.getAllyId() == sender.getAllyId())
_mask |= IS_ALLIANCE_MEMBER;
// Does not shows level
if(sender.isGM())
_mask |= IS_GM;
}
@Override
protected final void writeImpl()
{
writeD(_objectId);
writeD(_type.ordinal());
switch(_type)
{
case SYSTEM_MESSAGE:
writeD(_sysString.getId());
writeD(_systemMsg.getId());
break;
case TELL:
writeS(_charName);
writeElements();
writeC(_mask);
if((_mask & IS_GM) == 0)
writeC(_charLevel);
break;
default:
writeS(_charName);
writeElements();
break;
}
}
And change NpcStringContainer from:
Код: private final NpcString _npcString;
private final String[] _parameters = new String[5];
protected NpcStringContainer(NpcString npcString, String... arg)
{
_npcString = npcString;
System.arraycopy(arg, 0, _parameters, 0, arg.length);
}
protected void writeElements()
{
writeD(_npcString.getId());
for(String st : _parameters)
writeS(st);
}
to:
Код: private final NpcString _npcString;
private final String[] _parameters;
protected NpcStringContainer(NpcString npcString, String... arg)
{
_npcString = npcString;
_parameters = arg;
}
protected void writeElements()
{
writeD(_npcString.getId());
for(String st : _parameters)
writeS(st);
}
thx for your help Bonux, but i need added that line setSenderInfo in other script?
Сообщений: 202
Тем: 2
Зарегистрирован: Jun 2008
Репутация:
783
nache Написал:thx for your help Bonux, but i need added that line setSenderInfo in other script?
In Say2C client packet where chat type: TELL
Сообщений: 18
Тем: 0
Зарегистрирован: Jan 2015
Репутация:
-4
i added that line in 269 Цитата:cs.setSenderInfo(activeChar, receiver);
receiver.sendPacket(cs);
cs = new SayPacket2(activeChar.getObjectId(), _type, "->" + receiver.getName(), _text);
activeChar.sendPacket(cs);
is corrected?
Сообщений: 202
Тем: 2
Зарегистрирован: Jun 2008
Репутация:
783
nache Написал:i added that line in 269
is corrected?
And after: [cs = new SayPacket2(activeChar.getObjectId(), _type, "->" + receiver.getName(), _text);]
add cs.setSenderInfo(activeChar, receiver);
Сообщений: 18
Тем: 0
Зарегистрирован: Jan 2015
Репутация:
-4
is work thx very much Bonux ^^
Сообщений: 1,065
Тем: 20
Зарегистрирован: Mar 2010
Репутация:
3,855
Ищу инфу по инстансу Зал Предсказаний (id 255)
Это инстанс из квеста на 3 освобождение у атреек (85 уровень)
собственно говоря ищу координаты телепорта туда и что за мобы там должны быть, их имена.
Сообщений: 202
Тем: 2
Зарегистрирован: Jun 2008
Репутация:
783
Gaikotsu Написал:Ищу инфу по инстансу Зал Предсказаний (id 255)
Это инстанс из квеста на 3 освобождение у атреек (85 уровень)
собственно говоря ищу координаты телепорта туда и что за мобы там должны быть, их имена.
Код: <!DOCTYPE list SYSTEM "instances.dtd">
<!--AUTHOR: Bonux-->
<list>
<!--Wind's of Fate: Choices-->
<instance id="255" name="Chamber of Prophecies" maxChannels="20" collapseIfEmpty="1" timelimit="30" dispelBuffs="false" respawn="60">
<level min="85" max="200"/>
<return loc="-78696 251000 -2998"/>
<teleport loc="-88504 186552 -10476"/>
<remove itemId="0" count="0" necessary="false"/>
<give itemId="0" count="0"/>
<quest id="10753"/>
<reuse resetReuse="* * * * *" setUponEntry="true" sharedReuseGroup="0"/>
<geodata map="17_23"/>
<spawns>
<group name="q10753_16_instance_halter_1" spawned="true"/>
<group name="q10753_16_instance_halter_2" spawned="false"/>
<group name="q10753_16_instance_grail" spawned="false"/>
<group name="q10753_16_instance_wizard" spawned="false"/>
<group name="wof_room1" spawned="false"/>
<group name="wof_room2" spawned="false"/>
<group name="wof_room2_1" spawned="false"/>
<group name="wof_room3" spawned="false"/>
<group name="wof_room3_2" spawned="false"/>
<group name="wof_room4" spawned="false"/>
</spawns>
<doors>
<door id="17230101" opened="false"/>
<door id="17230102" opened="false"/>
<door id="17230103" opened="false"/>
<door id="17230104" opened="false"/>
</doors>
</instance>
</list>
Сообщений: 1,672
Тем: 54
Зарегистрирован: Jun 2011
Репутация:
5,074
какой пакет отвечает за разговоры нпц голосом в лавках типа "мои товары самые лутшие в мире"
|