Advertisement
IsraelHenrique

OnPlayerDisconnect

Jan 27th, 2018
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 15.50 KB | None | 0 0
  1. public OnPlayerDisconnect(playerid, reason)
  2. {
  3.     if(InfoSkate[playerid][sActive])InfoSkate[playerid][sActive] = false, DestroyObject(InfoSkate[playerid][sSkate]), RemovePlayerAttachedObject(playerid,INDEX_SKATE);
  4.     if(jUx[playerid]) jUx[playerid] = false, DestroyDynamicObject(PMLixo[playerid]);
  5.     if(jAF[playerid]) jAF[playerid] = false;
  6.    
  7.     KillTimer(PaydayDesbug[playerid]);
  8.     DarCash[playerid] = 0;
  9.     Missao[playerid] = 0;
  10.     if(Pinchando[playerid]) Pinchando[playerid] = false;
  11.     Delete3DTextLabel(TDPlayer[playerid]);
  12.     PlayerTextDrawDestroy(playerid, jInfoLevel[playerid]);
  13.     PlayerTextDrawDestroy(playerid, jTDXP[playerid]);
  14.     DestroyProgressBar(jBarXP[playerid]);
  15.  
  16.  
  17.     if(TemPickup[playerid] == true)
  18.     {
  19.         for(new f=0; f<NumeroPickups; f++) DestroyDynamicPickup(PlayerPickup[playerid][f]);
  20.         KillTimer(DestruirPickupIHS[playerid]);
  21.         TemPickup[playerid] = false;
  22.     }
  23.     if(jSirene[playerid] == true){
  24.         DestroyObject(SirenObject[playerid]);
  25.         jSirene[playerid] = false;
  26.     }
  27.  
  28.  
  29.     new VBString[80];
  30.     format(VBString, sizeof VBString, IPDUPLO, Player[playerid][IP]);
  31.     if(DOF2_FileExists(VBString))
  32.     {
  33.         DOF2_RemoveFile(VBString);
  34.         DOF2_SaveFile();
  35.     }
  36.     if(IsActive(SearchX1, playerid))
  37.         EachRemove(SearchX1, playerid);
  38.  
  39.     DestruirTDInicio(playerid);
  40.  
  41.     if(OlhandoIHS[playerid]) OlhandoIHS[playerid] = false;
  42.  
  43.     if(EnqueteAberta2[playerid] == true) EnqueteAberta2x = false, cmd_fechar_e(playerid);
  44.  
  45.     switch(reason)
  46.     {
  47.         case 0: format(VBString, sizeof(VBString), "** %s saiu do servidor com %.2f de vida (Crash/Conexão).", GetPlayerNameEx(playerid), VBPlayer[playerid][vbVida]);
  48.         case 1: format(VBString, sizeof(VBString), "** %s saiu do servidor com %.2f de vida (Conta Própria).", GetPlayerNameEx(playerid), VBPlayer[playerid][vbVida]);
  49.         case 2: format(VBString, sizeof(VBString), "** %s saiu do servidor com %.2f de vida (Kikado/Banido).", GetPlayerNameEx(playerid), VBPlayer[playerid][vbVida]);
  50.     }
  51.  
  52. /*
  53.     new Float:Vida;
  54.     GetPlayerHealth(playerid,Vida);
  55.     Player[id][CadeiaAdmin] = true;
  56.  
  57.     Player[id][pPreso][3] = 1;
  58.     Player[id][pTempoPreso] = 60*tmp2;
  59.  
  60. */
  61.     GetPlayerPos(playerid, VBPlayer[playerid][UltimaPos][0], VBPlayer[playerid][UltimaPos][1], VBPlayer[playerid][UltimaPos][2]);
  62.  
  63.     each(Players->new i)
  64.         if(Player[i][pLogged] && !IsPlayerNPC(i))
  65.             if(IsPlayerInRangeOfPoint(i, 20.0, VBPlayer[playerid][UltimaPos][0], VBPlayer[playerid][UltimaPos][1], VBPlayer[playerid][UltimaPos][2]))
  66.                 SendClientMessage(i, COR_ROXO, VBString);
  67.  
  68. // ============== SISTEMA DE CF ==============
  69.     if(Player[playerid][ppCF]) {
  70.  
  71.         new file[60];
  72.         new Float:jvida, Hour, Minute, Second, Year, Month, Day;
  73.         GetPlayerHealth(playerid, jvida);
  74.         gettime(Hour, Minute, Second);
  75.         getdate(Year, Month, Day);
  76.         format(file, sizeof(file), CONTAS, GetPlayerNameEx(playerid));
  77.  
  78.         DOF2_SetFloat(file, "VidaCF", jvida);
  79.         format(StringIHS, sizeof(StringIHS), "%02d/%02d/%d", Day, Month, Year);
  80.         DOF2_SetString(file, "DataCF", StringIHS);
  81.         format(StringIHS, sizeof(StringIHS), "%02d:%02d:%02d", Hour, Minute, Second);
  82.         DOF2_SetString(file, "HoraCF",  StringIHS);
  83.         print("Entrou 2");
  84.         switch(reason)
  85.         {
  86.             case 0: DOF2_SetString(file, "SaidaCF", "Crash/Conexão");
  87.             case 1: DOF2_SetString(file, "SaidaCF", "Conta Própria");
  88.             case 2: DOF2_SetString(file, "SaidaCF", "Kickado/Banido");
  89.         }
  90.         DOF2_SaveFile();
  91.     }
  92.  
  93. // =================================================================
  94.     if(CFProposta[Player[playerid][pTorcida]] == playerid)
  95.     {
  96.         CFProposta[Player[playerid][pTorcida]] = -1;
  97.         SendFormattedMessageToAll(0xE11D36BB, "[CF] %s(%s) saiu do servidor e não aceitou o desafio da %s.", GetPlayerNameEx(playerid),Torcidas[Player[playerid][pTorcida]][Sigla], Torcidas[Player[NoCF[playerid]][pTorcida]][Sigla]);
  98.         CancelarCF(NoCF[NoCF[playerid]], NoCF[playerid], playerid);
  99.         NoCF[playerid] = -1;
  100.     }
  101.  
  102.     if(NoCF[playerid] != -1)
  103.     {
  104.         new cfid = GetCFID(playerid), IDBug;
  105.         if(Confronto[cfid][cfTipo] != 0)
  106.         {
  107.             if(Confronto[cfid][IDT1] == Player[playerid][pTorcida])
  108.             {
  109.                 Confronto[cfid][qtdT1]--;
  110.                 format(VBString, sizeof(VBString), "[CF] %s foi desconectado no CF. %d %s x %d %s restantes.", GetPlayerNameEx(playerid), Confronto[cfid][qtdT1], Torcidas[Player[playerid][pTorcida]][Sigla], Confronto[cfid][qtdT2], Torcidas[Confronto[cfid][IDT2]][Sigla]);
  111.                 for(new v; v < CF_QTD; v++)
  112.                 {
  113.                     if(Confronto[cfid][IDsT1][v] == playerid)
  114.                     {
  115.                         Confronto[cfid][IDsT1][v] = -1;
  116.                         break;
  117.                     }
  118.                     else if(Confronto[cfid][IDsT1][v] != -1)
  119.                         IDBug = Confronto[cfid][IDsT1][v];
  120.                 }
  121.             }
  122.             else
  123.             {
  124.                 Confronto[cfid][qtdT2]--;
  125.                 format(VBString, sizeof(VBString), "[CF] %s foi desconectado no CF. %d %s x %d %s restantes.", GetPlayerNameEx(playerid), Confronto[cfid][qtdT2], Torcidas[Player[playerid][pTorcida]][Sigla], Confronto[cfid][qtdT1], Torcidas[Confronto[cfid][IDT1]][Sigla]);
  126.                 for(new v; v < CF_QTD; v++)
  127.                 {
  128.                     if(Confronto[cfid][IDsT2][v] == playerid)
  129.                     {
  130.                         Confronto[cfid][IDsT2][v] = -1;
  131.                         break;
  132.                     }
  133.                     else if(Confronto[cfid][IDsT2][v] != -1)
  134.                         IDBug = Confronto[cfid][IDsT2][v];
  135.                 }
  136.             }
  137.  
  138.             MensagemLocal(playerid, -1, VBString, 20);
  139.             if(Confronto[cfid][qtdT1] == 0)
  140.                 EncerrarCF(cfid, playerid, IDBug, 2);
  141.             else if(Confronto[cfid][qtdT2] == 0)
  142.                 EncerrarCF(cfid, playerid, IDBug, 1);
  143.         }
  144.         NoCF[playerid] = -1;
  145.     }
  146.  
  147.     each(Players->new i)
  148.     {
  149.         if(Entrou4Fun[i] == 1)
  150.         {
  151.             switch(reason)
  152.             {
  153.                 case 0: format(VBString, sizeof(VBString), "%s {FFFFFF}saiu do Deathmatch. {33AAFF}Motivo: Crash/Conexão.", GetPlayerNameEx(playerid));
  154.                 case 1: format(VBString, sizeof(VBString), "%s {FFFFFF}saiu do Deathmatch. {33AAFF}Motivo: Conta Própria.", GetPlayerNameEx(playerid));
  155.                 case 2: format(VBString, sizeof(VBString), "%s {FFFFFF}saiu do Deathmatch. {33AAFF}Motivo: Kikado/Banido.", GetPlayerNameEx(playerid));
  156.             }
  157.             SendClientMessage(i, COR_PRINCIPAL, VBString);
  158.         }
  159.         if(CP[i] == 1)
  160.         {
  161.             if(Player[i][Localizando] == playerid)
  162.             {
  163.                 cmd_localizar(i, "off");
  164.  
  165.                 SendFormattedMessage(i, 0x3737FF96, "[SERVER] O suspeito %s desconectou-se do servidor.", GetPlayerNameEx(playerid));
  166.             }
  167.         }
  168.     }
  169.     if(NoBaile[playerid]) NoBaile[playerid] = false, NumeroBaile[0]--, Player[playerid][EscutandoMusica] = false, StopAudioStreamForPlayer(playerid);
  170.  
  171.     if(Player[playerid][IHSVSCriado])
  172.     {
  173.         TotalIHSVS[PegarIDTotal[playerid]] = 0;
  174.         each(Players->new i)
  175.         {
  176.             if(IsPlayerInRangeOfPoint(i, DistanciaIHSVS, CorXIHS[PegarIDTotal[playerid]], CorYIHS[PegarIDTotal[playerid]], CorZIHS[PegarIDTotal[playerid]]))
  177.             {
  178.                 StopAudioStreamForPlayer(i);
  179.                 ChegouPerto[i] = 0;
  180.             }
  181.         }
  182.         CapturarSom[PegarIDTotal[playerid]] = "";
  183.         DestruirObjetos(playerid);
  184.         VehicleInfo[Player[playerid][IHSVSCriado]][TrancadoVS] = false;
  185.         CorXIHS[PegarIDTotal[playerid]] = CorYIHS[PegarIDTotal[playerid]] = CorZIHS[PegarIDTotal[playerid]] = 0;
  186.         Delete3DTextLabel(LabelIHSVS[Player[playerid][IHSVSCriado]]);
  187.         DestroyVehicle(Player[playerid][IHSVSCriado]);
  188.         Player[playerid][IHSVSCriado] = 0;
  189.     }
  190.  
  191.     if(Entrou4Fun[playerid] == 6)
  192.     {
  193.         for(new v; v != 20; v++)
  194.         {
  195.             if(NoDerby[v] == playerid)
  196.             {
  197.                 Entrou4Fun[playerid] = 0;
  198.                 DerbyCount--;
  199.                 SetVehicleVirtualWorld(DerbyCar[v], 54);
  200.                 NoDerby[v] = -1;
  201.                 format(VBString, sizeof(VBString), "{33AAFF}[4FUN]:{F8F8FF} %s foi eliminado. %d adversários restantes.", GetPlayerNameEx(playerid), DerbyCount);
  202.                 Mensagem4Fun(6, -1, VBString);
  203.                 break;
  204.             }
  205.         }
  206.         if(DerbyCount == 1)
  207.         {
  208.             for(new v; v != 20; v++)
  209.                 if(NoDerby[v] != -1)
  210.                 {
  211.                     FinalizarDerby(NoDerby[v]);
  212.                     v = 20;
  213.                 }
  214.         }
  215.     }
  216.  
  217.     if(!Player[playerid][pLogged])
  218.         return 0;
  219.  
  220.     Player[playerid][pCF] = 0;
  221.  
  222.     /*if(Player[playerid][pXOne])
  223.     {
  224.         for(new v; v != sizeof TDX1; v++)
  225.             TextDrawHideForPlayer(playerid, TDX1[v]);
  226.         for(new v; v != sizeof TDX1; v++)
  227.             TextDrawHideForPlayer(Player[playerid][DuelID], TDX1[v]);
  228.  
  229.         SendFormattedMessage(Player[playerid][DuelID], 0x3737FF96, "[X1] Você venceu o player %s no 'mano a mano'.", GetPlayerNameEx(playerid));
  230.         SpawnPlayer(Player[playerid][DuelID]);
  231.         Player[playerid][DuelID] = INVALID_PLAYER_ID;
  232.     }*/
  233.  
  234.     if(Player[playerid][InDuel])
  235.     {
  236.         new type[26], tFile[64];
  237.         format(tFile, sizeof(tFile), TORCIDA_FILE, GetPlayerNameEx(Player[playerid][DuelID]));
  238.         DOF2_SetInt(tFile,"Materiais_Mes", DOF2_GetInt(tFile,"Materiais_Mes")+1);
  239.         if(Player[playerid][DuelInviteType] == 1)
  240.         {
  241.             type = "Camisa";
  242.             DOF2_SetInt(tFile,"Venceu_Camisa", DOF2_GetInt(tFile,"Venceu_Camisa")+1);
  243.             DOF2_SaveFile();
  244.             format(tFile, sizeof(tFile), TORCIDA_FILE, Player[playerid][pTorcida]);
  245.             DOF2_SetInt(tFile,"Perdeu_Camisa", DOF2_GetInt(tFile,"Perdeu_Camisa")+1);
  246.         }
  247.         else if(Player[playerid][DuelInviteType] == 2)
  248.         {
  249.             type = "Bermuda";
  250.             DOF2_SetInt(tFile,"Venceu_Bermuda", DOF2_GetInt(tFile,"Venceu_Bermuda")+1);
  251.             DOF2_SaveFile();
  252.             format(tFile, sizeof(tFile), TORCIDA_FILE, Player[playerid][pTorcida]);
  253.             DOF2_SetInt(tFile,"Perdeu_Bermuda", DOF2_GetInt(tFile,"Perdeu_Bermuda")+1);
  254.         }
  255.         DOF2_SaveFile();
  256.  
  257.         SendFormattedMessageToAll(0x3737FF96, "[APOSTA] O Player %s perdeu uma '%s' de sua torcida para %s.", GetPlayerNameEx(playerid), type, GetPlayerNameEx(Player[playerid][DuelID]));
  258.  
  259.         if(Player[playerid][DuelInviteType] == 1)
  260.         {
  261.             ++Player[Player[playerid][DuelID]][pPanos];
  262.             ++Player[playerid][pPanosPerdidos];
  263.             --Player[playerid][Camisas];
  264.         }
  265.         else if(Player[playerid][DuelInviteType] == 2)
  266.         {
  267.             ++Player[Player[playerid][DuelID]][BermudasTomada];
  268.             ++Player[playerid][BermudasPerdida];
  269.             --Player[playerid][Bermudas];
  270.         }
  271.  
  272.         Player[playerid][InDuel] = false;
  273.         Player[Player[playerid][DuelID]][InDuel] = false;
  274.  
  275.         SetPlayerVirtualWorld(playerid, 0);
  276.         SetPlayerVirtualWorld(Player[playerid][DuelID], 0);
  277.  
  278.         Player[playerid][DuelID] = INVALID_PLAYER_ID;
  279.         Player[Player[playerid][DuelID]][DuelID] = INVALID_PLAYER_ID;
  280.     }
  281.     Entrou4Fun[playerid] = 0;
  282.     new Float:health;
  283.     GetPlayerHealth(playerid,health);
  284.  
  285.     if(reason != 2)
  286.         if(GetDistanceBetweenPlayers(playerid, VBPlayer[playerid][Agressor]) <= 20 && health <= 30 )
  287.         {
  288.             if(Entrou4Fun[playerid] == 0)
  289.             {
  290.                 Player[VBPlayer[playerid][Agressor]][pMatou]++;
  291.                 Player[playerid][pMorreu]++;
  292.             }
  293.         }
  294.  
  295.     each(Players->new xd)
  296.     {
  297.         if(MaconhaOffer[xd] == playerid) { MaconhaOffer[xd] = 999; MaconhaPrice[xd] = MaconhaGram[xd] = 0; }
  298.         if(CocainaOffer[xd] == playerid) { CocainaOffer[xd] = 999; CocainaPrice[xd] = CocainaGram[xd] = 0; }
  299.     }
  300.     MaconhaPrice[playerid] = MaconhaGram[playerid] = 0;
  301.  
  302.     if(Player[playerid][pVip])
  303.         --Server[Vips];
  304.  
  305.     SalvarPlayer(playerid);
  306.  
  307.     Player[playerid][pRojao] = 0;
  308.     Player[playerid][gSpectateID] = INVALID_PLAYER_ID;
  309.     Player[playerid][CityAdmin] = Player[playerid][CityVip] = Player[playerid][VipAus] = Player[playerid][MensagemFK] = Player[playerid][LerPM] = Player[playerid][pLogged] = false;
  310.     Player[playerid][FilaRPT] = Player[playerid][FilaEscolta] = Player[playerid][FilaHELPER] = Player[playerid][FilaAdvogado] = Player[playerid][FilaAdmin] = Player[playerid][Reportslidos] = Player[playerid][RankDominiosOrg] = Player[playerid][RankDominiolsP] = Player[playerid][pProcurado] = 0;
  311.     Player[playerid][DelayGov] = false;
  312.     Player[playerid][DelayReport] = false;
  313.     Player[playerid][DuelInvite] = INVALID_PLAYER_ID;
  314.     Player[playerid][CityAdmin] = false;
  315.     Player[playerid][CityVip] = false;
  316.     Player[playerid][Arma2H] = false;
  317.     Player[playerid][ChatVip] = false;
  318.     Player[playerid][VipAus] = false;
  319.     Player[playerid][ChatOrg] = false;
  320.     Player[playerid][ChatTorcida] = false;
  321.     Player[playerid][BlockPM] = false;
  322.     Player[playerid][IrBlock] = false;
  323.     Player[playerid][GPS_Torcidas] = false;
  324.     Player[playerid][ComDuvida] = false;
  325.     Player[playerid][pArmaEvento] = false;
  326.  
  327.     for(new v; v != 2; v++)
  328.     {
  329.         Player[playerid][Privacidade][v] = true;
  330.         Player[playerid][Filtro][v] = true;
  331.     }
  332.  
  333.     Player[playerid][KitVip] = false;
  334.  
  335.     Player[playerid][HandsUP] = false;
  336.  
  337.     Player[playerid][HaveTaser] = false;
  338.     Player[playerid][pLogged] = false;
  339.     Player[playerid][LoggedPainel] = false;
  340.     Player[playerid][DelayPresente] = true;
  341.  
  342.     Player[playerid][pTorcida] = 0;
  343.  
  344.     Player[playerid][EmTrabalho] = false;
  345.     Player[playerid][pPreso][0] = Player[playerid][pPreso][1] = Player[playerid][pPreso][2] = Player[playerid][pPreso][3] = Player[playerid][Penitenciaria] = 0;
  346.  
  347.     if(Player[playerid][pBarreira] > 0)
  348.     {
  349.         DestroyObject(Player[playerid][pBarreira]);
  350.         Delete3DTextLabel(Text3D:Player[playerid][ObjetosLabel][0]);
  351.         Player[playerid][pBarreira] = 0;
  352.     }
  353.     if(Player[playerid][pBarricada] > 0)
  354.     {
  355.         DestroyDynamicObject(Player[playerid][pBarricadaO]);
  356.         Delete3DTextLabel(Text3D:Player[playerid][ObjetosLabel][0]);
  357.         Player[playerid][pBarricada] = false;
  358.     }
  359.     if(jPichacao[playerid]) {
  360.         jPichacao[playerid] = false;
  361.         DestroyObject(GrafiteIHS[playerid]);
  362.         Delete3DTextLabel(Text3D:Player[playerid][LabelPic]);
  363.     }
  364.     if(Player[playerid][pGrade] > 0)
  365.     {
  366.         DestroyDynamicObject(Player[playerid][pGrade]);
  367.         Delete3DTextLabel(Text3D:Player[playerid][ObjetosLabel][2]);
  368.         Player[playerid][pGrade] = 0;
  369.     }
  370.     if(Player[playerid][pCone] > 0)
  371.     {
  372.         DestroyDynamicObject(Player[playerid][pCone]);
  373.         Delete3DTextLabel(Text3D:Player[playerid][ObjetosLabel][3]);
  374.         Player[playerid][pCone] = 0;
  375.     }
  376.     if(Player[playerid][pPrego] > 0)
  377.     {
  378.         DeletarPrego(Player[playerid][pPrego]);
  379.         Delete3DTextLabel(Text3D:Player[playerid][ObjetosLabel][4]);
  380.         Player[playerid][pPrego] = 0;
  381.     }
  382.     Player[playerid][VehicleLocked] = 999999;
  383.     Player[playerid][LockVehicle] = 0;
  384.     if(Player[playerid][VehicleCreated] > 0)
  385.     {
  386.         VehicleInfo[Player[playerid][VehicleCreated]][Owner] = INVALID_PLAYER_ID;
  387.  
  388.         VehicleInfo[Player[playerid][VehicleCreated]][Private] = VehicleInfo[Player[playerid][VehicleCreated]][Locked] = VehicleInfo[Player[playerid][VehicleCreated]][Shared] = false;
  389.  
  390.         RemoveNeon(Player[playerid][VehicleCreated]);
  391.         DestroyVehicle(Player[playerid][VehicleCreated]);
  392.         Delete3DTextLabel(Text3D:Player[playerid][VehicleLabel]);
  393.         Player[playerid][VehicleCreated] = 0;
  394.  
  395.     }
  396.  
  397.     new Float:Pos[2][3], Float:Distance;
  398.     GetPlayerPos(playerid, Pos[0][0], Pos[0][1], Pos[0][2]);
  399.     each(Players->new x)
  400.     {
  401.         SetVehicleParamsForPlayer(Player[playerid][VehicleLocked], x, 0, 0);
  402.         if(Player[playerid][pLogged])
  403.         {
  404.             GetPlayerPos(x, Pos[1][0], Pos[1][1], Pos[1][2]);
  405.             Distance = (floatsqroot(floatpower(floatabs(floatsub(Pos[1][0],Pos[0][0])),2)+floatpower(floatabs(floatsub(Pos[1][1],Pos[0][1])),2)+floatpower(floatabs(floatsub(Pos[1][2],Pos[0][2])),2)));
  406.             if(Distance <= 20)
  407.                 if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(x))
  408.                     SendClientMessage(x, 0xFFFFD2AA, VBString);
  409.         }
  410.  
  411.         if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && Player[x][gSpectateID] == playerid)
  412.             AdvanceSpectate(x);
  413.     }
  414.  
  415.     if(reason == 0)
  416.         Server[Crashes] += 1;
  417.  
  418.     UnLoadArenaUFC(playerid);
  419.  
  420.     if(Player[playerid][Entrevista][0] || Player[playerid][Entrevista][1])
  421.     {
  422.         ThereIsEntrevista = false;
  423.  
  424.         each(Players->new i)
  425.         {
  426.             if(Player[i][Entrevista][0] || Player[i][Entrevista][1])
  427.             {
  428.                 Player[i][Entrevista][0] = Player[i][Entrevista][1] = false;
  429.                 SendFormattedMessage(i, COR_PRINCIPAL, "[ENTREVISTA] A entrevista foi encerrada porque o %s saiu do servidor.", GetPlayerNameEx(playerid));
  430.             }
  431.         }
  432.     }
  433.  
  434.     for(new i; jInfo:i < jInfo; jInfo:i++)
  435.         Player[playerid][jInfo:i] = 0;
  436.  
  437.     return 1;
  438. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement