[pomoc]ne zeli kupit stan


Započeo Aldin Begovic, Februar 02, 2012, 17:32:09 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

mod:gf [sistem stanova je iz xdrive]
opis problema:kada zelim da kupim stan izbaci mi da vec posjedujem ga , ali uopce nemam stan niti je problem u ovoj komandi nego u mom modu se koristi enumatori a u ovom kodu od stanova koriste se pvarovi ! Moze li mi neko pomoc kako da napravim da mi ovo radi da ne moram sve prebacibvat u enumatore jer nezz znaci da ostane kako i jeste da za ovaj sistem koristim pvar. HVala
slika:ako treba slikat cu


stock KupnjaStanaFnc(playerid)
{
    new ime[MAX_PLAYER_NAME],string[64];
	for(new i = 0; i < sizeof(StanStats); i++)
	{
		if(PlayerToPoint(3.00, playerid,StanStats[i][StanUlaz][0], StanStats[i][StanUlaz][1], StanStats[i][StanUlaz][2]))
		{
			if(GetPVarInt(playerid, "StanKljuc") == -1)
 			{
 			    GetPlayerName(playerid, ime,sizeof(ime));
 			    if(GetPVarInt(playerid, "StanKljuc") != -1 && strmatch(ime, StanStats[GetPVarInt(playerid, "StanKljuc")][StanVlasnik]))
				{
					SCM(playerid, COLOR_LIGHTRED, "Vi vec posjedujete kucu!");
					return 1;
				}
				if(StanStats[i][StanKupljen] == 0)
				{
					if(GetPlayerMoney(playerid) >= StanStats[i][StanCjena] && GetPVarInt(playerid, "Level") >= StanStats[i][StanLevel])
					{
					SetPVarInt(playerid,"SpawnChange",1);
					GivePlayerMoney(playerid,-StanStats[i][StanCjena]);
					SetPlayerInterior(playerid,StanStats[i][StanInt]);
					SetPlayerPos(playerid,StanStats[i][StanIzlaz][0],StanStats[i][StanIzlaz][1],StanStats[i][StanIzlaz][2]);
					SetPlayerVirtualWorld(playerid,StanStats[i][StanVWorld]);
					StanStats[i][StanKupljen] = 1;
					strmid(StanStats[i][StanVlasnik], ime, 0, strlen(ime), 255);
					format(string, sizeof(string), "[Kupnja]:Vi %s ste novi vlasnik ovog stana!", ime);
					SCM(playerid, COLOR_OOC, string);
					SetPVarInt(playerid, "StanKljuc",i);
					SQLUpdateStanSystem(GlavnaBaza,i);
					format(string, sizeof(string), "[STAN]\n[Vlasnik]%s\n[Level]:%d\n[Adresa]:%s %d", StanStats[i][StanVlasnik],StanStats[i][StanLevel],StanStats[i][StanAdresa],i);
    				Update3DTextLabelText(StanStats[i][Stan3DText],COLOR_OOC,string);
					return 1;
					}
					else{SCM(playerid, COLOR_LIGHTRED, "Nemas dosta novaca ili nisi dovoljan level za ovu kucu!");}
				}
				else{SCM(playerid, COLOR_LIGHTRED, "Stan je vec kupljen!!");}
			}
   			else{SCM(playerid, COLOR_LIGHTRED, "[XDRIVE]:Vec imate stan ili rentate stan!");}
      	}
	}
return 0;
}

Nije ti do toga dijela nego kod Loadanja i spremanja moras prilagoditi GF...

//======================:: SQL STAN BAZA !! KO ME NAVRATI JB ME DAN::=================================
stock SQLLoadStanSystem(DB:db)
{
	new reload[256],string[256];
	new red = 0;
	new DBResult:rezultat = db_query(db,  "SELECT * FROM `stan`");
	red = db_num_rows(rezultat);
	printf("Broj Stanova u bazi : %d",red);
 	if(red != 0)
	 {
		for(new i = 0; i < red; i++)
		{
      		if(red >= 0 && red <= sizeof(StanStats))
			{
			db_get_field_assoc(rezultat, "string", string, sizeof(string));
			strmid(reload,string,0,256,256);
			new data2[2][128];
			sscanf(reload,
			"p<,>d\
			ffffff\
			s[24]s[64]\
			ddddddddddd",
			StanStats[i][StanSlot],
			StanStats[i][StanUlaz][0],StanStats[i][StanUlaz][1],StanStats[i][StanUlaz][2],
			StanStats[i][StanIzlaz][0],StanStats[i][StanIzlaz][1],StanStats[i][StanIzlaz][2],
			data2[0],data2[1],
			StanStats[i][StanCjena],StanStats[i][StanLock],StanStats[i][StanKupljen],
			StanStats[i][StanInt],StanStats[i][StanVWorld],StanStats[i][StanRent],
			StanStats[i][StanLevel],StanStats[i][StanHealthUp],StanStats[i][StanArmorUp],
			StanStats[i][StanOrmarUp],StanStats[i][StanOrmar]);
 			strmid(StanStats[i][StanVlasnik], data2[0], 0, strlen(data2[0]), 128);
 			strmid(StanStats[i][StanOpis], data2[1], 0, strlen(data2[1]), 128);
 			if(StanStats[i][StanSlot] == 1){BrojStanova++;}
 			db_next_row(rezultat);
 			}
 		}
 	}else{print("SQL STAN: Nema stanova u bazi!");}
 	db_free_result(rezultat);
  return 1;
}

