[Pomoć] Provjera da li je igrač u kući


Započeo Jugoslavija.amx, Januar 05, 2015, 18:29:49 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:  NGRP
Detaljan opis problema: Treba napraviti da ovu komandu igrač moze koristiti samo kada je u kući, vidite na vrhu komande sam to pokušao ali ne radi, tj. kada upišem opet gledam tv
Dio provjere:
new i = PlayerInfo[playerid][pPosedovanjeKuce];
    if( (!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i]

Dio skripte:
CMD:watchtv(playerid, params[])
{
	new i = PlayerInfo[playerid][pPosedovanjeKuce];
    if( (!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ])) || WatchingTV[playerid] != 0)

		if(broadcasting == 0)
		{
			SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "* Nema nista na TV-u, izadji malo napolje igraj se sa ostalom djecom!");
			return 1;
		}

		new string[128];
		if(WatchingTV[playerid] == 0)
		{
			format(string, sizeof(string), "* %s uzima daljinski i pali tv", GetPlayerNameEx(playerid));
			ProxDetector(30.0, playerid, string, COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
			SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Kucaj opet /watchtv da prestanes gledati");
			BroadcastLastVW[playerid] = GetPlayerVirtualWorld(playerid);
			BroadcastLastInt[playerid] = GetPlayerInterior(playerid);
			GetPlayerPos(playerid, BroadcastFloats[playerid][1], BroadcastFloats[playerid][2], BroadcastFloats[playerid][3]);
			GetPlayerFacingAngle(playerid, BroadcastFloats[playerid][0]);

			WatchingTV[playerid] = 1;
			viewers++;
			UpdateSANewsBroadcast();

			TogglePlayerControllable(playerid, false);
			SetPlayerInterior(playerid, 1);
			SetPlayerVirtualWorld(playerid, 4225);
			SetPlayerPos(playerid, 639.2813,-11.8090,1111.4656);

			if(cameraangle == 0)
			{
				SetPlayerCameraPos(playerid, 635.6883,-11.1890,1108.6041);
				SetPlayerCameraLookAt(playerid, 641.3040,-12.2565,1108.1642);
			}
			else if(cameraangle == 1)
			{
				SetPlayerCameraPos(playerid, 637.9041,-8.3097,1108.9656);
				SetPlayerCameraLookAt(playerid, 640.9764,-14.7714,1107.9656);
			}
			else if(cameraangle == 2)
			{
				SetPlayerCameraPos(playerid, 638.6522,-15.6267,1108.9656);
				SetPlayerCameraLookAt(playerid, 640.7208,-9.5926,1107.2006);
			}
			else
			{
				SetPlayerCameraPos(playerid, 635.6883,-11.1890,1108.6041);
				SetPlayerCameraLookAt(playerid, 641.3040,-12.2565,1108.1642);
			}
		}
		else
		{
			TogglePlayerControllable(playerid, 0);
			GameTextForPlayer(playerid, "Ucitavanje objekata...", 4000, 5);
			SetPVarInt(playerid, "Loading..Interior", 1);
			SetTimerEx("SafeLoadObjects", 4000, 0, "d", playerid);
			SetPlayerPos(playerid,BroadcastFloats[playerid][1],BroadcastFloats[playerid][2],BroadcastFloats[playerid][3]);
			SetPlayerVirtualWorld(playerid, BroadcastLastVW[playerid]);
			PlayerInfo[playerid][pVW] = BroadcastLastVW[playerid];
			SetPlayerInterior(playerid, BroadcastLastInt[playerid]);
			PlayerInfo[playerid][pInt] = BroadcastLastInt[playerid];
			SetPlayerFacingAngle(playerid, BroadcastFloats[playerid][0]);
			SetCameraBehindPlayer(playerid);

			WatchingTV[playerid] = 0;
			viewers--;
			UpdateSANewsBroadcast();

			format(string, sizeof(string), "* %s uzima daljinski i gasi TV!", GetPlayerNameEx(playerid));
			ProxDetector(30.0, playerid, string, COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
		}


	return 1;
}

Neke slike: Nije potrebno

CMD:watchtv(playerid, params[])
{
	new i = PlayerInfo[playerid][pPosedovanjeKuce];
    //if( (!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ])) || WatchingTV[playerid] != 0)
        if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ])) return SCM (playerid, -1, "Niste u kuci !");

		if(broadcasting == 0)
		{
			SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "* Nema nista na TV-u, izadji malo napolje igraj se sa ostalom djecom!");
			return 1;
		}

		new string[128];
		if(WatchingTV[playerid] == 0)
		{
			format(string, sizeof(string), "* %s uzima daljinski i pali tv", GetPlayerNameEx(playerid));
			ProxDetector(30.0, playerid, string, COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
			SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Kucaj opet /watchtv da prestanes gledati");
			BroadcastLastVW[playerid] = GetPlayerVirtualWorld(playerid);
			BroadcastLastInt[playerid] = GetPlayerInterior(playerid);
			GetPlayerPos(playerid, BroadcastFloats[playerid][1], BroadcastFloats[playerid][2], BroadcastFloats[playerid][3]);
			GetPlayerFacingAngle(playerid, BroadcastFloats[playerid][0]);

			WatchingTV[playerid] = 1;
			viewers++;
			UpdateSANewsBroadcast();

			TogglePlayerControllable(playerid, false);
			SetPlayerInterior(playerid, 1);
			SetPlayerVirtualWorld(playerid, 4225);
			SetPlayerPos(playerid, 639.2813,-11.8090,1111.4656);

			if(cameraangle == 0)
			{
				SetPlayerCameraPos(playerid, 635.6883,-11.1890,1108.6041);
				SetPlayerCameraLookAt(playerid, 641.3040,-12.2565,1108.1642);
			}
			else if(cameraangle == 1)
			{
				SetPlayerCameraPos(playerid, 637.9041,-8.3097,1108.9656);
				SetPlayerCameraLookAt(playerid, 640.9764,-14.7714,1107.9656);
			}
			else if(cameraangle == 2)
			{
				SetPlayerCameraPos(playerid, 638.6522,-15.6267,1108.9656);
				SetPlayerCameraLookAt(playerid, 640.7208,-9.5926,1107.2006);
			}
			else
			{
				SetPlayerCameraPos(playerid, 635.6883,-11.1890,1108.6041);
				SetPlayerCameraLookAt(playerid, 641.3040,-12.2565,1108.1642);
			}
		}
		else
		{
			TogglePlayerControllable(playerid, 0);
			GameTextForPlayer(playerid, "Ucitavanje objekata...", 4000, 5);
			SetPVarInt(playerid, "Loading..Interior", 1);
			SetTimerEx("SafeLoadObjects", 4000, 0, "d", playerid);
			SetPlayerPos(playerid,BroadcastFloats[playerid][1],BroadcastFloats[playerid][2],BroadcastFloats[playerid][3]);
			SetPlayerVirtualWorld(playerid, BroadcastLastVW[playerid]);
			PlayerInfo[playerid][pVW] = BroadcastLastVW[playerid];
			SetPlayerInterior(playerid, BroadcastLastInt[playerid]);
			PlayerInfo[playerid][pInt] = BroadcastLastInt[playerid];
			SetPlayerFacingAngle(playerid, BroadcastFloats[playerid][0]);
			SetCameraBehindPlayer(playerid);

			WatchingTV[playerid] = 0;
			viewers--;
			UpdateSANewsBroadcast();

			format(string, sizeof(string), "* %s uzima daljinski i gasi TV!", GetPlayerNameEx(playerid));
			ProxDetector(30.0, playerid, string, COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
		}


	return 1;
}

Hvala, mozes mi ovo usput vio sam komandu za davanje promoera, ali  ne  ispisuje ime u dijelu "AdministraTOR (nick) vam je dao promotera"
Isto ne ispisuje "Dali ste igracu (NICK) PROmotera"
Mozes li mi top popraviti u komandama, problem je samo sto nick ne ispisuje
    //KOMANDA ZA STAVLJANJE PROMOTERA
CMD:ppromotera(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1338) return SCM(playerid, WHITE, "{FFFFFF}BG:RP Info | {00c0ff}Nemate ovlastenje za upotrebu ove komande!");
new string[128];
new pName[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new id;
new skin;
GetPlayerName(playerid, pName, 24);
if(sscanf(params, "ud", id,skin)) return SendClientMessage(playerid, 0xFFFFFFAA, "Koristi: /ppromotera [ID/Dio imena] [1]");
if(!IsPlayerConnected(id)) return SCM(playerid,-1,"Taj igrac nije na serveru");
PlayerInfo[id][pPromoter] = 1;

format(string, sizeof(string), "Admin %s ti je dao promotera, sve komande mozete pogledati na /phelp", pName);
SCM(id,COLOR_ERVINCRVENA, string);

SCMF(playerid,WHITE,"{FF0000}NB Adm | {00C0FF}Dali ste igracu %s promotera.", giveplayer);
return 1;
}








//KOMANDA ZA SKIDANJE
CMD:spromotera(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1338) return SCM(playerid, WHITE, "{FFFFFF}BG:RP Info | {00c0ff}Nemate ovlastenje za upotrebu ove komande!");
new string[128];
new pName[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new id;
new skin;
GetPlayerName(playerid, pName, 24);
if(sscanf(params, "ud", id,skin)) return SendClientMessage(playerid, 0xFFFFFFAA, "Koristi: /spromotera [ID/Dio imena] [1]");
if(!IsPlayerConnected(id)) return SCM(playerid,-1,"Taj igrac nije na serveru");
PlayerInfo[id][pPromoter] = 0;

format(string, sizeof(string), "Admin %s vam je skinuo promotera!", pName);
SCM(id,COLOR_ERVINCRVENA, string);
SCMF(playerid,WHITE,"{FF0000}NB Adm | {00C0FF}Skinuli ste igracu %s promotera.", giveplayer);
return 1;
}

Obrisi te 2 komande sto radis s 2 komande kad sve to mozes sa jednom komandom :D
CMD:makepromoter(playerid, params[])
{
	new
	    string[128],
	    id,
	    level;
    if (PlayerInfo[playerid][pAdmin] < 1338) return SCM(playerid, WHITE, "{FFFFFF}BG:RP Info | {00c0ff}Nemate ovlastenje za upotrebu ove komande!");
    if (sscanf(params, "ud", id, level)) return SendClientMessage(playerid, 0xFFFFFFAA, "Koristi: /spromotera [ID/Dio imena] [Level]");
	if (id == INVALID_PLAYER_ID) return SCM(playerid,-1,"Taj igrac nije na serveru");
	if (level == 0)
	{
	    format(string, sizeof(string), "Admin %s vam je skinuo promotera!", GetName(playerid));
		SCM(id,COLOR_ERVINCRVENA, string);
		SCM(playerid,WHITE,"{FF0000}NB Adm | {00C0FF}Skinuli ste igracu %s promotera.", GetName(id));
	}
	else
	{
	    format(string, sizeof(string), "Admin %s ti je dao promotera, sve komande mozete pogledati na /phelp", GetName(playerid));
		SCM(id,COLOR_ERVINCRVENA, string);
		SCM(playerid,WHITE,"{FF0000}NB Adm | {00C0FF}Dali ste igracu %s promotera.", GetName(id));
	}
	PlayerInfo[id][pPromoter] = level;
	return 1;
}


Takodje GetName ako ga nemas
stock GetName(playerid)
{
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
    return pName;
}


Hvala brate puuno, i izvini Å¡to  smaram testirao sam komandu /watchtv i radi prvi puta tj. kada hocu da gledam tv, problem je  kada hocu da prestanem gledati kucam /watchtv i pise da nisam u kuci, mislim da treba malo drugačije provjeru napravit :D

Sredi u komandi da u koliko gleda TV da mu ne proverava jel u kuci ili ne...


Aj probaj ovako ako ne bude radilo vici
CMD:watchtv(playerid, params[])
{
	new i = PlayerInfo[playerid][pPosedovanjeKuce];
    	if( (!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ])) || WatchingTV[playerid] != 0)  return SCM (playerid, -1, "Niste u kuci !");
        
		if(broadcasting == 0)
		{
			SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "* Nema nista na TV-u, izadji malo napolje igraj se sa ostalom djecom!");
			return 1;
		}

		new string[128];
		if(WatchingTV[playerid] == 0)
		{
			format(string, sizeof(string), "* %s uzima daljinski i pali tv", GetPlayerNameEx(playerid));
			ProxDetector(30.0, playerid, string, COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
			SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Kucaj opet /watchtv da prestanes gledati");
			BroadcastLastVW[playerid] = GetPlayerVirtualWorld(playerid);
			BroadcastLastInt[playerid] = GetPlayerInterior(playerid);
			GetPlayerPos(playerid, BroadcastFloats[playerid][1], BroadcastFloats[playerid][2], BroadcastFloats[playerid][3]);
			GetPlayerFacingAngle(playerid, BroadcastFloats[playerid][0]);

			WatchingTV[playerid] = 1;
			viewers++;
			UpdateSANewsBroadcast();

			TogglePlayerControllable(playerid, false);
			SetPlayerInterior(playerid, 1);
			SetPlayerVirtualWorld(playerid, 4225);
			SetPlayerPos(playerid, 639.2813,-11.8090,1111.4656);

			if(cameraangle == 0)
			{
				SetPlayerCameraPos(playerid, 635.6883,-11.1890,1108.6041);
				SetPlayerCameraLookAt(playerid, 641.3040,-12.2565,1108.1642);
			}
			else if(cameraangle == 1)
			{
				SetPlayerCameraPos(playerid, 637.9041,-8.3097,1108.9656);
				SetPlayerCameraLookAt(playerid, 640.9764,-14.7714,1107.9656);
			}
			else if(cameraangle == 2)
			{
				SetPlayerCameraPos(playerid, 638.6522,-15.6267,1108.9656);
				SetPlayerCameraLookAt(playerid, 640.7208,-9.5926,1107.2006);
			}
			else
			{
				SetPlayerCameraPos(playerid, 635.6883,-11.1890,1108.6041);
				SetPlayerCameraLookAt(playerid, 641.3040,-12.2565,1108.1642);
			}
		}
		else
		{
			TogglePlayerControllable(playerid, 0);
			GameTextForPlayer(playerid, "Ucitavanje objekata...", 4000, 5);
			SetPVarInt(playerid, "Loading..Interior", 1);
			SetTimerEx("SafeLoadObjects", 4000, 0, "d", playerid);
			SetPlayerPos(playerid,BroadcastFloats[playerid][1],BroadcastFloats[playerid][2],BroadcastFloats[playerid][3]);
			SetPlayerVirtualWorld(playerid, BroadcastLastVW[playerid]);
			PlayerInfo[playerid][pVW] = BroadcastLastVW[playerid];
			SetPlayerInterior(playerid, BroadcastLastInt[playerid]);
			PlayerInfo[playerid][pInt] = BroadcastLastInt[playerid];
			SetPlayerFacingAngle(playerid, BroadcastFloats[playerid][0]);
			SetCameraBehindPlayer(playerid);

			WatchingTV[playerid] = 0;
			viewers--;
			UpdateSANewsBroadcast();

			format(string, sizeof(string), "* %s uzima daljinski i gasi TV!", GetPlayerNameEx(playerid));
			ProxDetector(30.0, playerid, string, COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
		}


	return 1;
}

Ne radi brate, ako ti je lakše bi l' mi mogao napravit komandu /ugasitv mozda bi tako radila :D a iz /watchtv izbacit ovu drugu provjeru za gasenje

Pa ajd moze i tako
CMD:watchtv(playerid, params[])
{
	new i = PlayerInfo[playerid][pPosedovanjeKuce];
    	if(!IsPlayerInRangeOfPoint(playerid, 15.0, KucaInfo[i][kIzlazX], KucaInfo[i][kIzlazY], KucaInfo[i][kIzlazZ])) return SCM (playerid, -1, "Niste u kuci !");

		if(broadcasting == 0)
		{
			SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "* Nema nista na TV-u, izadji malo napolje igraj se sa ostalom djecom!");
			return 1;
		}

		new string[128];
		if(WatchingTV[playerid] == 0)
		{
			format(string, sizeof(string), "* %s uzima daljinski i pali tv", GetPlayerNameEx(playerid));
			ProxDetector(30.0, playerid, string, COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
			SendClientMessageEx(playerid, COLOR_LIGHTBLUE, "Kucaj opet /watchtv da prestanes gledati");
			BroadcastLastVW[playerid] = GetPlayerVirtualWorld(playerid);
			BroadcastLastInt[playerid] = GetPlayerInterior(playerid);
			GetPlayerPos(playerid, BroadcastFloats[playerid][1], BroadcastFloats[playerid][2], BroadcastFloats[playerid][3]);
			GetPlayerFacingAngle(playerid, BroadcastFloats[playerid][0]);

			WatchingTV[playerid] = 1;
			viewers++;
			UpdateSANewsBroadcast();

			TogglePlayerControllable(playerid, false);
			SetPlayerInterior(playerid, 1);
			SetPlayerVirtualWorld(playerid, 4225);
			SetPlayerPos(playerid, 639.2813,-11.8090,1111.4656);

			if(cameraangle == 0)
			{
				SetPlayerCameraPos(playerid, 635.6883,-11.1890,1108.6041);
				SetPlayerCameraLookAt(playerid, 641.3040,-12.2565,1108.1642);
			}
			else if(cameraangle == 1)
			{
				SetPlayerCameraPos(playerid, 637.9041,-8.3097,1108.9656);
				SetPlayerCameraLookAt(playerid, 640.9764,-14.7714,1107.9656);
			}
			else if(cameraangle == 2)
			{
				SetPlayerCameraPos(playerid, 638.6522,-15.6267,1108.9656);
				SetPlayerCameraLookAt(playerid, 640.7208,-9.5926,1107.2006);
			}
			else
			{
				SetPlayerCameraPos(playerid, 635.6883,-11.1890,1108.6041);
				SetPlayerCameraLookAt(playerid, 641.3040,-12.2565,1108.1642);
			}
		}
	return 1;
}


CMD:ugasitv(playerid, params[])
{
	#pragma unused params
        if (WatchingTV[playerid] == 0) return SCM (playerid, -1, "Ne gledate TV !");
	TogglePlayerControllable(playerid, 0);
	GameTextForPlayer(playerid, "Ucitavanje objekata...", 4000, 5);
	SetPVarInt(playerid, "Loading..Interior", 1);
	SetTimerEx("SafeLoadObjects", 4000, 0, "d", playerid);
	SetPlayerPos(playerid,BroadcastFloats[playerid][1],BroadcastFloats[playerid][2],BroadcastFloats[playerid][3]);
	SetPlayerVirtualWorld(playerid, BroadcastLastVW[playerid]);
	PlayerInfo[playerid][pVW] = BroadcastLastVW[playerid];
	SetPlayerInterior(playerid, BroadcastLastInt[playerid]);
	PlayerInfo[playerid][pInt] = BroadcastLastInt[playerid];
	SetPlayerFacingAngle(playerid, BroadcastFloats[playerid][0]);
	SetCameraBehindPlayer(playerid);

	WatchingTV[playerid] = 0;
	viewers--;
	UpdateSANewsBroadcast();

	format(string, sizeof(string), "* %s uzima daljinski i gasi TV!", GetPlayerNameEx(playerid));
	ProxDetector(30.0, playerid, string, COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
	return 1;
}
Poslednja Izmena: Januar 05, 2015, 23:35:28 POSLE PODNE od â–… â–† â–ˆ Rudimental â–ˆ â–† â–…

Hvala brate, napravio sam provjeru ja puno hvala
Lock please :D