Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ShadowNET poslato Februar 28, 2016, 19:13:58 POSLE PODNE

Naslov: [Pomoc] Mesanje ID-a
Poruka od: ShadowNET poslato Februar 28, 2016, 19:13:58 POSLE PODNE
Skripta koju koristim:0
Detaljan opis problema:Znaci ovako kada naprimer postavim nekom admina preko komande ili gamemastera ili vipa ili promotera i taj neko izadje i opet se uloguje(sa drugim imenom) ili napravi novi acc sa novim imenom i kada se konektuje on ima iste varijable kao i onaj id koji je izasao pre toga.
Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno):
Primer:
Marko je ID 1
Ja mu dam Admina Lvl 3
I on izadje
Zatim napravi novi acc sa drugim imenom (Petar)
I Uloguje se ID 1
On dobije  je admin lvl 3 kao i Marko

Sta se desava?
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: K ROSE poslato Februar 28, 2016, 19:21:09 POSLE PODNE
Postavi ovdje sistem sacuvanja njegovih varijabla, samim tim i ocitavanja.
Ovako ne mogu nikako da znam šta mu je, dok ne pogledam.
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: ShadowNET poslato Februar 28, 2016, 19:26:10 POSLE PODNE

[pawn]forward LoadUser_data(playerid,name[],value[]); //Writing Informations
public LoadUser_data(playerid,name[],value[])
{
    INI_Int("Password",PlayerInfo[playerid][pPass]);
    INI_Int("Login",PlayerInfo[playerid][pLogin]);
    INI_Int("Ban",PlayerInfo[playerid][pBan]);
    INI_Int("Godine",PlayerInfo[playerid][pGodine]);
    INI_String("Pol",PlayerInfo[playerid][pPol], 64);
    INI_String("Drzava",PlayerInfo[playerid][pDrzava], 64);
    INI_String("Email",PlayerInfo[playerid][pEmail], 64);
    INI_Int("Godine Check",PlayerInfo[playerid][pGodineC]);
    INI_Int("Pol Check",PlayerInfo[playerid][pPolC]);
    INI_Int("Drzava Check",PlayerInfo[playerid][pDrzavaC]);
    INI_Int("Email Check",PlayerInfo[playerid][pEmailC]);
    INI_Int("Skin",PlayerInfo[playerid][pSkin]);
    INI_Int("Cash",PlayerInfo[playerid][pCash]);
    INI_Int("Banka",PlayerInfo[playerid][pBanka]);
    INI_Int("GameMaster",PlayerInfo[playerid][pGM]);
    INI_Int("Mute",PlayerInfo[playerid][pMute]);
    INI_Int("Warn",PlayerInfo[playerid][pWarn]);
    INI_Int("Nivo",PlayerInfo[playerid][pNivo]);
    INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
    INI_Int("Racun",PlayerInfo[playerid][pRacun]);
    INI_Int("Jail",PlayerInfo[playerid][pJail]);
   INI_Int("JailTime",PlayerInfo[playerid][pJailTime]);
    INI_Int("DAuto",PlayerInfo[playerid][pDAuto]);
    INI_Int("DMotor",PlayerInfo[playerid][pDMotor]);
    INI_Int("DKamion",PlayerInfo[playerid][pDKamion]);
    INI_Int("DLetelica",PlayerInfo[playerid][pDLetelica]);
    INI_Int("KosacTrave",PlayerInfo[playerid][pKosacTrave]);
    INI_Int("Zaposlen",PlayerInfo[playerid][pZaposlen]);
    INI_Int("VozacKamiona",PlayerInfo[playerid][pVozacKamiona]);
    INI_Int("VozacAutoBusa",PlayerInfo[playerid][pVozacAutoBusa]);
    INI_Int("Kills",PlayerInfo[playerid][pKills]);
    INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
    INI_Int("Respekt",PlayerInfo[playerid][pRespekt]);
    INI_Int("Gradjevinar",PlayerInfo[playerid][pGradjevinar]);
    INI_Int("Mehanicar",PlayerInfo[playerid][pMehanicar]);
    INI_Int("Pilot",PlayerInfo[playerid][pPilot]);
    INI_Int("Ribar",PlayerInfo[playerid][pRibar]);
    INI_Int("Bolnicar",PlayerInfo[playerid][pBolnicar]);
    INI_Int("PromenaImena",PlayerInfo[playerid][pPromenaImena]);
    INI_Int("Taksista",PlayerInfo[playerid][pTaksista]);
    INI_Int("Vip",PlayerInfo[playerid][pVip]);
    INI_Int("Promoter",PlayerInfo[playerid][pPromoter]);
    INI_Int("Imenik",PlayerInfo[playerid][pImenik]);
    INI_Int("Kredit",PlayerInfo[playerid][pKredit]);
    INI_Int("Telefon",PlayerInfo[playerid][pTelefon]);
    INI_Int("BrojTelefona",PlayerInfo[playerid][pBrojTelefona]);
    INI_Int("Minute",PlayerInfo[playerid][pMinute]);
    INI_Int("SatiIgre",PlayerInfo[playerid][pSatiIgre]);
    INI_Int("Level",PlayerInfo[playerid][pLevel]);
    INI_Int("Farmer",PlayerInfo[playerid][pFarmer]);
    INI_Int("Zlato",PlayerInfo[playerid][pZlato]);
    INI_Int("Lider",PlayerInfo[playerid][pLider]);
    INI_Int("LSPDMember",PlayerInfo[playerid][pLSPDMember]);
    INI_Int("Rank",PlayerInfo[playerid][pRank]);
    INI_Int("InOrg",PlayerInfo[playerid][pInOrg]);
    INI_Int("WantedLevel",PlayerInfo[playerid][pWantedLevel]);
    INI_Int("Sat",PlayerInfo[playerid][pSat]);
    return 1;
}[/pawn]
i spremanje
[pawn]stock SpremiAcc(playerid)
{
    new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    INI_WriteInt(File,"Banka",PlayerInfo[playerid][pBanka]);
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Nivo",PlayerInfo[playerid][pNivo]);
    INI_WriteInt(File,"GameMaster",PlayerInfo[playerid][pGM]);
    INI_WriteInt(File,"Login",PlayerInfo[playerid][pLogin]);
    INI_WriteInt(File,"Skin",GetPlayerSkin(playerid));
    INI_WriteInt(File,"Ban",PlayerInfo[playerid][pBan]);
    INI_WriteInt(File,"Warn",PlayerInfo[playerid][pWarn]);
    INI_WriteInt(File,"Mute",PlayerInfo[playerid][pMute]);
    INI_WriteInt(File,"Godine",PlayerInfo[playerid][pGodine]);
    INI_WriteInt(File,"Drzava",PlayerInfo[playerid][pDrzava]);
    INI_WriteInt(File,"Pol",PlayerInfo[playerid][pPol]);
    INI_WriteInt(File,"Email",PlayerInfo[playerid][pEmail]);
    INI_WriteInt(File,"Racun",PlayerInfo[playerid][pRacun]);
    INI_WriteInt(File,"Jail",PlayerInfo[playerid][pJail]);
    INI_WriteInt(File,"JailTime",PlayerInfo[playerid][pJailTime]);
    INI_WriteInt(File,"DAuto",PlayerInfo[playerid][pDAuto]);
    INI_WriteInt(File,"DMotor",PlayerInfo[playerid][pDMotor]);
    INI_WriteInt(File,"DKamion",PlayerInfo[playerid][pDKamion]);
    INI_WriteInt(File,"DLetelica",PlayerInfo[playerid][pDLetelica]);
    INI_WriteInt(File,"KosacTrave",PlayerInfo[playerid][pKosacTrave]);
    INI_WriteInt(File,"Zaposlen",PlayerInfo[playerid][pZaposlen]);
    INI_WriteInt(File,"VozacKamiona",PlayerInfo[playerid][pVozacKamiona]);
    INI_WriteInt(File,"VozacAutoBusa",PlayerInfo[playerid][pVozacAutoBusa]);
    INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    INI_WriteInt(File,"Respekt",PlayerInfo[playerid][pRespekt]);
    INI_WriteInt(File,"Gradjevinar",PlayerInfo[playerid][pGradjevinar]);
    INI_WriteInt(File,"Mehanicar",PlayerInfo[playerid][pMehanicar]);
    INI_WriteInt(File,"Pilot",PlayerInfo[playerid][pPilot]);
    INI_WriteInt(File,"Ribar",PlayerInfo[playerid][pRibar]);
    INI_WriteInt(File,"Bolnicar",PlayerInfo[playerid][pBolnicar]);
    INI_WriteInt(File,"PromenaImena",PlayerInfo[playerid][pPromenaImena]);
    INI_WriteInt(File,"Taksista",PlayerInfo[playerid][pTaksista]);
    INI_WriteInt(File,"Vip",PlayerInfo[playerid][pVip]);
    INI_WriteInt(File,"Promoter",PlayerInfo[playerid][pPromoter]);
    INI_WriteInt(File,"Imenik",PlayerInfo[playerid][pImenik]);
    INI_WriteInt(File,"Kredit",PlayerInfo[playerid][pKredit]);
    INI_WriteInt(File,"Telefon",PlayerInfo[playerid][pTelefon]);
    INI_WriteInt(File,"BrojTelefona",PlayerInfo[playerid][pBrojTelefona]);
    INI_WriteInt(File,"Minute",PlayerInfo[playerid][pMinute]);
    INI_WriteInt(File,"SatiIgre",PlayerInfo[playerid][pSatiIgre]);
    INI_WriteInt(File,"Level",PlayerInfo[playerid][pLevel]);
    INI_WriteInt(File,"Farmer",PlayerInfo[playerid][pFarmer]);
    INI_WriteInt(File,"Zlato",PlayerInfo[playerid][pZlato]);
    INI_WriteInt(File,"Lider",PlayerInfo[playerid][pLider]);
    INI_WriteInt(File,"LSPDMember",PlayerInfo[playerid][pLSPDMember]);
    INI_WriteInt(File,"Rank",PlayerInfo[playerid][pRank]);
    INI_WriteInt(File,"InOrg",PlayerInfo[playerid][pInOrg]);
    INI_WriteInt(File,"WantedLevel",PlayerInfo[playerid][pWantedLevel]);
    INI_WriteInt(File,"Sat",PlayerInfo[playerid][pSat]);
    INI_Close(File);
   return 1;
}[/pawn]
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: Letic poslato Februar 28, 2016, 19:32:13 POSLE PODNE
Da li si stavio da se te iste varijable na OnPlayerConnect stavljaju na default?
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: ShadowNET poslato Februar 28, 2016, 19:45:36 POSLE PODNE
OnPlayerConnect
[pawn] if(fexist(UserPath(playerid)))
   {
      INI_ParseFile(UserPath(playerid),"LoadUser_%s",.bExtra = true,.extra = playerid);
      OcistiCet(playerid, 25);
      TogglePlayerControllable(playerid, 0);
      TogglePlayerSpectating(playerid, 1);
      TogglePlayerSpectating(playerid, 0);
      TextDrawShowForPlayer(playerid, TDLog0);
       TextDrawShowForPlayer(playerid, TDLog1);
       TextDrawShowForPlayer(playerid, TDLog2);
       TextDrawShowForPlayer(playerid, TDLog3);
       TextDrawShowForPlayer(playerid, TDLog4);
       TextDrawShowForPlayer(playerid, TDLog5);
       TextDrawShowForPlayer(playerid, TDLog6);
       TextDrawShowForPlayer(playerid, TDLog7);
       TextDrawShowForPlayer(playerid, TDLog8);
      ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Server-{FF0000}Login","\n","Login","Quit");
   }
   else
   {
       TutTime[playerid] = 0;
      TogglePlayerControllable(playerid,0);
      TogglePlayerSpectating(playerid, 1);
      TogglePlayerSpectating(playerid, 0);
       SetPlayerCameraPos(playerid, 1677.0198, -1492.4376, 167.3723);
      SetPlayerCameraLookAt(playerid, 1676.3434, -1493.1816, 166.9373);
      
      TextDrawShowForPlayer(playerid, Nebitan0);
      TextDrawShowForPlayer(playerid, Nebitan1);
      TextDrawShowForPlayer(playerid, Nebitan2);
      TextDrawShowForPlayer(playerid, Nebitan3);
      TextDrawShowForPlayer(playerid, Nebitan4);
      TextDrawShowForPlayer(playerid, Nebitan5);
      TextDrawShowForPlayer(playerid, Nebitan6);
      TextDrawShowForPlayer(playerid, Nebitan7);
      TextDrawShowForPlayer(playerid, Godine);
      TextDrawShowForPlayer(playerid, Pol);
      TextDrawShowForPlayer(playerid, Email);
      TextDrawShowForPlayer(playerid, Drzava);
      TextDrawShowForPlayer(playerid, Leave);
      TextDrawShowForPlayer(playerid, Enter);
      SelectTextDraw(playerid, Nar);
   }[/pawn]
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: ShadowNET poslato Februar 28, 2016, 21:14:55 POSLE PODNE
Zna li neko?
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: K ROSE poslato Februar 28, 2016, 21:31:49 POSLE PODNE
Jel imaš problema sa ostalim stvarima, npr nekom dadneš novac on napravi novi acc i ima taj novac?
Sa ocitavanjem ne vidim nigdje problem, možda ti komanda sa kojom daješ ne valja.
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: ShadowNET poslato Februar 28, 2016, 21:39:14 POSLE PODNE
Ne znam, nisam siguran.
Evo komanda za postavljanje admina naprimer:
[pawn]CMD:setadmin(playerid, params[])
{
   if(IsPlayerAdmin(playerid))
   {
      new str[128], ime[MAX_PLAYER_NAME], ime2[MAX_PLAYER_NAME], id, admin;
      if(sscanf(params, "ud", id, admin)) return SCM(playerid, Nar, "Koristite: {FFFFFF}/setadmin [Igracev ID] [Admin nivo]");
      if(!IsPlayerConnected(id)) return SCM(playerid, Crvena, "Pogresan ID!");
      if(admin < 0 || admin > 7) return SCM(playerid, Crvena, "[ADM GRESKA] {FFFFFF}Admin nivo ne smije bit manji od 0, veci od 6!");
      GPN(playerid, ime, sizeof(ime));
      GPN(id, ime2, sizeof(ime2));
      PlayerInfo[id][pAdmin] = admin;
      format(str, 128, "* Postavljeni ste za Administratora nivo {FFFFFF}%d | {33CCFF}Vlasnik: {FFFFFF}%s", admin, ime);
      SCM(id, Plava, str);
      format(str, 128, "* Postavili ste {FFFFFF}%s {33CCFF}za Administratora nivo {FFFFFF}%d.", ime2, admin);
      SCM(playerid, Plava, str);
      format(str, 128, "* Vlasnik %s je postavio %s za Administratora nivo %d!", ime, ime2, admin);
      PorukaHeadu(Crvena, str);
      AdminGMLabel(playerid);
      SpremiAcc(id);
   }
     else
     {
         SCM(playerid, Crvena, "[GRESKA] {FFFFFF}Nemate prisup ovoj Komandi!");
   }
   return 1;
}[/pawn]
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: Drobnjak poslato Februar 28, 2016, 21:40:03 POSLE PODNE
Citat: ShadowNET poslato Februar 28, 2016, 21:14:55 POSLE PODNE
Zna li neko?
Nije ti problem u save/load, problem je u tome što na connectu moraš sve varijable da postaviš na 0 ( defaultne ), pogledaj šta ti je Letić rekao..
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: ShadowNET poslato Februar 28, 2016, 21:44:34 POSLE PODNE
Ne razumem.Zasto bih enum varijable postavlajo na 0.
Znaci ako mu dam admina lvl 5 sledeci put kada se uloguje nema ga...
Ako mislis na varijable primera [pawn]Varijabla[MAX_PLAYERS];[/pawn]
onda da njih sve imam postavljene na 0.sa nima nije problem.
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: Letic poslato Februar 28, 2016, 21:45:50 POSLE PODNE
I enum varijable stavi na default.
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: Drobnjak poslato Februar 28, 2016, 21:47:13 POSLE PODNE
Citat: ShadowNET poslato Februar 28, 2016, 21:44:34 POSLE PODNE
Ne razumem.Zasto bih enum varijable postavlajo na 0.
Znaci ako mu dam admina lvl 5 sledeci put kada se uloguje nema ga...
Ako mislis na varijable primera [pawn]Varijabla[MAX_PLAYERS];[/pawn]
onda da njih sve imam postavljene na 0.sa nima nije problem.

Ne razumeš zašto bi ENUM varijable postavljao na default pri konektu ?

PI[playerid][pAdmin] = 0;
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: // xunder poslato Februar 28, 2016, 21:55:42 POSLE PODNE
Primjer /setadmin playerid lvl
stavlja varijablu Admin - igracu: playerid - level: lvl
i to ostaje i kada je playerid diskonektovan i ponovo pri konektu playerid-a on ce imati tu varijablu
zato je potrebno OPC staviti sve varijable na default :D
Naslov: Odg: [Pomoc] Mesanje ID-a
Poruka od: ShadowNET poslato Februar 28, 2016, 21:58:52 POSLE PODNE
Hvala svima.Problem je bio sto jednostavno nisam razmislio da cak iako mu stavim sve varijable na 0 posle mu se one vracaju pri loginu.
A i nisam znao da ID pamti varijable jednostavno sam mislio da to ide preko Imena.
Hvala jos jednom. :)