stock SQLUpdateStanSystem(DB:db,id)
{
		new string[256],Spliter[256];
		format(string, sizeof(string), "SELECT `string` FROM `stan`  WHERE ( `ID` = '%d')", id);
		new DBResult:rezultat = db_query(db, string);
		if(db_num_rows(rezultat))
		{
    		format(Spliter,sizeof(Spliter),
			"%d,\
			%f,%f,%f,%f,%f,%f,\
			%s,%s,\
			%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
			StanStats[id][StanSlot],
			StanStats[id][StanUlaz][0],StanStats[id][StanUlaz][1],StanStats[id][StanUlaz][2],
			StanStats[id][StanIzlaz][0],StanStats[id][StanIzlaz][1],StanStats[id][StanIzlaz][2],
			StanStats[id][StanVlasnik],StanStats[id][StanOpis],
			StanStats[id][StanCjena],StanStats[id][StanLock],StanStats[id][StanKupljen],
			StanStats[id][StanInt],StanStats[id][StanVWorld],StanStats[id][StanRent],
			StanStats[id][StanLevel],StanStats[id][StanHealthUp],StanStats[id][StanArmorUp],
			StanStats[id][StanOrmarUp],StanStats[id][StanOrmar]);
			format(string, sizeof(string), "UPDATE `stan` SET `string` = '%s' WHERE ( `ID` = '%d')",Spliter,id);
        	db_free_result(db_query(db, string));
        	printf("UPDATE: %d", id);
        	if(StanStats[id][StanSlot] == 0)
        	{
          	  	format(string, sizeof(string), "DELETE FROM `stan` WHERE (`ID` = '%d')", id);
				db_free_result(db_query(db,string));
				printf("DELETE: %d", id);
        	}
        }
        else
        {
            if(StanStats[id][StanSlot] == 1)
            {
		    format(Spliter,sizeof(Spliter),
			"%d,\
			%f,%f,%f,%f,%f,%f,\
			%s,%s,\
			%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
			StanStats[id][StanSlot],
			StanStats[id][StanUlaz][0],StanStats[id][StanUlaz][1],StanStats[id][StanUlaz][2],
			StanStats[id][StanIzlaz][0],StanStats[id][StanIzlaz][1],StanStats[id][StanIzlaz][2],
			StanStats[id][StanVlasnik],StanStats[id][StanOpis],
			StanStats[id][StanCjena],StanStats[id][StanLock],StanStats[id][StanKupljen],
			StanStats[id][StanInt],StanStats[id][StanVWorld],StanStats[id][StanRent],
			StanStats[id][StanLevel],StanStats[id][StanHealthUp],StanStats[id][StanArmorUp],
			StanStats[id][StanOrmarUp],StanStats[id][StanOrmar]);
  			format(string, sizeof(string), "INSERT INTO `stan` ( `ID`, `string`)  VALUES ( '%d','%s')", id,Spliter);
			db_free_result(db_query(db, string));
			printf("INSERT: %d", id);
			}
        }
   db_free_result(rezultat);
  return 1;
}
stock UpdatePlayerAccount(playerid)
{
     if(IsPlayerConnected(playerid))

		{
			new Spliter[256];
			SetPVarInt(playerid,"Novac",GetPlayerMoney(playerid));
    		format(Spliter,sizeof(Spliter),
			"%d",
			GetPVarInt(playerid, "SpawnChange"));
			SQLUpdatePlayerAccount(GlavnaBaza, playerid, Spliter);
	   		//printf("[XDRIVE]: Spremanje/Update accounta %s zavrseno!",name);
	    }

return 1;
}
//===============================fUNCIJE STANOVE BY NEDDA ============================================

stock MakeStanFnc(playerid,interior,cjena,Float:X,Float:Y,Float:Z)
{
for(new i = 0; i < sizeof(StanStats); i++ )
	{
	if(StanStats[i][StanSlot] == 0)
		{
		        new string[128];
		        BrojStanova++;
		        StanStats[i][StanSlot] = 1;
		        StanStats[i][StanUlaz][0] = X;
				StanStats[i][StanUlaz][1] = Y;
				StanStats[i][StanUlaz][2] = Z;
				StanStats[i][StanIzlaz][0] = aUlazi[interior][0];
				StanStats[i][StanIzlaz][1] = aUlazi[interior][1];
				StanStats[i][StanIzlaz][2] = aUlazi[interior][2];
		    	StanStats[i][StanCjena] = cjena;
				strmid(StanStats[i][StanVlasnik], "Nitko", 0, strlen("Nitko"), 999);
				strmid(StanStats[i][StanOpis], OpisKuca_Stanova[interior], 0, strlen(OpisKuca_Stanova[interior]), 255);
				StanStats[i][StanLock] = 0;
				StanStats[i][StanKupljen] = 0;
				StanStats[i][StanVWorld] = 500+BrojStanova;
				StanStats[i][StanLevel] = 1;
				StanStats[i][StanInt] = aIntovi[interior][0];
				format(string, sizeof(string), "[XDRIVE]:Opis: %s ,ID stana: %d , Cjena stana:%d $ , Level: %d", OpisKuca_Stanova[interior], BrojStanova, cjena, StanStats[i][StanLevel]);
				SCM(playerid, COLOR_LIGHTRED, string);
				SQLUpdateStanSystem(GlavnaBaza,i);
          		break;
          }
	}
	return 0;
}
stock RmStanFnc(playerid,ID)
{
	if(StanStats[ID][StanSlot] == 1)
		{
		        new string[64];
		        BrojStanova--;
		        StanStats[ID][StanSlot] = 0;
		        StanStats[ID][StanUlaz][0] = 0;
				StanStats[ID][StanUlaz][1] = 0;
				StanStats[ID][StanUlaz][2] = 0;
				StanStats[ID][StanIzlaz][0] = 0;
				StanStats[ID][StanIzlaz][1] = 0;
				StanStats[ID][StanIzlaz][2] = 0;
		    	StanStats[ID][StanCjena] = 0;
				strmid(StanStats[ID][StanVlasnik], "0", 0, strlen("0"), 128);
				strmid(StanStats[ID][StanOpis], "0", 0, strlen("0"), 128);
				StanStats[ID][StanLock] = 0;
				StanStats[ID][StanKupljen] = 0;
				StanStats[ID][StanVWorld] = 0;
				StanStats[ID][StanLevel] = 0;
				StanStats[ID][StanInt] = 0;
				format(string, sizeof(string), "RM STAN %d <<", ID);
				SCM(playerid, COLOR_GREEN, string);
				SQLUpdateStanSystem(GlavnaBaza,ID);
		}
	else{ SCM(playerid, COLOR_LIGHTRED, "[XDRIVE]Nevazeci ID");}
	return 0;
}


stock GetStanKey(playerid)
{
	new ime[MAX_PLAYER_NAME];
	GetPlayerName(playerid,ime,sizeof(ime));
	for(new i = 0; i < sizeof(StanStats); i++)
	{
	    if(StanStats[i][StanSlot] == 1)
	    {
			if (!strcmp(StanStats[i][StanVlasnik], ime)) return i;
		}
	}
return -1;
}


Eh samo mi malo pojasni sta da prilagodim !

evo i komanda
CMD:stan(playerid,params[])
{
	new opcija[24],ime[32];
 	if (sscanf(params, "s[24]", opcija)) SCM(playerid, COLOR_WHITE, "Koristenje: /stan [opcija]"),SCM(playerid, COLOR_WHITE, "Opcija: kupi, lock, prodaj, rentset");
 	else
 	{
 		GetPlayerName(playerid, ime,sizeof(ime));
		if(strmatch("kupi",opcija))
  		{
			  KupnjaStanaFnc(playerid);
 	          return 1;
      	}
      	if(strmatch("prodaj",opcija))
  		{
  		      ProdajaStanaFnc(playerid);
 	          return 1;
      	}
		if(strmatch("lock",opcija))
  		{
            ZakljucavanjeStanaFnc(playerid);
            return 1;
    	}
    	if(!strcmp(opcija,"rentset",true,7))
		{
		    new setrent,par[24];
		    if (sscanf(opcija, "s[24]d",par,setrent)) SCM(playerid, COLOR_WHITE, "Koristenje: /stan rentset [0 - 50000]");
		    else if(setrent > 50000 || setrent < 0) SCM(playerid, COLOR_WHITE, "Koristenje: /stan rentset [0 - 50000]");
		    else
 			{
				RentanjeStanaFnc(playerid,setrent);
				return 1;
			}
		}
	}
 return 1;
}

LOCK RIJESIO SAM!
Poslednja Izmena: Februar 03, 2012, 12:09:52 POSLE PODNE od Aldin Begovic