Advertisement
Guest User

onplayerdisconnect

a guest
Jun 25th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.36 KB | None | 0 0
  1. public OnPlayerDisconnect(playerid, reason) {
  2.  
  3. if(PlayerInfo[playerid][pAdmin] >= 1)
  4. Iter_Remove(PlayerAdmins, playerid);
  5.  
  6. if(PlayerInfo[playerid][pHelper] >= 1)
  7. Iter_Remove(PlayerHelpers, playerid);
  8.  
  9. if(PlayerInfo[playerid][pYT] >= 1)
  10. Iter_Remove(PlayerYoutuber, playerid);
  11.  
  12. UpdateVar(playerid, "Status", 0);
  13. DestroyPlayerProgressBar(playerid, HudProgress[playerid][0]);
  14. DestroyPlayerProgressBar(playerid, HudProgress[playerid][1]);
  15.  
  16. Delete3DTextLabel(deathLabel[playerid]);
  17. Delete3DTextLabel(vipLabel[playerid]);
  18.  
  19.  
  20. if(IsValidVehicle(FaggioPl[playerid])) DestroyVehicle(FaggioPl[playerid]),FaggioPl[playerid]=INVALID_VEHICLE_ID;
  21.  
  22. if(playerObject[playerid] != 0) DestroyPlayerObject(playerid, playerObject[playerid]), playerObject[playerid] = 0;
  23. if(playerObject2[playerid] != 0) DestroyObject(playerObject2[playerid]), playerObject2[playerid] = 0;
  24.  
  25. new string[180], query[256];
  26. if(TradeID[playerid] != -1) {
  27. new id = TradeID[playerid];
  28. format(string, sizeof(string), "* %s s-a deconectat. Afacere anulata!", GetName(playerid));
  29. SCM(playerid, COLOR_GOLD, string);
  30. SCM(id, COLOR_GOLD, string);
  31. CancelSelectTextDraw(playerid);
  32. CancelSelectTextDraw(id);
  33. HideTradeItems(playerid);
  34. HideTradeTDs(id);
  35. }
  36. DeletePVar(playerid, "Santa");
  37. if(InGame[playerid] == 1) LeaveGame(playerid);
  38. if(InExamen[playerid] == 1) FailExamen(playerid);
  39. new count, names[180];
  40. if(PlayerInfo[playerid][pWantedLevel] != 0) {
  41. foreach(Player,i) {
  42. if(IsACop(i) && CrimInRange(50.0, playerid,i) && OnDuty[i] == 1) {
  43. count = 1;
  44. format(string, sizeof(string), "running suspect bonus!");
  45. GameTextForPlayer(i, string, 3000, 1);
  46. ConsumingMoney[i] = 1;
  47. GivePlayerCash(i, PlayerInfo[playerid][pWantedLevel] * 2000);
  48. Update(i, pCashx);
  49. UpdateFactionRaport(i, 0);
  50.  
  51. format(string, sizeof(string), "Ai primit $%d bonus pentru prinderea suspectului %s.", PlayerInfo[playerid][pWantedLevel] * 2000, GetName(playerid));
  52. SCM(i, COLOR_DBLUE, string);
  53. format(names, 256, "%s %s", names, GetName(i));
  54. }
  55. if(count == 1) {
  56. if(ProxDetectorS(30.0, i, playerid)) {
  57. format(string, sizeof(string), "* %s is now in jail thanks to: %s", GetName(playerid), names);
  58. SCM(i, COLOR_PURPLE, string);
  59. }
  60. }
  61. }
  62. }
  63. if(count == 1) {
  64. format(string, sizeof(string), "Dispatch: %s has been killed by No One and will be in jail for %d seconds, over.", GetName(playerid), (PlayerInfo[playerid][pWantedLevel])*(150));
  65. SendTeamMessage(1, COLOR_LIGHTBLUE, string);
  66. SendTeamMessage(2, COLOR_LIGHTBLUE, string);
  67. SendTeamMessage(3, COLOR_LIGHTBLUE, string);
  68.  
  69. GivePlayerCash(playerid, - PlayerInfo[playerid][pWantedLevel] * 2000);
  70. PlayerInfo[playerid][pWantedDeaths] += 1;
  71. PlayerInfo[playerid][pJailed] = 1;
  72. PlayerInfo[playerid][pJailTime] = (PlayerInfo[playerid][pWantedLevel])*(250);
  73. PlayCopSound();
  74. format(string, sizeof(string), "Because you got killed, you lost $%d and you will be taken to jail. You are no longer a criminal.", PlayerInfo[playerid][pJailTime], PlayerInfo[playerid][pWantedLevel] * 2000);
  75. SCM(playerid, COLOR_LIGHTRED, string);
  76.  
  77. TogglePlayerControllable(playerid, 0);
  78. SetTimerEx("UnFreezeStation", 1000, false, "i", playerid);
  79. PlayerInfo[playerid][pWantedLevel] = 0;
  80. SetPlayerWantedLevel(playerid, 0);
  81. Update(playerid,pWantedLevelx);
  82. Update(playerid,pJailedx);
  83. Update(playerid,pJailTimex);
  84. ClearCrime(playerid);
  85. }
  86.  
  87. new playerID = GetPVarInt(playerid, "OfferBy");
  88. foreach(Player, i) {
  89. if(IsPlayerConnected(i) && IsPlayerLogged[i] == 1) {
  90. if(GetPVarInt(i, "OfferBy") == playerid) {
  91. SCM(playerid, -1, "Afacerea a fost anulata!");
  92. SCM(i, -1, "Afacerea a fost anulata!");
  93. SetPVarInt(i, "OfferBy", -1);
  94. }
  95. if(TradePlayer[i] == playerid) {
  96. SCM(playerid, -1, "Afacerea a fost anulata!");
  97. SCM(i, -1, "Afacerea a fost anulata!");
  98. TradePlayer[i] = -1;
  99. }
  100. if(AcceptedReport[i] == playerid) {
  101. AcceptedReport[i] = -1;
  102. SCM(i, COLOR_YELLOW, "Conversatia a fost terminata! (quit)");
  103. }
  104. }
  105. if(IsPlayerConnected(Mobile[playerid])) {
  106. if(Mobile[playerid] < 255) {
  107. CellTime[Mobile[playerid]] = 0;
  108. CellTime[playerid] = 0;
  109. Mobile[Mobile[playerid]] = 255;
  110. SetPlayerSpecialAction(Mobile[playerid],SPECIAL_ACTION_STOPUSECELLPHONE);
  111. Mobile[playerid] = 255;
  112. PlayerInfo[playerid][pSpeaker] = 0;
  113. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
  114. }
  115. }
  116. if(targetfind[i] == playerid) {
  117. MDCOn[i] = -1;
  118. targetfind[i] = -1;
  119. UsedFind[i] = 0;
  120. DisablePlayerCheckpointEx(i);
  121. PlayerTextDrawHide(i, FindTD);
  122. }
  123. if(TaxiAccepted[i] < 999) {
  124. if(TaxiAccepted[i] == playerid) {
  125. TaxiAccepted[i] = 999;
  126. TaxiCallTime[i] = 0;
  127. PlayerTextDrawHide(i, FindTD);
  128. DisablePlayerCheckpointEx(i);
  129. }
  130. }
  131. if(HaveHelp[i] == playerid && PlayerInfo[playerid][pHelper] == 0 && HaveHelp[i] != -1) {
  132. format(string, sizeof(string), "AdmCmd: %s s-a deconectat in timp ce intrebarea lui era la %s.", GetName(playerid), GetName(i));
  133. SCM(i, COLOR_YELLOW, "Jucatorul cu intrebarea s-a deconectat.");
  134. HaveHelp[i] = -1;
  135. }
  136. if(HaveHelp[playerid] == i && PlayerInfo[playerid][pHelper] >= 1 && HaveHelp[playerid] != -1) {
  137. format(string, sizeof(string), "AdmCmd: Helper %s s-a deconectat in timp ce avea intrebarea lui %s.", GetName(playerid), GetName(i));
  138. if(GetPVarInt(playerid, "Cover") == 0) SendAdminMessage(COLOR_LIGHTRED, string, 1);
  139. SCM(i, COLOR_YELLOW, "Helper-ul care trebuia sa-ti raspunda s-a deconectat. Asteapta un raspuns de la un alt helper.");
  140. OnHelper[i] = 0;
  141. }
  142.  
  143. if(TradePlayer[i] == playerid) {
  144. TradePlayer[i] = -1;
  145. SCM(i, -1, "Oferta pentru vanzarea vehiculului a fost anulata!");
  146. }
  147. if(playerID != -1 && i == playerID) {
  148. SetPVarInt(i, "OfferBy", -1);
  149. SCM(i, -1, "Afacerea a fost anulata!");
  150. }
  151. if(Spectate[i] == playerid) {
  152. TogglePlayerControllable(i, 1);
  153. TogglePlayerSpectating(i, 0);
  154. SetPlayerInterior(i,Unspec[i][sPint]);
  155. PlayerInfo[i][pInt] = Unspec[i][sPint];
  156. PlayerInfo[i][pLocal] = Unspec[i][sLocal];
  157. Unspec[i][sLocal] = 255;
  158. gTeam[i] = PlayerInfo[i][pTeam];
  159. SetPlayerToTeamColor(i);
  160. SCM(i, COLOR_LIGHTRED, "Nu mai esti spectator!");
  161.  
  162. SpawnPlayer(i);
  163. Spectate[i] = 255;
  164. LastRecon[i] = 1;
  165. PlayerTextDrawHide(i, SpectatorTD);
  166. }
  167. }
  168. if(InRaceArena[playerid] == 1) LeaveRaceArena(playerid);
  169. if(AcceptedService[playerid] != -1) {
  170. AcceptedTaxiService[AcceptedService[playerid]] = 0;
  171. format(string, sizeof(string), "* Membrul %s s-a deconectat in timp ce avea comanda lui %s (%d). Aceasta comanda este acum disponibila membrilor.", GetName(playerid), GetName(AcceptedService[playerid]), AcceptedService[playerid]);
  172. SendFactionMessage(12, 0x2C6CBFFF, string);
  173. format(string, sizeof(string), "Ai renuntat la comanda acceptata!");
  174. SCM(playerid, COLOR_WHITE, string);
  175. format(string, sizeof(string), "Taximetristul %s s-a deconectat. Asteapta pana cand comanda ta va fi preluata de alti membri.", GetName(playerid));
  176. SCM(AcceptedService[playerid], COLOR_YELLOW, string);
  177. AcceptedService[playerid] = -1;
  178. targetfind[playerid] = -1;
  179. CP[playerid] = 0;
  180. DisablePlayerCheckpointEx(playerid);
  181. }
  182. if(TaxiDriver[playerid] != -1) {
  183. if(TaxiMoney[playerid] != 0) {
  184. UpdateFactionRaport(playerid, 0);
  185. AcceptedService[TaxiDriver[playerid]] = -1;
  186. foreach(Player, i) {
  187. if(IsNearPlayer(playerid, i)) {
  188. format(string, sizeof(string), "* %s a platit taximetristului %s suma de $%s pentru cursa efectuata.", GetName(playerid), GetName(TaxiDriver[playerid]), FormatNumber(TaxiMoney[playerid]));
  189. SCM(i, COLOR_PURPLE, string);
  190. }
  191. }
  192. TaxiMoney[playerid] = 0;
  193. }
  194. TaxiDriver[playerid] = -1;
  195. PlayerTextDrawHide(playerid, FareTD);
  196. KillTimer(TaxiTimer[playerid]);
  197. }
  198. if(GetPVarInt(playerid, "InLesson") != -1) {
  199. new id = GetPVarInt(playerid, "InLesson");
  200. format(string, sizeof(string), "Lectia a fost anulata deoarece %s s-a deconectat.", GetName(playerid));
  201. SCM(id, COLOR_LIGHTBLUE,string);
  202. SetPVarInt(id, "InLesson", -1);
  203. SetPVarInt(playerid, "InLesson", -1);
  204. }
  205. if(IsPlayerLogged[playerid] == 1) SetPlayerName(playerid, PlayerInfo[playerid][pUsername]);
  206. ADeathMessage(playerid, INVALID_PLAYER_ID, 201);
  207. if(ReportTimer[playerid] != 0) {
  208. KillTimer(ReportTimer[playerid]);
  209. ReportTimer[playerid] = 0;
  210. }
  211. SetPVarInt(playerid,"KilledFlood",0);
  212. if(PlayerHit[playerid] != -1) {
  213. UsedContract[PlayerHit[playerid]] = 0;
  214. PlayerHit[playerid] = -1;
  215. }
  216. if(TradeTime[playerid] != 0) KillTimer(TradeTime[playerid]), TradeTime[playerid] = 0;
  217. if(Contract[playerid] == 1) {
  218. foreach(Player, i) {
  219. if(PlayerHit[i] == playerid) {
  220. PlayerHit[i] = -1;
  221. PlayerTextDrawHide(i, FindTD);
  222. }
  223. }
  224. }
  225. if(JobWorking[playerid] == 1) {
  226. JobWorking[playerid] = 0;
  227. PlayerTextDrawHide(playerid, JobTD);
  228. if(JobVehicle[playerid] != 0) { DestroyVehicle(JobVehicle[playerid]); JobVehicle[playerid] = 0; }
  229. if(Trailer[playerid] != 0) { DestroyVehicle(Trailer[playerid]); Trailer[playerid] = 0; }
  230. PlayerTextDrawHide(playerid, InfosTD);
  231. DisablePlayerCheckpointEx(playerid);
  232. CP[playerid] = 0;
  233. JobVehicle[playerid] = 0;
  234. RemovePlayerAttachedObject(playerid, 2);
  235. DestroyWoodObject(playerid);
  236. }
  237. if(EditHouse[playerid] > 0) EditHouse[playerid] = 0;
  238. if(IsPlayerLogged[playerid] != 0) {
  239. format(query, sizeof(query),"UPDATE users SET `Muted`='0',`MuteTime`='0' WHERE `ID`='%d'", PlayerInfo[playerid][pSQLID]);
  240. mysql_query(SQL,query);
  241. Update(playerid, pCarLicSx);
  242. Update(playerid, pGunLicSx);
  243. Update(playerid, pBoatLicSx);
  244. Update(playerid, pFlyLicSx);
  245. Update(playerid, pNewbieMutex);
  246. OnPlayerDateUpdateX2(playerid);
  247. Update(playerid, pPayDayHadx);
  248. Update(playerid, pPayDayx);
  249. Update(playerid, pPayCheckx);
  250. Update(playerid, pFpunishx);
  251. Update(playerid, pConnectTimex);
  252. Update(playerid, pLawyerx);
  253. Update(playerid, pTowx);
  254. Update(playerid, pBank);
  255. Update(playerid, pCashx);
  256. Update(playerid, pRP);
  257. Update(playerid, pJailTimex);
  258. Update(playerid, pLevelx);
  259. Update(playerid, pRobx);
  260. mysql_format(SQL, query,128,"UPDATE `users` SET `Seconds`='%f' WHERE `ID`='%d' LIMIT 1",PlayerInfo[playerid][pSeconds],PlayerInfo[playerid][pSQLID]);
  261. mysql_tquery(SQL, query, "", "");
  262. }
  263. if(EditHouse[playerid] == 1) {
  264. DestroyDynamicObject(ObjectEdited[playerid]);
  265. EditHouse[playerid] = 0;
  266. }
  267. if(StartedSpray[playerid] == 1 || ClanDuty[playerid] == 1) {
  268. GraffitiInfo[StartedSpray2[playerid]][gfAttacked] = 0;
  269. StartedSpray[playerid] = 0;
  270. StartedSpray2[playerid] = 0;
  271. GraffitiInfo[StartedSprayOn[playerid]][gfAttacked] = 0;
  272. StartedSprayOn[playerid] = 0;
  273. ClanProces[playerid] = 0;
  274. ClanDuty[playerid] = 0;
  275. }
  276. if(JobWorking[playerid] == 1) {
  277. JobWorking[playerid] = 0;
  278. if(JobVehicle[playerid] != 0) { DestroyVehicle(JobVehicle[playerid]); JobVehicle[playerid] = 0; }
  279. if(Trailer[playerid] != 0) { DestroyVehicle(Trailer[playerid]); Trailer[playerid] = 0; }
  280. PlayerTextDrawHide(playerid, InfosTD);
  281. DisablePlayerCheckpointEx(playerid);
  282. CP[playerid] = 0;
  283. JobVehicle[playerid] = 0;
  284. }
  285. if(PlayerInfo[playerid][pAdmin] >= 1 && PlayerInfo[playerid][pAdmin] < 7) {
  286. switch(reason) {
  287. case 0: format(string, sizeof(string), "(HelloBot): Adminul %s s-a deconectat de pe server. (Crash)", GetName(playerid));
  288. case 1: format(string, sizeof(string), "(HelloBot): Adminul %s s-a deconectat de pe server. (Quit)", GetName(playerid));
  289. case 2: format(string, sizeof(string), "(HelloBot): Adminul %s s-a deconectat de pe server. (Kicked/Banned)", GetName(playerid));
  290. }
  291. SendAdminMessage(COLOR_LOGS, string, 1);
  292. }
  293. if(PlayerInfo[playerid][pMember] != 0 && PlayerInfo[playerid][pRank] > 0) {
  294. if(InWar[PlayerInfo[playerid][pMember]] == 1) {
  295. switch(reason) {
  296. case 0: format(string, sizeof(string), "(Factiune) %s s-a deconectat de pe server. War score: %d (Crash).",GetName(playerid), WarKills[playerid]-WarDeaths[playerid]);
  297. case 1: format(string, sizeof(string), "(Factiune) %s s-a deconectat de pe server. War score: %d (Quit).",GetName(playerid), WarKills[playerid]-WarDeaths[playerid]);
  298. case 2: format(string, sizeof(string), "(Factiune) %s s-a deconectat de pe server. War score: %d (Kicked/Banned).",GetName(playerid), WarKills[playerid]-WarDeaths[playerid]);
  299. }
  300. }
  301. else {
  302. switch(reason) {
  303. case 0: format(string, sizeof(string), "(Factiune) %s s-a deconectat de pe server. (Crash).",GetName(playerid));
  304. case 1: format(string, sizeof(string), "(Factiune) %s s-a deconectat de pe server. (Quit).",GetName(playerid));
  305. case 2: format(string, sizeof(string), "(Factiune) %s s-a deconectat de pe server. (Kicked/Banned).",GetName(playerid));
  306. }
  307. }
  308. SendFactionMessage(PlayerInfo[playerid][pMember], COLOR_CLIENT, string);
  309. }
  310. switch(reason) {
  311. case 0: {
  312. if(PaintType[playerid] == 0 && InRaceArena[playerid] == 0 && InGame[playerid] == 0 && InEvent[playerid] == 0 && GetPlayerInterior(playerid) == 0) {
  313. format(string, sizeof(string), "%s a iesit de pe server (Crash).",GetNameEx(playerid));
  314. new Float: Pos[3];
  315. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  316. format(query, sizeof(query), "UPDATE `users` SET `PosX`='%f', `PosY`='%f', `PosZ`='%f' WHERE `ID`='%d'", Pos[0], Pos[1], Pos[2], PlayerInfo[playerid][pSQLID]);
  317. mysql_query(SQL, query);
  318. UpdateVar(playerid, "Crash", 1);
  319. ProxDetector(20.0, playerid, string, COLOR_CLIENT,COLOR_CLIENT,COLOR_CLIENT,COLOR_CLIENT,COLOR_CLIENT);
  320. }
  321. }
  322. case 1: {
  323. format(string, sizeof(string), "%s a iesit de pe server (Quit).",GetNameEx(playerid));
  324. ProxDetector(20.0, playerid, string, COLOR_CLIENT,COLOR_CLIENT,COLOR_CLIENT,COLOR_CLIENT,COLOR_CLIENT);
  325. }
  326. case 2: {
  327. format(string, sizeof(string), "%s a iesit de pe server (Kicked/Banned).",GetNameEx(playerid));
  328. ProxDetector(20.0, playerid, string, COLOR_CLIENT,COLOR_CLIENT,COLOR_CLIENT,COLOR_CLIENT,COLOR_CLIENT);
  329. }
  330. }
  331.  
  332. new y,m,d,h,mi;
  333. getdate(y,m,d);
  334. gettime(h,mi);
  335. format(query, sizeof(query), "UPDATE users SET `lastOn`='%02d.%02d.%d %02d:%02d' WHERE `ID`='%d'",d,m,y,h,mi, PlayerInfo[playerid][pSQLID]);
  336. mysql_tquery(SQL, query, "", "");
  337.  
  338. KillTimer(TimerAtuPlayer[playerid]);
  339. KillTimer(login[playerid]);
  340. ResetVariables(playerid);
  341. return 1;
  342. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement