PDA

Просмотр полной версии : [Вопрос] Лагает синхронизация



Lars Keller
18.11.2014, 00:23
Хай всем, и у меня проблема когда игрока убивают он долгое время не спавниться и может убивать других, в чем может быть проблема?
Какие колэбеки предоставить говорите, предоставлю.

Lars Keller
19.11.2014, 01:24
Дак что не кто не поможет?

~N1cE
19.11.2014, 01:27
Не думаю, что за час-два Вам ответят. Пару раз в день заходите в тему, авось ответил кто)
По теме: Я маппингом в основном занимаюсь :grin:
Sorry za offtop:pleasantry:

DeimoS
19.11.2014, 14:17
OnPlayerDeath и OnPlayerSpawn в студию

Lars Keller
19.11.2014, 19:06
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason);
PlayerInfo[playerid][Deaths] ++;
PlayerInfo[killerid][Kills] ++;
SetPVarInt(playerid,"Spawned",1);
SetPlayerScore(killerid,PlayerInfo[killerid][Kills]);
if(killerid == INVALID_PLAYER_ID) return 1;
else if(GetPlayerWeapon(killerid) != reason && (!IsPlayerInRangeOfPlayer(180.0, playerid, killerid) && GetPlayerWeapon(killerid) == 0)) return SendClientMessage(playerid,COLOR_RED, "Вы кикнуты по подозрению в читерстве {afafaf}[#002]"), GKick(playerid);
if(Zone[playerid] >= 2 && Zone[playerid] <= 5) SetPlayerHealth(killerid,100.0);
if(DuelID == playerid || DuelEnemy[DuelID] == playerid)
{
if(DuelID == playerid) SendClientMessage(DuelEnemy[DuelID],COLOR_OK,"Вы выиграли эту дуэль"),SendClientMessage(playerid,COLOR_ERROR,"Вы проиграли эту дуэль"),SpawnPlayer(DuelEnemy[DuelID]),SetPlayerHealth(DuelEnemy[DuelID],100.0);
else SendClientMessage(DuelID,COLOR_OK,"Вы выиграли эту дуэль"),SendClientMessage(playerid,COLOR_ERROR,"Вы проиграли эту дуэль"),SpawnPlayer(DuelID),SetPlayerHealth(DuelID,100.0);
SetPlayerVirtualWorld(DuelID,0);
SetPlayerVirtualWorld(DuelEnemy[DuelID],0);
DuelEnemy[DuelID] = INVALID_PLAYER_ID;
DuelID = INVALID_PLAYER_ID;
}
return 1;
}



public OnPlayerSpawn(playerid)
{
if(!GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid,COLOR_ERROR, "Произошла ошибка, спавн отменен. Сделайте скриншот (F8), и обратитесь к Администрации."),GKick(playerid);
SetPVarInt(playerid,"Spawned",0);
switch(Zone[playerid])
{
case 0:
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1689.5789,-1419.8320,84.8752);
SetPlayerVirtualWorld(playerid,0);
SetPlayerHealth(playerid,100.0);
}
case 1:
{
new rand = random(sizeof(DmDeagle));
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid, DmDeagle[rand][0], DmDeagle[rand][1], DmDeagle[rand][2]);
GivePlayerWeapon(playerid, 24, 1000);
SetPlayerHealth(playerid, 40.0);
SetPlayerVirtualWorld(playerid,1);
}
case 2:
{
new rand = random(sizeof(DmMulti));
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid, DmMulti[rand][0], DmMulti[rand][1], DmMulti[rand][2]);
GivePlayerWeapon(playerid, DMGun1[playerid], 500);
GivePlayerWeapon(playerid, DMGun2[playerid], 500);
GivePlayerWeapon(playerid, DMGun3[playerid], 500);
SetPlayerVirtualWorld(playerid,2);
}
case 3:
{
new rand = random(sizeof(DmMulti2));
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid, DmMulti2[rand][0], DmMulti2[rand][1], DmMulti2[rand][2]);
GivePlayerWeapon(playerid, DMGun1[playerid], 500);
GivePlayerWeapon(playerid, DMGun2[playerid], 500);
GivePlayerWeapon(playerid, DMGun3[playerid], 500);
SetPlayerVirtualWorld(playerid,3);
}
case 4:
{
new rand = random(sizeof(DmDeagle2));
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid, DmDeagle2[rand][0], DmDeagle2[rand][1], DmDeagle2[rand][2]);
GivePlayerWeapon(playerid, 24, 1000);
SetPlayerHealth(playerid, 100.0);
SetPlayerVirtualWorld(playerid,4);
}
case 5:
{
new rand = random(sizeof(DmDeagle2));
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid, DmDeagleShot[rand][0], DmDeagleShot[rand][1], DmDeagleShot[rand][2]);
GivePlayerWeapon(playerid, 24, 500);
GivePlayerWeapon(playerid, 25, 500);
SetPlayerHealth(playerid, 100.0);
SetPlayerVirtualWorld(playerid,5);
}
}
if(PlayerInfo[playerid][Jailed] == 1)
{
SetPlayerInterior(playerid, 6);
SetPlayerPos(playerid,264.1425,77.4712,1001.0391);
SetPlayerFacingAngle(playerid, 263.0160);
SetPlayerVirtualWorld(playerid,1001);
}
return 1;
}

DeimoS
19.11.2014, 19:27
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason);
PlayerInfo[playerid][Deaths] ++;
SetPVarInt(playerid,"Spawned",1);
if(DuelID == playerid || DuelEnemy[DuelID] == playerid)
{
if(DuelID == playerid) SendClientMessage(DuelEnemy[DuelID],COLOR_OK,"Вы выиграли эту дуэль"),SendClientMessage(playerid,COLOR_ERROR,"Вы проиграли эту дуэль"),SpawnPlayer(DuelEnemy[DuelID]),SetPlayerHealth(DuelEnemy[DuelID],100.0);
else SendClientMessage(DuelID,COLOR_OK,"Вы выиграли эту дуэль"),SendClientMessage(playerid,COLOR_ERROR,"Вы проиграли эту дуэль"),SpawnPlayer(DuelID),SetPlayerHealth(DuelID,100.0);
SetPlayerVirtualWorld(DuelID,0);
SetPlayerVirtualWorld(DuelEnemy[DuelID],0);
DuelEnemy[DuelID] = INVALID_PLAYER_ID;
DuelID = INVALID_PLAYER_ID;
}
if(killerid == INVALID_PLAYER_ID) return 1;
if(GetPlayerWeapon(killerid) != reason && (!IsPlayerInRangeOfPlayer(180.0, playerid, killerid) && GetPlayerWeapon(killerid) == 0)) return SendClientMessage(playerid,COLOR_RED, "Вы кикнуты по подозрению в читерстве {afafaf}[#002]"), GKick(playerid);
PlayerInfo[killerid][Kills] ++;
SetPlayerScore(killerid,PlayerInfo[killerid][Kills]);
if(Zone[playerid] >= 2 && Zone[playerid] <= 5) SetPlayerHealth(killerid,100.0);
return 1;
}

public OnPlayerSpawn(playerid)
{
if(!GetPVarInt(playerid, "Logged")) return SendClientMessage(playerid,COLOR_ERROR, "Произошла ошибка, спавн отменен. Сделайте скриншот (F8), и обратитесь к Администрации."),GKick(playerid);
SetPVarInt(playerid,"Spawned",0);
switch(Zone[playerid])
{
case 0:
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1689.5789,-1419.8320,84.8752);
SetPlayerVirtualWorld(playerid,0);
SetPlayerHealth(playerid,100.0);
return 1;
}
case 1:
{
new rand = random(sizeof(DmDeagle));
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid, DmDeagle[rand][0], DmDeagle[rand][1], DmDeagle[rand][2]);
GivePlayerWeapon(playerid, 24, 1000);
SetPlayerHealth(playerid, 40.0);
SetPlayerVirtualWorld(playerid,1);
return 1;
}
case 2:
{
new rand = random(sizeof(DmMulti));
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid, DmMulti[rand][0], DmMulti[rand][1], DmMulti[rand][2]);
GivePlayerWeapon(playerid, DMGun1[playerid], 500);
GivePlayerWeapon(playerid, DMGun2[playerid], 500);
GivePlayerWeapon(playerid, DMGun3[playerid], 500);
SetPlayerVirtualWorld(playerid,2);
return 1;
}
case 3:
{
new rand = random(sizeof(DmMulti2));
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid, DmMulti2[rand][0], DmMulti2[rand][1], DmMulti2[rand][2]);
GivePlayerWeapon(playerid, DMGun1[playerid], 500);
GivePlayerWeapon(playerid, DMGun2[playerid], 500);
GivePlayerWeapon(playerid, DMGun3[playerid], 500);
SetPlayerVirtualWorld(playerid,3);
return 1;
}
case 4:
{
new rand = random(sizeof(DmDeagle2));
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid, DmDeagle2[rand][0], DmDeagle2[rand][1], DmDeagle2[rand][2]);
GivePlayerWeapon(playerid, 24, 1000);
SetPlayerHealth(playerid, 100.0);
SetPlayerVirtualWorld(playerid,4);
return 1;
}
case 5:
{
new rand = random(sizeof(DmDeagle2));
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid, DmDeagleShot[rand][0], DmDeagleShot[rand][1], DmDeagleShot[rand][2]);
GivePlayerWeapon(playerid, 24, 500);
GivePlayerWeapon(playerid, 25, 500);
SetPlayerHealth(playerid, 100.0);
SetPlayerVirtualWorld(playerid,5);
return 1;
}
}
if(PlayerInfo[playerid][Jailed] == 1)
{
SetPlayerInterior(playerid, 6);
SetPlayerPos(playerid,264.1425,77.4712,1001.0391);
SetPlayerFacingAngle(playerid, 263.0160);
SetPlayerVirtualWorld(playerid,1001);
return 1;
}
return 1;
}
И где pVar "Spawned" используется?

Lars Keller
19.11.2014, 19:40
И где pVar "Spawned" используется?

В проверках, например на выход с зоны.

DeimoS
19.11.2014, 19:43
Проверяй вот этот кусок кода. Возможно тут срабатывает SetPlayerHealth каким-то образом