Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ShomY071 poslato Jun 05, 2018, 18:00:19 POSLE PODNE

Naslov: String without a lenght
Poruka od: ShomY071 poslato Jun 05, 2018, 18:00:19 POSLE PODNE
Problem(error/warning): Sve ima dole, gledao sam na netu nesto al idalje ne kapiram do cega je :P...
Dio skripte:
[pawn]
    if(dialogid == DIALOG_ORG)
   {
      new org;
       if(!response) return 1;
       if(sscanf(inputtext,"i",org)) return ShowPlayerDialog(playerid, DIALOG_ORG, 1, ""C_BELA"Uredjivanje", ""C_BELA"Unesite ID bande koju zelite urediti", "Dalje", "Odustani");
       new oFile[50];
      format(oFile, sizeof(oFile), ORGE, org);
       if(!fexist(oFile))return ShowPlayerDialog(playerid, DIALOG_ORG, 1, ""C_BELA"Banda ne postoji", ""C_BELA"Unesite ID bande koju zelite urediti", "Dalje", "Odustani");
      orga[playerid]=org;
      SPD(playerid, ORG_IME, DIALOG_STYLE_INPUT, "Ime Organizacije", "Unesite zeljeno ime:","Odaberi","Odustani");
   }
    if(dialogid == ORG_IME)
   {
       new ime[128];
      if(!response) return 1;
       if(sscanf(inputtext,"s",ime)) return ShowPlayerDialog(playerid, ORG_IME, 1, ""C_BELA"Promena imena", ""C_BELA"Unesite novo ime bande", "Uredu", "Odustani");
       if(strlen(ime) < 1) return SCM(playerid,CRVENA,"Ime mora sadrzavati minimalno jedno slovo!");
      SCM(playerid,-1,"{00C0FF}Ime je postavljeno!");
      SPD(playerid, ORG_IMERANKA1, DIALOG_STYLE_INPUT, "Imena Rankova", "Unesite zeljeno ime za rank 1\n","Dalje","Odustani");
      new string[128];
       strmid(OrganizacijaInfo[orga[playerid]][Name],ime,0,strlen(ime),255);
       SaveORG(orga[playerid]);
       DestroyDynamic3DTextLabel(GangLabel[orga[playerid]]);
       format(string,sizeof(string),"Organizacija: "C_BELA"%s\nLider 1: "C_BELA"%s\nLider 2: "C_BELA"%s",OrganizacijaInfo[orga[playerid]][Name], Leader[0][orga[playerid]], Leader[1][orga[playerid]]);
       GangLabel[orga[playerid]] = CreateDynamic3DTextLabel(string,SERVERBOJA,OrganizacijaInfo[orga[playerid]][uX],OrganizacijaInfo[orga[playerid]][uY],OrganizacijaInfo[orga[playerid]][uZ], 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 15.0);
   }
    if(dialogid == ORG_IMERANKA1)
   {
       new ime[128];
      if(!response) return 1;
      if(sscanf(inputtext,"s",ime)) return SPD(playerid, ORG_IMERANKA1, DIALOG_STYLE_INPUT, "Imena Rankova", "Unesite zeljeno ime za RANK 1", "Dalje", "Odustani");
        SPD(playerid, ORG_IMERANKA2, DIALOG_STYLE_INPUT, "Imena Rankova", "Unesite zeljeno ime za RANK 2", "Dalje", "Odustani");
      strmid(OrganizacijaInfo[orga[playerid]][Rank1],ime,0,strlen(ime),255);
      SCMF(playerid,-1,"{00C0FF}Ime %s je postavljeno za RANK 1!", ime);
       SaveORG(orga[playerid]);
   }
[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):

[17:53:38] sscanf warning: Strings without a length are deprecated, please add a destination size.
[17:53:45] sscanf warning: Strings without a length are deprecated, please add a destination size.

Slika/video ingame problema(obavezno ako je ingame problem): Mislim da mi se zbog toga ne prikazuje sledeci dialog
Naslov: Odg: String without a lenght
Poruka od: Bašovski poslato Jun 05, 2018, 18:02:45 POSLE PODNE
umjesto "s"
stavi "s[128]" u 2. parametru kod sscanf
Naslov: Odg: String without a lenght
Poruka od: Salesman poslato Jun 05, 2018, 18:05:14 POSLE PODNE
Nisi stavio string value kod sscanf parametra. Uradi kao sto je rekao Bašovski iznad.
Naslov: Odg: String without a lenght
Poruka od: ShomY071 poslato Jun 05, 2018, 18:09:51 POSLE PODNE
Oke jesam, jedno pod pitanje (cisto informativno xD)

ako stavim
new text[256];
i onda u proveri string s stavim 100, da li to smanjuje optimizaciju(tj da li ima potrebe onda pod new da stoji 256)? Ili su to 2 razlicite stvari i nema veze

if(sscanf(params, "s[100]",tekst)) return Koristi(playerid, "b [tekst]");
Naslov: Odg: String without a lenght
Poruka od: Salesman poslato Jun 05, 2018, 18:11:35 POSLE PODNE
new text[256]; to 256 ti je array mozes pronaci na netu detaljno objasnjenje arraya to ti je u biti velicina stringa.
Naslov: Odg: String without a lenght
Poruka od: Bašovski poslato Jun 05, 2018, 22:15:14 POSLE PODNE
Ne optimizuje, bespotrebno ti je onda 156 cellova koje ti array zauzima. Za unos ti je limit 128 simbola, tako da bilo sta preko 128 ti je bespotrebno.