Szerző Téma: Verseny índitási parancs..  (Megtekintve 452 alkalommal)

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Verseny índitási parancs..
« Dátum: 2013. Március 31. - 18:28:57 »
0 Show voters
Helló, szóval probálok egy verseny szkriptet és az lenne a problémám ezzel, hogy nem tölti meg az egész verseny neveket csak 1 pályát.. probáltam oda tenni egy \\n de akkor nem jeleníti meg a dialogúst pedig csak 2 verseny van benne.. valami ötlet?
 

CMD:races( playerid, parmas[])
{
    if(RaceBusy == 0x01 || RaceStarted == 1) return SendClientMessage( playerid, -1, \"[Hiba]: Már elíndult egy verseny!\");
new
    rNameFile[64],
    string[64]
;
format(rNameFile, sizeof(rNameFile), \"/rRaceSystem/RaceNames/RaceNames.txt\");
TotalRaces = dini_Int(rNameFile, \"TotalRaces\");
Loop(x, TotalRaces)
{
    format(string, sizeof(string), \"Race_%d\", x), strmid(RaceNames
  • , dini_Get(rNameFile, string), 0, 20, sizeof(RaceNames));

    ShowPlayerDialog(playerid, 4224, DIALOG_STYLE_LIST, \"Melyik verseny legyen?\", RaceNames
  • , \"Índitás\", \"Bezárás\");

}
    return 1;
}

Verseny índitási parancs..
« Válasz #1 Dátum: 2013. Április 01. - 10:09:26 »
0 Show voters
Próbáld meg így: (nem teszteltem, de valószínûleg mûködik)
 
new DialogString[4097];//ezt célszerû lenne globálisan létrehozni és innentöl nagy méretû dialogoknál ezt használni
CMD:races( playerid, parmas[])
{
    if(RaceBusy == 0x01 || RaceStarted == 1) return SendClientMessage( playerid, -1, \"[Hiba]: Már elíndult egy verseny!\");
        new string[64];
        //format(rNameFile, sizeof(\"/rRaceSystem/RaceNames/RaceNames.txt\"), ); ez a rész itt teljesen felesleges. ha nincs a stringben változó érték miért ne írd be állandóként?
        TotalRaces = dini_Int(\"/rRaceSystem/RaceNames/RaceNames.txt\", \"TotalRaces\");
        DialogString[0] = EOS;//kiürítjük a stringet azzal, hogy string vége karakterre cseréljük a legelsõ karaktert.
        Loop(x, TotalRaces)
        {
            string[0] = EOS;//már korábban leírtam
valstr(string,x);//stringgé alakítjuk az int számot
strins(string,\"Race_\",0);//a szám elé beszúrjuka  szöveget ez sokkal gyorsabb mint a format
            strmid(RaceNames
  • , dini_Get(\"/rRaceSystem/RaceNames/RaceNames.txt\", string), 0, 20, sizeof(RaceNames));//nem látom miért szükséges neked ezt így eltárolni de azért bennehagyom viszont amugy meg fölösleges

            //nem tudom mennyi a maximum mérete a verseny neveknek ezért használom a RaceNames
  • tömböt, viszont ezt helyettesiteni lehetne egyetlen egy dimenziós stringel.

strcat(DialogString,RaceNames
  • );

if(x != x-1) strca(DialogString,\"\\n\");//ha nem a legutolsó elemrõl vna szó rakunk egy új sor karaktert, amúgy ez nem szükséges mert az üres sorokat amúgy sem jeleníti meg a Lista dialog ha utánna nem áll semmi viszont más esetekben még hasznos lehet.
            ShowPlayerDialog(playerid, 4224, DIALOG_STYLE_LIST, \"Melyik verseny legyen?\", DialogString, \"Índitás\", \"Bezárás\");
        }
    return 1;
}

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Verseny índitási parancs..
« Válasz #2 Dátum: 2013. Április 01. - 10:42:46 »
0 Show voters
Köszönöm Devil! :) +1

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal