Szerző Téma: telefonszám  (Megtekintve 864 alkalommal)

telefonszám
« Dátum: 2014. január 29. - 20:05:17 »
0 Show voters
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.

Nem elérhető Lucio

  • 232
    • Profil megtekintése
telefonszám
« Válasz #1 Dátum: 2014. január 29. - 20:07:42 »
0 Show voters
Tessék, így jó lesz.
 
format(string,sizeof(string),\"0670%d\",RandomEx(9999999,1111111));
pInfo[playerid][telefonszam]= strval(string);

telefonszám
« Válasz #2 Dátum: 2014. január 29. - 20:26:47 »
0 Show voters
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??

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
telefonszám
« Válasz #3 Dátum: 2014. január 29. - 20:32:02 »
0 Show voters
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.
« Utoljára szerkesztve: 2014. január 29. - 20:33:52 írta Dfoglalo »

telefonszám
« Válasz #4 Dátum: 2014. január 29. - 20:33:30 »
0 Show voters
mysql el dolgozom irnál egy példát azt zárok:)

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
telefonszám
« Válasz #5 Dátum: 2014. január 29. - 20:36:11 »
+1 Show voters
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;
« Utoljára szerkesztve: 2014. január 29. - 20:42:13 írta Dfoglalo »

telefonszám
« Válasz #6 Dátum: 2014. január 29. - 20:47:16 »
0 Show voters
xd phpbe elõbb megértettem:DDDD
köszönöm szépen a fáradozásod nagy köszönet:)))

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
telefonszám
« Válasz #7 Dátum: 2014. január 29. - 20:50:24 »
+1 Show voters
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
« Utoljára szerkesztve: 2014. január 29. - 21:00:45 írta Dfoglalo »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal