Marvellous 271 Опубликовано 30 сентября, 2017 Всем привет! В чем может быть проблема,когда игрок выходит с сервера и его авто остается на сервере,т.е не пропадает,но когда он опять заходит на сервер,то появляется еще одно авто на том же месте и если пере заходить 100 раз,то и 100 авто появиться! Вопрос/Просьба: Помогите,как сделать так что бы когда игрок вышел с сервера авто его пропало, а когда зашел то появилось! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SCRIPTMAN 358 Опубликовано 30 сентября, 2017 OnPlayerDisconnect и Connect сюда. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Marvellous 271 Опубликовано 30 сентября, 2017 @SCRIPTMAN, public OnPlayerDisconnect(playerid, reason) { if(IsPlayerNPC(playerid)) return 1; new hourss,minn,secc; gettime(hourss,minn,secc); format(PlayerInfo[playerid][pLastVizit],100,"%s / %02d:%02d:%02d",date("%dd.%mm.%yyyy",gettime()),hourss,minn,secc); format(totalstring,100,"UPDATE `accounts` SET `pLastVizit` = '%s' WHERE `name` = '%s'",PlayerInfo[playerid][pLastVizit],GN(playerid)); mysql_query(totalstring); PlayerKoster[playerid] = 0; OffCheater(playerid); NOWONLINE--; Delete3DTextLabel(DutyLabel[playerid]); if(koster[playerid] > 0) DestroyObject(koster[playerid]); if(Mcar[GetPVarInt(playerid, "LoadCar")] > 0) Mcar[GetPVarInt(playerid, "LoadCar")] = 0, DeletePVar(playerid, "LoadCar"); KillTimer(PickupTimer[playerid]); // завершаем при выходе if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3); if(IsPlayerAttachedObjectSlotUsed(playerid, 4)) RemovePlayerAttachedObject(playerid, 4); PlayerB[playerid] = 0; if (PlayerInfo[playerid][pRoadblock] != 0) { RemoveRoadblock(playerid); } //=========== for(new i = 0; i < 4; i++) { PlayerTextDrawDestroy(playerid, GreenZoneText[playerid][i]); GreenZoneText[playerid][i] = PlayerText:INVALID_TEXT_DRAW; } //=========== new message[30]; switch(reason) { case 0: format(message,sizeof(message), "Обрыв связи(Краш)", message); case 1: format(message,sizeof(message), "Вышел", message); case 2: format(message,sizeof(message), "Кикнут", message); } format(totalstring, 300, "{FF8C00}[A] {DEB887}>> {696969}Игрок %s (ID: %d) покинул сервер. [IP: %s], [Причина: %s]", PlayerInfo[playerid][pSendername], playerid, PlayerInfo[playerid][pPlIP], message); SendAdminMessage(COLOR_GREY, totalstring); if(rent_Vehicle[playerid] > 0) { SetVehicleToRespawn(rent_Vehicle[playerid]); rent_moped[rent_Vehicle[playerid]] = 0; rent_Vehicle[playerid] = 0; } if(salonveh[playerid] > 0) { DestroyVehicleOP(salonveh[playerid]); salonveh[playerid] = 0; } if(GetPVarInt(playerid,"CREATEVEH") > 0) { DestroyVehicleOP(GetPVarInt(playerid,"CREATEVEH")); DeletePVar(playerid,"CREATEVEH"); } if(GetPVarInt(playerid,"PEREVOZ") > 0) { DestroyVehicleOP(GetPVarInt(playerid,"PEREVOZVEH")); DeletePVar(playerid,"PEREVOZ"); DeletePVar(playerid,"PEREVOZVEH"); DisablePlayerRaceCheckpoint(playerid); } if(PlayerInfo[playerid][cCarId] > 0) { Delete3DTextLabel(VehicleLabel[PlayerInfo[playerid][cCarId]]); DestroyVehicleOP(PlayerInfo[playerid][cCarId]); } if(PlayerLie[playerid]) { CheckBed(playerid); } if(GetPlayerCar(playerid)) { Delete3DTextLabel(VehicleLabel[GetPVarInt(playerid,"PlayerCar")]); DestroyVehicleOP(GetPVarInt(playerid,"PlayerCar")); DeletePVar(playerid,"PlayerCar"); } if(PlayerLogged[playerid]) SetPlayerInt(PlayerInfo[playerid][pSendername], "online", 0); SaveAccount(playerid); PlayerTextDrawDestroy(playerid, VehNazv[playerid]); PlayerTextDrawDestroy(playerid, VehCost[playerid]); //TD TextDrawHideForPlayer(playerid,Clock);//Clock TextDrawHideForPlayer(playerid,logotip0); // TextDrawHideForPlayer(playerid,logotip1); TextDrawHideForPlayer(playerid,logotip2); for(new i = 0; i<13; i++){ PlayerTextDrawDestroy(playerid,Speedom[playerid][i]); } TextDrawHideForPlayer(playerid,ButtonLeft); TextDrawHideForPlayer(playerid,ButtonRight); TextDrawHideForPlayer(playerid,ButtonSelect); TextDrawHideForPlayer(playerid,ButtonCancel); TextDrawHideForPlayer(playerid,Clock); SetPVarInt(playerid, "SelectTextDrawEnter", 0); CancelSelectTextDraw(playerid); if(GetPVarInt(playerid, "ProductID") > 0) { DisablePlayerRaceCheckpoint(playerid); Delete3DTextLabel(ProductInfo[GetPVarInt(playerid, "ProductID")][pText3D]); ProductInfo[GetPVarInt(playerid, "ProductID")][pStatus] = false; DeletePVar(playerid, "ProductID"); } if(GetPVarInt(playerid, "FuelID") > 0) { DisablePlayerRaceCheckpoint(playerid); Delete3DTextLabel(FuelInfo[GetPVarInt(playerid, "FuelID")][pText3D]); FuelInfo[GetPVarInt(playerid, "FuelID")][pStatus] = false; DeletePVar(playerid, "FuelID"); } if(GetPVarInt(playerid, "PriceBus") > 0) { PlayerInfo[playerid][pPayCheck] += GetPVarInt(playerid, "BusMoney"); Delete3DTextLabel(BusText3D[playerid]); } if(GetPVarInt(playerid, "PriceTaxi") > 0) { PlayerInfo[playerid][pPayCheck] += GetPVarInt(playerid, "TaxiMoney"); Delete3DTextLabel(TaxiText3D[playerid]); } KillPlayerTimers(playerid); return true; } stock PreloadAnimLib(playerid, animlib[]) { return ApplyAnimation(playerid, animlib, "null", 0.0, 0, 0, 0, 1, 1); } forward ReloadAllAnims(playerid); public OnPlayerConnect(playerid) { if(baza > 0) { format(totalstring,sizeof(totalstring),"{F8E792}На сервере проходят {FD6E6E}тех.работы.\n\ {F8E792}Причина: Подключаем сайт к серверу\n\ {F8E792}Приносим свои извинения за неудобство!\n\ {F8E792}А пока добавляйте наш ЗОМБИ сервер: {CEF8B3}95.4\n\ {F8E792}За доп. информацией смотрите в группу ВК: {CEF8B3}"MODE_VK""); ShowPlayerDialog(playerid,19778,DIALOG_STYLE_MSGBOX,"{F51818}Внимание:",totalstring,"Хорошо",""); Kick(playerid); } addchet[playerid]=0; Cheatp[playerid][0] = 255; Cheatp[playerid][1] = 255; noclipdata[playerid][cameramode] = CAMERA_MODE_NONE; noclipdata[playerid][lrold] = 0; noclipdata[playerid][udold] = 0; noclipdata[playerid][mode] = 0; noclipdata[playerid][lastmove] = 0; noclipdata[playerid][accelmul] = 0.0; NOWONLINE++; TextDrawShowForPlayer(playerid,logotip0); // TextDrawShowForPlayer(playerid,logotip1); TextDrawShowForPlayer(playerid,logotip2); if(IsPlayerNPC(playerid)) return 1; new string[128]; for(new i=0;i<47;i++) Weapons[playerid][i]=0; if(playerid == INVALID_PLAYER_ID) return Kick(playerid); ResetStats(playerid); RemoveBuild(playerid); GetPlayerIp(playerid, PlayerInfo[playerid][pPlIP], 64); ReloadAnimsTimer[playerid]= -1; GetPlayerName(playerid,PlayerInfo[playerid][pSendername], MAX_PLAYER_NAME); SendClientMessage(playerid, COLOR_GREY, "Загрузка мода... Подождите пожалуйста..."); SendClientMessage(playerid, COLOR_GREY, "{005EFF}==========================================="); SendClientMessage(playerid, COLOR_GREY, "{005EFF}Основатель {FFFFFF} Andrei_Mishin"); SendClientMessage(playerid, COLOR_GREY, "{005EFF}Группа ВКонтакте {FFFFFF} vk.com/marvelousrp"); SendClientMessage(playerid, COLOR_GREY, "{005EFF}Приятной игры на нашем сервере!"); SendClientMessage(playerid, COLOR_GREY, "{005EFF}==========================================="); CheckBanList(playerid); SetPVarInt(playerid, "giveMeh", -1); RemovePlayerAttachedObject(playerid, 3); if( IsAIP(PlayerInfo[playerid][pSendername]) || IsADomen(PlayerInfo[playerid][pSendername]) ) { format(string,sizeof(string), "Внимание! Игрок %s имеет рекламный ник [IP: %s]", PlayerInfo[playerid][pSendername], PlayerInfo[playerid][pPlIP]); SendAdminMessage(COLOR_YELLOW, string); Kick(playerid); return true; } SetPlayerScore(playerid, 1); SetPlayerColor(playerid, 0xFFFFFFAA); OpustitRuki[playerid] = 0; Tipster[playerid] = 0; ZapretDice[playerid] = 0; KostiName[playerid] = 999; KostiMoney[playerid] = 0; dostup[playerid] = 0;//Админ панель ResetWeapon(playerid); CreateTextDraws(playerid); SetPVarInt(playerid, "AntiBreik", 500); SetPlayerColor(playerid, COLOR_GREY); format(totalstring, 128, "{FF8C00}[A] {DEB887}>> {32CD32}Игрок %s (ID: %d) зашел на сервер. [IP: %s]", PlayerInfo[playerid][pSendername], playerid, PlayerInfo[playerid][pPlIP]); SendAdminMessage(COLOR_GREEN, totalstring); ResetCarInfo(playerid); return true; } stock KillPlayerTimers(playerid) { KillTimer(AnimTimer[playerid]); KillTimer(KustTimer[playerid]); } public OnPlayerDisconnect(playerid, reason) { if(IsPlayerNPC(playerid)) return 1; new hourss,minn,secc; gettime(hourss,minn,secc); format(PlayerInfo[playerid][pLastVizit],100,"%s / %02d:%02d:%02d",date("%dd.%mm.%yyyy",gettime()),hourss,minn,secc); format(totalstring,100,"UPDATE `accounts` SET `pLastVizit` = '%s' WHERE `name` = '%s'",PlayerInfo[playerid][pLastVizit],GN(playerid)); mysql_query(totalstring); PlayerKoster[playerid] = 0; OffCheater(playerid); NOWONLINE--; Delete3DTextLabel(DutyLabel[playerid]); if(koster[playerid] > 0) DestroyObject(koster[playerid]); if(Mcar[GetPVarInt(playerid, "LoadCar")] > 0) Mcar[GetPVarInt(playerid, "LoadCar")] = 0, DeletePVar(playerid, "LoadCar"); KillTimer(PickupTimer[playerid]); // завершаем при выходе if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3); if(IsPlayerAttachedObjectSlotUsed(playerid, 4)) RemovePlayerAttachedObject(playerid, 4); PlayerB[playerid] = 0; if (PlayerInfo[playerid][pRoadblock] != 0) { RemoveRoadblock(playerid); } //=========== for(new i = 0; i < 4; i++) { PlayerTextDrawDestroy(playerid, GreenZoneText[playerid][i]); GreenZoneText[playerid][i] = PlayerText:INVALID_TEXT_DRAW; } //=========== new message[30]; switch(reason) { case 0: format(message,sizeof(message), "Обрыв связи(Краш)", message); case 1: format(message,sizeof(message), "Вышел", message); case 2: format(message,sizeof(message), "Кикнут", message); } format(totalstring, 300, "{FF8C00}[A] {DEB887}>> {696969}Игрок %s (ID: %d) покинул сервер. [IP: %s], [Причина: %s]", PlayerInfo[playerid][pSendername], playerid, PlayerInfo[playerid][pPlIP], message); SendAdminMessage(COLOR_GREY, totalstring); if(rent_Vehicle[playerid] > 0) { SetVehicleToRespawn(rent_Vehicle[playerid]); rent_moped[rent_Vehicle[playerid]] = 0; rent_Vehicle[playerid] = 0; } if(salonveh[playerid] > 0) { DestroyVehicleOP(salonveh[playerid]); salonveh[playerid] = 0; } if(GetPVarInt(playerid,"CREATEVEH") > 0) { DestroyVehicleOP(GetPVarInt(playerid,"CREATEVEH")); DeletePVar(playerid,"CREATEVEH"); } if(GetPVarInt(playerid,"PEREVOZ") > 0) { DestroyVehicleOP(GetPVarInt(playerid,"PEREVOZVEH")); DeletePVar(playerid,"PEREVOZ"); DeletePVar(playerid,"PEREVOZVEH"); DisablePlayerRaceCheckpoint(playerid); } if(PlayerInfo[playerid][cCarId] > 0) { Delete3DTextLabel(VehicleLabel[PlayerInfo[playerid][cCarId]]); DestroyVehicleOP(PlayerInfo[playerid][cCarId]); } if(PlayerLie[playerid]) { CheckBed(playerid); } if(GetPlayerCar(playerid)) { Delete3DTextLabel(VehicleLabel[GetPVarInt(playerid,"PlayerCar")]); DestroyVehicleOP(GetPVarInt(playerid,"PlayerCar")); DeletePVar(playerid,"PlayerCar"); } if(PlayerLogged[playerid]) SetPlayerInt(PlayerInfo[playerid][pSendername], "online", 0); SaveAccount(playerid); PlayerTextDrawDestroy(playerid, VehNazv[playerid]); PlayerTextDrawDestroy(playerid, VehCost[playerid]); //TD TextDrawHideForPlayer(playerid,Clock);//Clock TextDrawHideForPlayer(playerid,logotip0); // TextDrawHideForPlayer(playerid,logotip1); TextDrawHideForPlayer(playerid,logotip2); for(new i = 0; i<13; i++){ PlayerTextDrawDestroy(playerid,Speedom[playerid][i]); } TextDrawHideForPlayer(playerid,ButtonLeft); TextDrawHideForPlayer(playerid,ButtonRight); TextDrawHideForPlayer(playerid,ButtonSelect); TextDrawHideForPlayer(playerid,ButtonCancel); TextDrawHideForPlayer(playerid,Clock); SetPVarInt(playerid, "SelectTextDrawEnter", 0); CancelSelectTextDraw(playerid); if(GetPVarInt(playerid, "ProductID") > 0) { DisablePlayerRaceCheckpoint(playerid); Delete3DTextLabel(ProductInfo[GetPVarInt(playerid, "ProductID")][pText3D]); ProductInfo[GetPVarInt(playerid, "ProductID")][pStatus] = false; DeletePVar(playerid, "ProductID"); } if(GetPVarInt(playerid, "FuelID") > 0) { DisablePlayerRaceCheckpoint(playerid); Delete3DTextLabel(FuelInfo[GetPVarInt(playerid, "FuelID")][pText3D]); FuelInfo[GetPVarInt(playerid, "FuelID")][pStatus] = false; DeletePVar(playerid, "FuelID"); } if(GetPVarInt(playerid, "PriceBus") > 0) { PlayerInfo[playerid][pPayCheck] += GetPVarInt(playerid, "BusMoney"); Delete3DTextLabel(BusText3D[playerid]); } if(GetPVarInt(playerid, "PriceTaxi") > 0) { PlayerInfo[playerid][pPayCheck] += GetPVarInt(playerid, "TaxiMoney"); Delete3DTextLabel(TaxiText3D[playerid]); } KillPlayerTimers(playerid); return true; } stock PreloadAnimLib(playerid, animlib[]) { return ApplyAnimation(playerid, animlib, "null", 0.0, 0, 0, 0, 1, 1); } forward ReloadAllAnims(playerid); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Marvellous 271 Опубликовано 30 сентября, 2017 Вот еще stock ResetCarInfo(playerid) { IDVEH[playerid]=-1; UseEnter[playerid] = false; } stock Punish(playerid) { KickEx(playerid,112); ResetCarInfo(playerid); Просил скинуть! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты