GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: kriszrap - 2014. január 29. - 20:05:17

Cím: telefonszám
Írta: kriszrap - 2014. január 29. - 20:05:17
Sziasztok!
miért kapom ezt a hiba kódót?
erre a kódra:
 

format(string,sizeof string,\"0670%d\",RandomEx(9999999,1111111));
pInfo[playerid][telefonszam]= string;

 
 error 006: must be assigned to an array
vagy másik megoldásra is kivi vok ha van.
Cím: telefonszám
Írta: Lucio - 2014. január 29. - 20:07:42
Tessék, így jó lesz.
 
format(string,sizeof(string),\"0670%d\",RandomEx(9999999,1111111));
pInfo[playerid][telefonszam]= strval(string);
Cím: telefonszám
Írta: kriszrap - 2014. január 29. - 20:26:47
ma nem fok formába úgy látszik thx:))
Lehet talán off de mennyi sansza van hogy ugyan azt a számot be randomozza??
Cím: telefonszám
Írta: Dfoglalo - 2014. január 29. - 20:32:02
Nem sok. Viszont kiküszübölhetõ. Megnézed, hogy a generált szám létezik e már. Ha igen, egy új számot generálsz, majd ellenõrzöd az új számot. Mindaddig csinálod ezt, amíg egy, még nem létezõ számot nem kapsz.
Cím: telefonszám
Írta: kriszrap - 2014. január 29. - 20:33:30
mysql el dolgozom irnál egy példát azt zárok:)
Cím: telefonszám
Írta: Dfoglalo - 2014. január 29. - 20:36:11
Ezt még egyszer PHP-ban csináltam, amikor ki kellett írni néhány random számot, melyek nem lehettek ugyanazok. Átírtam pawn nyelvre, na meg a te kérésedhez illõre, remélem mûködni fog, és hasznát veszed a dolgoknak. Ha átírás közben elírtam valamit, ez van, sajnálom, de a lényegét érteni fogod a kódnak, és sikerül majd megoldanod a problémádat.
 
new Szam = // Itt csináld meg a random 4 jegyû számot!
format(mysql_string, sizeof(mysql_string), \"SELECT Teloszam FROM Tabla\"); // Lekérdezés formázása
mysql_query(mysql_string); // Lekérdezés
mysql_store_result();
while(mysql_fetch_row(mysql_line)) // Megnézzük az összes találatot
{
        if(Szam == strval(mysql_line)) // Ha a szám nem egyezik meg vele, nem történik semmi, azonban ha igen...
        {
                new i, Joszam;
                for(i = 0; Joszam != 1; i++) // ...elindul ez a for ciklus. Addig ismétlõdik, ameddig a Joszam értéke 1 nem lesz
                {
                        Szam = // Ide írd le megint azt, amivel megcsinálod a random 4 jegyû számot! Ezzel egy új számot kérve
                        if(Szam != strval(mysql_line)) // Amennyiben nem egyezik meg a Szam, és a találat értéke, a Joszam értéke 1 lesz, így nem folytatódik tovább a ciklus a végtelenségig, ismét új számot kérve
                        {
                                Joszam = 1;
                        }
                }
        }
}
mysql_free_result(); // Felszabadítod az erõforrást
// Itt már a Szam értékbe biztosan nem fog megegyezni más telefonszámok értékével. Ha egyszerre több játékos használja a dolgot, érdemes rá tenni egy playerid-s tömböt.
// Frissíted az adatbázist, vagy amit akarsz csinálni, például:
format(mysql_string, sizeof(mysql_string), \"UPDATE Tabla SET Teloszam = \'%d\' WHERE Nev = \'%s\'\", Szam, Nev(playerid));
mysql_query(mysql_string);

 
Ha esetleg elrontottam volna itt, pawn nyelvben, vagy nem értenéd a kód lényegét, mûködését, itt a PHP kód átirata egy darab teszt PHP fájlba, melyben a változók nevét átírtam a teszt fájlhoz, melyet rengetegszer újratöltöttem, és sosem kaptam ugyanazt a 2 számot. De ettõl függetlenül magának az elvnek mûködnie KELL, legyen szó bármely nyelvrõl, bármilyen értékadási módszerrõl, akár MySQL-os lekérdezésrõl, habár szerintem a pawn nyelves átiratom sincs elrontva. :)
 
$Szam1 = rand(1, 4);
$Szam2 = rand(1, 4);
if($Szam1 == $Szam2)
{
        for($i= 0; $Joszam != 1; $i++)
        {
                $Szam2 = rand(1, 4);
                if($Szam2 != $Szam1)
                {
                        $Joszam = 1;
                }
        }
        $Joszam = 0;
        echo \'Amennyiben ezt az üznetet látod, eleinte ugyanaz a két szám lett legenerálva.<br>
        Ezek után persze nem lenne szabad a szöveg alatt ugyanazt a két számot látnod.<br><br>\';
}
echo $Szam1;
echo \'<br>\';
echo $Szam2;
Cím: telefonszám
Írta: kriszrap - 2014. január 29. - 20:47:16
xd phpbe elõbb megértettem:DDDD
köszönöm szépen a fáradozásod nagy köszönet:)))
Cím: telefonszám
Írta: Dfoglalo - 2014. január 29. - 20:50:24
Hát igen, a pawn forráskódba már bele raktam a MySQL-os lekérdezést is, meg minden egyéb infót, amelymek eredménye egy sokkal átláthatatlanabb forráskód lett. Habár azért átlátható, de az egyszerû kis random számos php kóddal a módszer a legkönnyebben megérthetõ. S mivel ezek szerint már érted a dolgot, gondolom mindent megoldottál, amit meg akartál, szóval szerintem zárd a témát, ha csak nincs még valami kérdésed a témával kapcsolatban, melyre a közösség válaszolhat neked, nameg mielõtt BoOy, vagy ZyZu szólna, hogy nem zártál :D