Вход

Просмотр полной версии : [Вопрос] Баг с машинами



Hineip
20.12.2014, 11:50
Всем привет, помогите пожалуйста, у меня в моде, если умереть в машине, то вылетает сервер, что делать?

L0ndl3m
20.12.2014, 15:26
Для начала паблик OnPlayerDeath выложите.

Hineip
20.12.2014, 15:57
public OnPlayerDeath(playerid, killerid, reason)
{
TextDrawShowForPlayer(playerid,WebTextDraw[0]);
TextDrawShowForPlayer(playerid,WebTextDraw[1]);
TextDrawShowForPlayer(playerid,WebTextDraw[2]);
TextDrawHideForPlayer(playerid, DRAP);
if(!AntiFakeKill[playerid]) return KickEx(playerid);
AntiFakeKill[playerid] = false;
ShowPlayerDialog(playerid,65535,DIALOG_STYLE_MSGBOX,"1","1","","");
SetPVarInt(playerid,"K_Times",GetPVarInt(playerid,"K_Times") + 1);
if(Spawned[playerid]) Spawned[playerid] = false;
else SendClientMessage(playerid, -1, "Вы кикнуты за Kill Flood"), Kick(playerid);
//==============================================================================
TeleportTime[playerid] = 3;
//==============================================================================
if(PlayerInfo[playerid][pJob] == 2)
{
if(gcontract[playerid] == 1)
{
Delete3DTextLabel(Meh3d[GetPlayerVehicleID(playerid)]);
gcontract[playerid] = 0;
}
}
if(IsAGang(playerid))
{
new namegang[24],namegangv[24];
if(FrakCD[PlayerInfo[playerid][pMember]])
{
for(new i = 0;i<130;i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
if(GZInfo[i][gFrakVlad] == PlayerInfo[playerid][pMember] && GZInfo[i][gNapad] == PlayerInfo[killerid][pMember]) ScoreZahvat[GZInfo[i][gNapad]]++;
else if(GZInfo[i][gNapad] == PlayerInfo[playerid][pMember] && GZInfo[i][gFrakVlad] == PlayerInfo[killerid][pMember]) ScoreZahvat[GZInfo[i][gFrakVlad]]++;
else return true;
switch(GZInfo[i][gNapad])
{
case 15: namegang = "Grove";
case 17: namegang = "Aztecas";
case 12: namegang = "Ballas";
case 18: namegang = "Rifa";
case 13: namegang = "Vagos";
}
switch(GZInfo[i][gFrakVlad])
{
case 15: namegangv = "Grove";
case 17: namegangv = "Aztecas";
case 12: namegangv = "Ballas";
case 18: namegangv = "Rifa";
case 13: namegangv = "Vagos";
}
new stringer[30];
format(stringer,sizeof(stringer), "~r~%s: ~w~%d",namegang,ScoreZahvat[GZInfo[i][gNapad]]);
TextDrawSetString(GangWar[0],stringer);
format(stringer,sizeof(stringer), "~g~%s: ~w~%d",namegangv,ScoreZahvat[GZInfo[i][gFrakVlad]]);
TextDrawSetString(GangWar[1],stringer);
if(killstat[GZInfo[playerid][gFrakVlad]] == 1 || killstat[PlayerInfo[playerid][pMember]] == 1)
{
SendDeathMessage(killerid, playerid, reason);
}
}
}
}
}
if(reason == 38)
{
if(PlayerInfo[playerid][pAdm] > 0) return true;
new warnn[128];
format(warnn, sizeof(warnn), "[Античит] %s[%d] кикнут `Убийство с минигана` (Код:CH||MG1)",PlayerInfo[killerid][pNames],killerid);
ABroadCast(0xfb7e52FF,warnn,2);
KickEx(killerid);
}
if(AlhambraDJ == true && AlhambraDJID == playerid) AlhambraDJ = false, AlhambraDJID = INVALID_PLAYER_ID;
if(JizzyDJ == true && JizzyDJID == playerid) JizzyDJ = false, JizzyDJID = INVALID_PLAYER_ID;
if(PlayerInfo[playerid][pHeadValue] > 0)
{
if(IsPlayerConnected(killerid))
{
if(PlayerInfo[killerid][pLeader] == 22 || PlayerInfo[killerid][pMember] == 22)
{
if(GoChase[killerid] == playerid)
{
new killer[MAX_PLAYER_NAME];
GetPlayerName(killerid, killer, sizeof(killer));
PlayerInfo[killerid][pCash] += PlayerInfo[playerid][pHeadValue];
format(stringcmd,128,"<< Хитман %s выполнил контракт и получил $%d >>",killer,PlayerInfo[playerid][pHeadValue]);
SendFamilyMessage(22, COLOR_YELLOW, stringcmd);
SendClientMessage(playerid, COLOR_LIGHTRED," * Вы были убиты хитманом по заказу!");
PlayerInfo[playerid][pHeadValue] = 0;
GotHit[playerid] = 0;
GetChased[playerid] = 999;
GoChase[killerid] = 999;
}
}
}
}
PlayerHealth[playerid] = 100;
SetPlayerHealthAC(playerid, PlayerHealth[playerid]);
zips[playerid] = 0;
enterbiz[playerid] = 0;
udar[playerid] = 0;
Delgun(playerid);
RemovePlayerAttachedObject(playerid,1);
RemovePlayerAttachedObject(playerid,2);
RemovePlayerAttachedObject(playerid,3);
RemovePlayerAttachedObject(playerid,4);
RemovePlayerAttachedObject(playerid,0);
arenda[playerid] = 0;
takephone[playerid] = 0;
gag[playerid] = 0;
usemats[playerid] = 0;
if(SelectChar[playerid] == 255)
{
SetPlayerSkin(playerid, OldSkin[playerid]);
PlayerInfo[playerid][pChar] = OldSkin[playerid];
SelectChar[playerid] = 0;
}
if(PlayerInfo[playerid][pJob] == 7) PlayerInfo[playerid][pJob] = 0;
//---------- Ганы
new weaponid;
new gunname[32];
GetWeaponName(weaponid, gunname, sizeof(gunname));
Delgun(playerid);
//-----------
PlayerInfo[playerid][pDrugtime] = 0;
PlayerInfo[playerid][pGunfbiTime] = 0;
forma[playerid] = 0;
proverkaforma[playerid] = 0;
new Float:px,Float:py,Float:pz;
gPlayerSpawned[playerid] = 0;
PlayerInfo[playerid][pLocal] = 255;
GetPlayerPos(playerid, px, py, pz);
DisablePlayerCheckpoint(playerid);
keys[playerid] = 0;
LiveOffer[playerid] = INVALID_PLAYER_ID;
TalkingLive[playerid] = INVALID_PLAYER_ID;
LiveOfferls[playerid] = INVALID_PLAYER_ID;
TalkingLivels[playerid] = INVALID_PLAYER_ID;
if(PlayerInfo[playerid][pMember] == 0 && PlayerInfo[playerid][pLeader] == 0) PlayerInfo[playerid][pHospital] = 1;
Tel[playerid] = INVALID_PLAYER_ID;
if(!IsACop(killerid)) PlayerInfo[killerid][pKills]+=1;
PlayerInfo[killerid][pZakonp] -= 0;
if(PlayerInfo[playerid][pMember] == 4) Medics -= 1;
if(PlayerInfo[playerid][pWanted] > 0)
{
if(IsACop(killerid))
{
PlayerInfo[playerid][pMestoJail] = 1;
if(PlayerInfo[playerid][pWanted] == 1)
{
PlayerInfo[playerid][pCash]-=1;
PlayerInfo[killerid][pCash]+=1;
format(stringcmd, sizeof(stringcmd), "~r~-$1", playerid);
GameTextForPlayer(playerid, stringcmd, 5000, 1);
SendClientMessage(playerid,COLOR_YELLOW,"Вас посадили в тюрьму на 600 секунд. Штраф 1 вирт");
SendClientMessage(killerid,COLOR_YELLOW,"Вы посадили преступника на 600 секунд. Премия 1 вирт");
PlayerInfo[playerid][pWanted] =0;
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailTime] = 600;
Delgun(playerid);
ResetPlayerWeapons(playerid);
}
else if(PlayerInfo[playerid][pWanted] == 2)
{
GiveMoney(killerid,0);
Delgun(playerid);
ResetPlayerWeapons(playerid);
PlayerInfo[playerid][pCash]-=2;
PlayerInfo[killerid][pCash]+=1;
format(stringcmd, sizeof(stringcmd), "~r~-$2", playerid);
GameTextForPlayer(playerid, stringcmd, 5000, 1);
SendClientMessage(playerid,COLOR_YELLOW,"Вас посадили в тюрьму на 1200 секунд. Штраф 2 вирт");
SendClientMessage(killerid,COLOR_YELLOW,"Вы посадили преступника на 1200 секунд. Премия 1 вирт");
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailTime] = 1200;
PlayerInfo[playerid][pWanted] =0;
}
else if(PlayerInfo[playerid][pWanted] == 3)
{
GiveMoney(killerid,0);
Delgun(playerid);
ResetPlayerWeapons(playerid);
PlayerInfo[playerid][pCash]-=3;
PlayerInfo[killerid][pCash]+=1;
format(stringcmd, sizeof(stringcmd), "~r~-$3", playerid);
GameTextForPlayer(playerid, stringcmd, 5000, 1);
SendClientMessage(playerid,COLOR_YELLOW,"Вас посадили в тюрьму на 1800 секунд. Штраф 3 вирт");
SendClientMessage(killerid,COLOR_YELLOW,"Вы посадили преступника на 1800 секунд. Премия 1 вирт");
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailTime] = 1800;
PlayerInfo[playerid][pWanted] =0;
}
else if(PlayerInfo[playerid][pWanted] == 4)
{
GiveMoney(killerid,0);
Delgun(playerid);
ResetPlayerWeapons(playerid);
PlayerInfo[playerid][pCash]-=4;
PlayerInfo[killerid][pCash]+=1;
format(stringcmd, sizeof(stringcmd), "~r~-$4", playerid);
GameTextForPlayer(playerid, stringcmd, 5000, 1);
SendClientMessage(playerid,COLOR_YELLOW,"Вас посадили в тюрьму на 2400 секунд. Штраф 4 вирт");
SendClientMessage(killerid,COLOR_YELLOW,"Вы посадили преступника на 2400 секунд. Премия 1 вирт");
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailTime] = 2400;
PlayerInfo[playerid][pWanted] =0;
}
else if(PlayerInfo[playerid][pWanted] == 5)
{
GiveMoney(killerid,0);
Delgun(playerid);
ResetPlayerWeapons(playerid);
PlayerInfo[playerid][pCash]-=5;
PlayerInfo[killerid][pCash]+=1;
format(stringcmd, sizeof(stringcmd), "~r~-$5", playerid);
GameTextForPlayer(playerid, stringcmd, 5000, 1);
SendClientMessage(playerid,COLOR_YELLOW,"Вас посадили в тюрьму на 3000 секунд. Штраф 5 вирт");
SendClientMessage(killerid,COLOR_YELLOW,"Вы посадили преступника на 3000 секунд. Премия 1 вирт.");
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailTime] = 3000;
PlayerInfo[playerid][pWanted] =0;
}
else if(PlayerInfo[playerid][pWanted] >= 6)
{
GiveMoney(killerid,0);
Delgun(playerid);
ResetPlayerWeapons(playerid);
PlayerInfo[playerid][pCash]-=6;
PlayerInfo[killerid][pCash]+=1;
format(stringcmd, sizeof(stringcmd), "~r~-$6", playerid);
GameTextForPlayer(playerid, stringcmd, 5000, 1);
SendClientMessage(playerid,COLOR_YELLOW,"Вас посадили в тюрьму на 3600 секунд. Штраф 6 вирт");
SendClientMessage(killerid,COLOR_YELLOW,"Вы посадили преступника на 3600 секунд. Премия 1 вирт.");
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailTime] = 3600;
PlayerInfo[playerid][pWanted] =0;
}
}
PlayerInfo[playerid][pWanted] = 0;
}
//----------------------------------[ Навыки ] -----------------------------------------------------------------------
if(!IsAArm(killerid)|| !IsACop(killerid))
{
if(PlayerInfo[killerid][pJailed] > 0 || !IsAArm(killerid)|| !IsACop(killerid)) {}
else SetPlayerExtra(killerid,255, "Убийство человека");
}
if(killerid != INVALID_PLAYER_ID)
{
if(GetPlayerState(killerid) == 2)
{
SendClientMessage(killerid, COLOR_LIGHTRED, "DB запрещено, в случае многократного нарушения вы будете забанены!");
PlayerInfo[killerid][pWanted] += 3;
//KickEx(killerid);
return true;
}
}
if(gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
{
DisablePlayerCheckpoint(playerid);
gPlayerCheckpointStatus[playerid] = 0;
}
new caller = Mobile[playerid];
if(caller != INVALID_PLAYER_ID)
{
if(caller != INVALID_PLAYER_ID)
{
SendClientMessage(caller, COLOR_GRAD2, "Связь оборвалась...");
CellTime[caller] = 0;
CellTime[playerid] = 0;
Mobile[caller] = INVALID_PLAYER_ID;
}
Mobile[playerid] = INVALID_PLAYER_ID;
CellTime[playerid] = 0;
}
if(IsAGang(killerid))
{
if(PlayerInfo[playerid][pMember] == 19 || PlayerInfo[playerid][pMember] == 3)
{
for(new i =0;i<sizeof(GZInfo);i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
forma[killerid] = 1;
PlayerInfo[playerid][pModel] = 252;
SendClientMessage(playerid, COLOR_YELLOW, "Вы потеряли армейскую форму");
SendClientMessage(killerid, COLOR_YELLOW2, "Вы cняли с армейца форму, введите /switchskin, чтобы переодеться");
format(stringcmd, sizeof(stringcmd), "%s потерял армейскую форму", PlayerInfo[playerid][pNames]);
SendFamilyMessage(19,COLOR_YELLOW2, stringcmd);
SendFamilyMessage(3,COLOR_YELLOW2, stringcmd);
SpawnPlayer(playerid);
}
}
}
}
if(IsAGang(killerid))
{
if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pMember] == 21)
{
for(new i =0;i<sizeof(GZInfo);i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
keys[killerid] += 1;
SendClientMessage(playerid, COLOR_YELLOW, "Вы потеряли ключи от камеры!");
SendClientMessage(killerid, COLOR_YELLOW, "Вы забрали у полицейского ключи от камеры!");
format(stringcmd, sizeof(stringcmd), "Полицейский %s потерял ключи от камеры", PlayerInfo[playerid][pNames]);
SendFamilyMessage(1,COLOR_YELLOW2, stringcmd);
SendFamilyMessage(2,COLOR_YELLOW2, stringcmd);
SendFamilyMessage(10,COLOR_YELLOW2, stringcmd);
SendFamilyMessage(21,COLOR_YELLOW2, stringcmd);
}
}
}
}
if(gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11) DisablePlayerCheckpoint(playerid),gPlayerCheckpointStatus[playerid] = 0;
DisablePlayerCheckpoint(playerid);
return true;
}

- - - Добавлено - - -

А, даже если вообще умереть, не только в машине,сервер выключается:C

L0ndl3m
20.12.2014, 17:16
Попробуйте для начала:

ShowPlayerDialog(playerid,65535,DIALOG_STYLE_MSGBOX,"1","1","","");
заменить на:

ShowPlayerDialog(playerid, 28267, DIALOG_STYLE_MSGBOX, "_", "_", "_", "");
В логах ничего необычного нет?

Hineip
20.12.2014, 17:30
Сделал, не помогло:C Теперь просто после смерти вылазит такой диалог, и так же крашит: http://rghost.ru/59828461.view
Логи чистые.

L0ndl3m
20.12.2014, 19:57
Пробуйте удалять код по кусочкам, удалили - проверили, и если работает, дело в данном куске кода, который был удалён. В нём и надо искать проблему.

Hineip
21.12.2014, 11:25
:C Ясно, спасибо за совет, главное, что вылетает если не тебя убьют, а если сам убьешься, взорвешься, разобьешься и т.п