[Pomoc] kad prodam stan ostane stan


Započeo [GU:RP] Ivica, Februar 12, 2013, 21:10:21 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:cyber
Detaljan opis problema:radio sam cmd /astan znaci recimo ak nekom skinem stan da mu se makne e sada vidite frend je imao stan i ja osao kdo stana i astan prodalo je sve i pise da je na prodaju i sve ne pise od njega ime tj mog frenda i on ide kupit stan i pise da vec dakle ja prodam ali mu nekak ostane kao da ima stan
Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno):

Postaj komandu za kupnju stana i tu /astan komandu.

Last nick: Paradox

evo

if(strcmp(cmd, "/kupistan", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerToPoint(50.0, playerid,0.0,0.0,0.0))
{
SendClientMessage(playerid, COLOR_WHITE, "Greska!");
return 1;
}
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < sizeof(StanInfo); i++)
{
if(PlayerToPoint(2.0, playerid, StanInfo[i][stPozicijaX], StanInfo[i][stPozicijaY], StanInfo[i][stPozicijaZ]))
{
if(PlayerInfo[playerid][pLevel] < StanInfo[i][stLevel])
{
new results[800];
format(results,sizeof(results),"{F81414}[Odbijeno!] {C3C3C3}Za kupnju stana vam je potreban level %d!",StanInfo[i][stLevel]);
SendClientMessage(playerid, COLOR_GRAD5,results);
return 1;
}
if(StanInfo[i][stStanje] == 1)
{
SendClientMessage(playerid, COLOR_WHITE, "{F81414}[Odbijeno!] {C3C3C3}Ovaj stan vec ima vlasnika!");
return 1;
}
if(StanInfo[i][stStanje] != 0)
{
return 1;
}
if(PlayerInfo[playerid][pStan] != 999)
{
SendClientMessage(playerid, COLOR_WHITE, "{F81414}[Odbijeno!] {C3C3C3}Vec posjedujete stan, kucajte /prodajstan ako zelite da kupite ovaj!");
return 1;
}
if(GetPlayerMoney(playerid) < StanInfo[i][stCena])
{
SendClientMessage(playerid, SIVA, "{F81414}[Odbijeno!] {C3C3C3}Nemate dovoljno novca za kupnju stana!");
return 1;
}
PlayerInfo[playerid][pStan]=i;
StanInfo[i][stStanje]=1;
strmid(StanInfo[i][stVlasnik] , sendername, 0, strlen(sendername), 255);
SendClientMessage(playerid, ZUTA, "(Stan) {FFFFFF}Čestitamo vam na kupovini vašeg Stana! Sve informacije mozete pogledati na (/sth)");
GivePlayerMoney(playerid,-StanInfo[i][stCena]);
new result[800];
new tril[300];
if(StanInfo[i][stLock]==0){tril="Otkljucan";}
else if(StanInfo[i][stLock]==1){tril="Zakljucan";}
format(result,sizeof(result),"{B7FF00}Vlasnik Stana: {FFFFFF}%s\n{B7FF00}Level: {FFFFFF}%d",StanInfo[i][stVlasnik],StanInfo[i][stLevel]);
UpdateDynamic3DTextLabelText(stansale[i],0xFFFF00AA,result);
DestroyPickup(picstan[i]);
picstan[i] =CreatePickup(1239, 1, StanInfo[i][stPozicijaX], StanInfo[i][stPozicijaY], StanInfo[i][stPozicijaZ]);
OnPlayerUpdate(playerid);
SaveStanove(i);
}
}
}
}


CMD:astan(playerid, params[])
{
	if(PlayerInfo[playerid][Admin] >= 1338 || IsPlayerAdmin(playerid))
	{
        new stan,string[128];
	    if(sscanf(params, "i", stan)) return SCM(playerid, GRAD2, "{FFAF00}Koristite: {FFFFFF}/astan [stan id]");
	    if(StanInfo[stan][stVlasnik] == 0) return SCM(playerid, GRAD2, "{F81414}[Greska!] {C3C3C3}Ovaj stan nema vlasnika!");
		StanInfo[stan][stStanje] =0;
		StanInfo[stan][stVlasnik] = 0;
		StanInfo[stan][stLock] = 1;
		strmid(StanInfo[stan][stVlasnik], "Niko", 0, strlen("Niko"), 255);
		new result[800];
		format(result,sizeof(result),"{B7FF00}Stan na prodaju\n{B7FF00}Cijena: {FFFFFF}%d$\n{B7FF00}Level: {FFFFFF}%d",StanInfo[stan][stCena],StanInfo[stan][stLevel]);
		UpdateDynamic3DTextLabelText(stansale[stan],0xFFFF00AA,result);
		DestroyPickup(picstan[stan]);
		picstan[stan] = CreatePickup(1273, 1, StanInfo[stan][stPozicijaX], StanInfo[stan][stPozicijaY], StanInfo[stan][stPozicijaZ]);
		SaveStanove(stan);
		format(string, sizeof string, "{B7FF00}[Stan] {FFFFFF}Uspjesno ste stavili stan na prodaju! | [ID:%d]", stan);
		SCM(playerid, COLOR_LIGHTRED, string);
		}
		else return SCM(playerid, GRAD2, "{FFFFFF}[{F81414}G-Unit{FFFFFF}] {C3C3C3}Samo Admini!");
		return 1;
}

Stavi ovaj kod pod OnPlayerSpawn:
new
    playerName[MAX_PLAYER_NAME];

GetPlayerName(playerid, playerName, sizeof(playerName));

if (!strcmp(StanInfo[PlayerInfo[playerid][pStan]][stVlasnik], playerName, false)) PlayerInfo[playerid][pStan] = 999;

Last nick: Paradox

 a dali je moguce odma u cmd podesit da mu se makne stan ili mora na ovaj nacin, ako me shvacas msm sve se lijepo namjesti i pise da se prodaje i sve ali opet tom igracu ostane

U komandi možeš jedino ako je igrač online (dodaš ovaj kod):
new
    playerName[MAX_PLAYER_NAME];

foreach(new i:Player)
{
    GetPlayerName(playerid, playerName, sizeof(playerName));

    if (!strcmp(StanInfo[PlayerInfo[playerid][pStan]][stVlasnik], playerName, false)) 
    {
        PlayerInfo[playerid][pStan] = 999;
        return 1;
    }
}


Ali mora ti ostat i onaj kod za offline igrače.

Last nick: Paradox

opet isto se desi opet pise da imam stan a prodan je

Slučajno sam napravio grešku u prethodnom kodu. :P Zamijeni taj kod ovim:
new
    playerName[MAX_PLAYER_NAME];

foreach(new i:Player)
{
    GetPlayerName(i, playerName, sizeof(playerName));

    if (!strcmp(StanInfo[PlayerInfo[i][pStan]][stVlasnik], playerName, false) && PlayerInfo[i][pStan] != 999) 
    {
        PlayerInfo[i][pStan] = 999;
        return 1;
    }
}
Poslednja Izmena: Februar 12, 2013, 22:11:26 POSLE PODNE od Joey_

Last nick: Paradox