Привет Всем .
PROGRAMMATOR, Awwion Пожалуйста, помогите мне.
Все одновременно начинают игру не выбрасывает.
Когда играет несколько человека вы хотите присоединиться к игре бросает и дает эту ошибку.
Свернуть ↑
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(1054) : [void __thiscall CGameWeaponManager::LeaveStage(void)]] : CGameWeaponManager::LeaveStage Start
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(1057) : [void __thiscall CGameWeaponManager::LeaveStage(void)]] : LeaveStage Step No.1
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(1061) : [void __thiscall CGameWeaponManager::LeaveStage(void)]] : LeaveStage Step No.2
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(1066) : [void __thiscall CGameWeaponManager::LeaveStage(void)]] : LeaveStage Step No.3-1
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(1068) : [void __thiscall CGameWeaponManager::LeaveStage(void)]] : LeaveStage Step No.3-2
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(1070) : [void __thiscall CGameWeaponManager::LeaveStage(void)]] : LeaveStage Step No.3-3
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(1077) : [void __thiscall CGameWeaponManager::LeaveStage(void)]] : LeaveStage Step No.4
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(4183) : [void __thiscall CGameWeaponManager::__RemoveWeaponBGLoadInfo(void)]] : Queue is not empty
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(4212) : [void __thiscall CGameWeaponManager::__RemoveWeaponBGLoadInfo(void)]] : Queue Total Count = 2, Delete Count = 2
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(4221) : [void __thiscall CGameWeaponManager::__RemoveWeaponBGLoadInfo(void)]] : Finish wait. time = 0.000000
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(1079) : [void __thiscall CGameWeaponManager::LeaveStage(void)]] : LeaveStage Step No.5
[15:20:26][N][.\Weapon\GameWeaponManager.cpp(1082) : [void __thiscall CGameWeaponManager::LeaveStage(void)]] : CGameWeaponManager::LeaveStage End
[15:20:26][N][.\GameCharaBase.cpp(48) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 1.
[15:20:26][N][.\GameCharaBase.cpp(50) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 2.
[15:20:26][N][.\GameCharaBase.cpp(52) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 3.
[15:20:26][N][.\GameCharaBase.cpp(54) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 4.
[15:20:26][N][.\GameCharaBase.cpp(56) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 5.
[15:20:26][N][.\GameCharaBase.cpp(58) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 6.
[15:20:26][N][.\GameCharaBase.cpp(60) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 7.
[15:20:26][N][.\GameCharaBase.cpp(62) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 8.
[15:20:26][N][.\GameCharaBase.cpp(64) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 9.
[15:20:26][N][.\GameCharaBase.cpp(66) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 10.
[15:20:26][N][.\GameCharaBase.cpp(68) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 11.
[15:20:26][N][.\GameCharaBase.cpp(70) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 12.
[15:20:26][N][.\GameCharaBase.cpp(72) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 13.
[15:20:26][N][.\GameCharaBase.cpp(74) : [void __thiscall CGameCharaBase::Destroy(void)]] : #BT 14.
[15:20:28][N][.\Network\ClientTCPSocket.cpp(6842) : [void __thiscall ClientTCPSocket::_PacketParsingBattle(class i3NetworkPacket *)]] : [WARNING] Recv battle packet - Protocol ID(3338)
[15:20:28][N][.\Game.cpp(77) : [void __stdcall MyErrHandler(__w64 int)]] : [BUG_TRAP] Crash occured.. starting..
Code: XML
Свернуть ↑Развернуть ↓
Свернуть ↑
package game.network.protocol.game.ACK;
import game.network.protocol.*;
import java.util.*;
import core.models.*;
import core.utils.*;
public class BATTLE_RESPAWN_ACK extends GamePacketACK
{
protected Room r;
protected RoomSlot s;
protected int respawn;
protected int local_respawn;
public BATTLE_RESPAWN_ACK(Room r, RoomSlot s, int respawn, int local_respawn)
{
super(true);
this.r = r;
this.s = s;
this.respawn = respawn;
this.local_respawn = local_respawn;
}
@Override
public void writeImpl()
{
WriteD(s.id);
WriteD(respawn);
WriteD(local_respawn);
WriteD(s.equipment.weapon_primary);
WriteD(s.equipment.weapon_secundary);
WriteD(s.equipment.weapon_melee);
WriteD(s.equipment.weapon_grenade);
WriteD(s.equipment.weapon_special);
WriteD(s.equipment.unk_item);
WriteB(new byte[] { 0x64, 0x64, 0x64, 0x64, 0x64 });
WriteC(1);
WriteD(s.equipment.char_red);
WriteD(s.equipment.char_blue);
WriteD(s.equipment.char_head);
WriteD(s.equipment.char_beret);
WriteD(s.equipment.char_dino);
if (r.isDino(2))
{
List<Integer> pL = EssencialUtil.gI().DINOSSAUROS(r, r.dinossaur());
WriteC((pL.size() == 1 || r.isDino(0)) ? 0xFF : r.rexDino);
for (int slot : pL)
if (slot != r.rexDino && r.isDino(1) || r.isDino(0))
WriteC(slot);
for (int i = 0; i < (7 - pL.size()); i++)
WriteC(0xFF);
WriteC(0xFF);
WriteC(0xFF);
WriteC(0xFF);
pL = null;
}
}
}
Code: Java
Свернуть ↑Развернуть ↓
Свернуть ↑
package game.network.protocol.game.REQ;
import game.network.protocol.game.ACK.*;
import java.util.concurrent.*;
import core.enums.*;
import core.models.*;
import core.xml.*;
public class BATTLE_RESPAWN_REQ extends game.network.protocol.GamePacketREQ
{
protected Player p;
protected Room r;
protected RoomSlot s;
protected String texto = "";
protected int local_respawn;
public BATTLE_RESPAWN_REQ(int opcode)
{
super(opcode);
}
@Override
public void readImpl()
{
p = client.getPlayer();
r = client.getRoom();
if (r != null && p != null)
{
s = r.getRoomSlot(p.slot);
if (s != null && s.state == SlotState.BATTLE && r.rstate == RoomState.BATTLE)
{
if (s.armasUsadas == null)
s.armasUsadas = new ConcurrentHashMap<Long, Player>();
s.equipment = new PlayerEquipment();
s.equipment.weapon_primary = item_qty(ReadD());
s.equipment.weapon_secundary = item_qty(ReadD());
s.equipment.weapon_melee = item_qty(ReadD());
s.equipment.weapon_grenade = item_qty(ReadD());
s.equipment.weapon_special = item_qty(ReadD());
s.equipment.unk_item = ReadD();
if (s.id % 2 == 0)
{
s.equipment.char_red = item_qty(ReadD());
s.equipment.char_blue = ReadD();
}
else
{
s.equipment.char_red = ReadD();
s.equipment.char_blue = item_qty(ReadD());
}
s.equipment.char_head = item_qty(ReadD());
s.equipment.char_beret = item_qty(ReadD());
s.equipment.char_dino = item_qty(ReadD());
s.killMessage = FragValues.NONE;
s.lastKillState = 0;
s.oneTimeKills = 0;
s.repeatLastState = false;
s.dinoOnLife = 0;
s.lastFrag = 0;
r.respawn++;
local_respawn = r.isGhostMode(0) ? s.respawn++ : r.rodadas;
switch (r.allWeapons)
{
case 42:
case 43:
case 46:
case 47:
{
if ((s.equipment.weapon_primary / 100000) != 3000)
s.equipment.weapon_primary = 300005003;
break;
}
case 74:
case 75:
case 78:
case 79:
{
if ((s.equipment.weapon_primary / 100000) != 4000)
s.equipment.weapon_primary = 400006001;
break;
}
}
}
}
}
@Override
public void runImpl()
{
if (r != null && p != null && s != null && r.rstate == RoomState.BATTLE)
{
for (int i = 0; i < 16; i++)
{
Player m = r.getPlayerBySlot(i);
if (m != null && r.getSlotState(i).ordinal() > 9)
m.connection.sendPacket(new BATTLE_RESPAWN_ACK(r, s, r.respawn, local_respawn));
}
if (texto.length() > 0)
sendPacket(new SERVER_MESSAGE_ANNOUNCE_ACK(texto));
}
}
public int item_qty(int item_id)
{
try
{
if (r.special != 6 && r.special != 9)
{
if (r.block())
{
ConcurrentHashMap<Integer, String> equips = CampXML.gI().equips;
if (equips.containsKey(item_id))
{
int slot = s.invent.readSlot(item_id);
if (slot >= 1 && slot <= 5)
{
if (texto.length() == 0)
texto = "Your equipment does not comply with the rules for rooms @Camp. Check you equipment.\n";
}
switch (slot)
{
case 1:
{
texto += " " + equips.get(item_id) + " \n";
return s.padrao.weapon_primary;
}
case 2:
{
texto += " " + equips.get(item_id) + " \n";
return s.padrao.weapon_secundary;
}
case 3:
{
texto += " " + equips.get(item_id) + " \n";
return s.padrao.weapon_melee;
}
case 4:
{
texto += " " + equips.get(item_id) + " \n";
return s.padrao.weapon_grenade;
}
case 5:
{
texto += " " + equips.get(item_id);
return s.padrao.weapon_special;
}
}
}
}
}
item_id = checkWeapon(item_id);
PlayerInventory item = p.buscarPeloItemId(item_id);
if (item != null)
{
if (item.equip == 1 && !s.armasUsadas.containsKey(item.object))
{
s.armasUsadas.put(item.object, p);
item.count--;
if (item.count > 0)
{
p.connection.sendPacket(new INVENTORY_ITEM_UPDATE_ACK(item));
p.updateCountAndEquip(item);
}
else
{
if (!s.armasExcluir.contains(item))
s.armasExcluir.add(item);
else
{
for (PlayerInventory iv : s.armasExcluir)
{
if (iv.object == item.object)
{
iv = item;
break;
}
}
}
}
}
}
}
catch (Exception e)
{
}
return item_id;
}
public int checkWeapon(int item_id)
{
if (item_id != 0)
{
int slot = item_id / 100000;
for (PlayerInventory it : p.inventario.values())
{
if (it.item_id == item_id)
return item_id;
}
if (slot == 1000 || slot == 2000)
return 0; //Retorna arma nenhuma
else if (slot == 3000)
return 300005003; //SSG669
else if (slot == 4000)
return 400006001; //870MCS
else if (slot == 6010)
return 601002003; //K-5
else if (slot == 7020)
{
if (r.isPorrada)
return 702023001; //Barefirst
else
return 702001001; //M-7
}
else if (slot == 8030)
return 803007001; //K-400
else if (slot == 9040)
return 904007002; //Smoke
else if (slot == 10010)
{
if (p.slot % 2 == 0)
return 1001001005; //Red Bulls
else
return 1001002006; //Acid Pol
}
else if (slot == 11020)
return 1102003001; //Capacete Bбsico
else if (slot == 11030)
return 0; //Retorna boina nenhuma
else if (slot == 10060)
return 1006003041; //Raptor
}
return item_id;
}
Code: Java
Свернуть ↑Развернуть ↓