Перейти к содержанию
Авторизация  
Marvellous

Авто и игрок

Рекомендуемые сообщения

Marvellous

Всем привет! В чем может быть проблема,когда игрок выходит с сервера и его авто остается на сервере,т.е не пропадает,но когда он опять заходит на сервер,то появляется еще одно авто на том же месте и если пере заходить 100 раз,то и 100 авто появиться!

 

Вопрос/Просьба: Помогите,как сделать так что бы когда игрок вышел с сервера авто его пропало, а когда зашел то появилось!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

OnPlayerDisconnect и Connect сюда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

@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

Вот еще

stock ResetCarInfo(playerid)
{
	IDVEH[playerid]=-1;
	UseEnter[playerid] = false;
}

stock Punish(playerid)
{
	KickEx(playerid,112);
	ResetCarInfo(playerid);

Просил скинуть!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.