Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Aldin Begovic poslato Februar 02, 2012, 17:32:09 POSLE PODNE

Naslov: [pomoc]ne zeli kupit stan
Poruka od: Aldin Begovic poslato Februar 02, 2012, 17:32:09 POSLE PODNE
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;
}
Naslov: Odg: [pomoc]ne zeli kupit stan
Poruka od: [TG:RP]$--L84S--$ poslato Februar 02, 2012, 20:06:26 POSLE PODNE
Nije ti do toga dijela nego kod Loadanja i spremanja moras prilagoditi GF...
Naslov: Odg: [pomoc]ne zeli kupit stan
Poruka od: Aldin Begovic poslato Februar 02, 2012, 20:12:12 POSLE PODNE
//======================:: 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 !
Naslov: Odg: [pomoc]ne zeli kupit stan
Poruka od: Aldin Begovic poslato Februar 02, 2012, 23:27:13 POSLE PODNE
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!