Hallo,Ich will ein Handy System machen...
Dort will ich natürlich eine Zufallsnummer generieren lassen beim Register...
Wie frage ich ab (auch bei Offline Player) ob die nummer bereits Existiert ?
ich Benutze NOCH Dini...
Frage Für Handysystem
- Mr.Soap
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Wenn die Handynummer nur im Profil steht,eher schwer umsetzbar. Denn du kannst nicht ohne weiteres jede Datei in einem Ordner öffnen ( wäre nur mit Plugin möglich ).
Du müsstest dann jedes Profil abrufen und schauen,ob der Spieler dort nicht bereits diese Handynummer besitzt.Einfacher wäre es,eine Datei anzulegen in der einfach nur alle belegten Handynummern drin stehen. Ob das jetzt mit SQL oder normalen Dateien gemacht wird, ist dir überlassen. Bei den normalen Dateien würde es auch mit Dini funktionieren. Der Schlüssel wäre die Handynummer,der Wert z.B. der Spielername. Du legst die Zufalls-Handynummer an und prüfst ob diese bereits in der Datei ist.
Falls ja, neue Zufalls-Handynummer anlegen. Falls nicht,ist sie nun belegt und legst sie in der Datei als belegt an. -
Goldkiller ? Wäre es nicht so möglich :
for(new i=0;i<MAX_PLAYERS; i++) {
new rand, pfad[128];
rand = random(9000) ;// Wir generieren die Random Nummer ;)
format(pfad, 128, "/Accounts/%s.ini",SpielerName(i)); // Pfad Einstellungen
if(dini_Int(pfad,"HandyNummer") == rand) { // Wenn Nummer aus irgendeiner Datei = Random Zahl
rand = random(9000); // Neu Generieren
} else { // Wenn nicht
format(pfad, 128, "/Accounts/%s.ini",SpielerName(playerid)); // Pfad vom Spieler !!!
dini_IntSet(pfad,"HandyNummer",rand); // HandyNummer auf Random Zahl setzen
}
}???
MfG
-
Kleiner Tipp noch von mir bei
rand = random(9000) ;// Wir generieren die Random Nummer ;)eher
rand = random(9000)+1
machen, damit kein user die Nummer 0 hat.
Eventuell könnte man auch +1234 machen, damit es keine so glatten Zahlen gibt
wie z.B. 600 -
Goldkiller ? Wäre es nicht so möglich :
for(new i=0;i<MAX_PLAYERS; i++) {
new rand, pfad[128];
rand = random(9000) ;// Wir generieren die Random Nummer ;)
format(pfad, 128, "/Accounts/%s.ini",SpielerName(i)); // Pfad Einstellungen
if(dini_Int(pfad,"HandyNummer") == rand) { // Wenn Nummer aus irgendeiner Datei = Random Zahl
rand = random(9000); // Neu Generieren
} else { // Wenn nicht
format(pfad, 128, "/Accounts/%s.ini",SpielerName(playerid)); // Pfad vom Spieler !!!
dini_IntSet(pfad,"HandyNummer",rand); // HandyNummer auf Random Zahl setzen
}
}???
MfG
Was ist mit Usern die gerade nicht Online sind ? Hab mir den Code nicht vollständig angeschaut. Aber in der Schleife die Zufalls-Nummer immer neu anzulegen,nicht so clever^^. -
Stimmt...
Das würd schon schwieriger...
Obwohl man kann ja extern eine Variable hochzählen lassen wenn sich ein User registriert ! Oder eine Nummer kauft (2. Ist besser :D)
Und mit dieser Variable macht man dann die Schleife ... Würde das gehen ?Beispiel :
10 User haben sich eine Nummer gekauft also Variable = 10
Für alle 10 Datein nun abfragen ob HandyNummer nun schon vorhanden wenn sich ein anderer User eine kaufen will...
Das müsste doch eigentlich gehen oder Goldkiller ?MfG
/edit Ja das war weil ich es schnell schreiben wollte Hast Recht die Zufalls Nummer sollte man außerhalb der Schleife anlegen..
-
Danke für eure Hilfe denke ich mache ganz Einfach eine Handynummerdatei
Wisst ihr warum hier ein error kommt ?
#define MAX_PICKUPS 100
redefinition of constant/macro (symbol "MAX_PICKUPS")
@[RcS]Big_Ben
GoldkillerDanke für eure Hilfen
-
würde ma denken dass es MAX_PICKUPS bereits existiert.
Glaub sogar dass is von SA:MP vorgegeben. -
Anscheinend hast du MAX_PICKUPS schonmal definiert ...
Weil er ja sagt "redefinition" also neu Definierung bzw. erneute Definierung...
Vlt. ist es auch schon von SA:MP definiert...
Mach einfach mal aus MAX_PICKUPS --> MAXIMALE_PICKUPS vlt. ist er dann wegMfG
/edit
-
Hmmm ich probiere es mal anders zu defieniren...
//edit Nun bekomme ich neue Errors...
stock LoadPickups(pickupid)
{
new Pickups[64];
format(Pickups,sizeof(Pickups),"/Pickup.%d.txt",pickupid);
if(!fexist(Pickups))return 0;
pInfo[pickupid][X] = dini_Float(Pickups,"PosX");
pInfo[pickupid][Y] = dini_Float(Pickups,"PosY");
pInfo[pickupid][Z] = dini_Float(Pickups,"PosZ");
pInfo[pickupid][PickupId] = dini_Int(Pickups,"Pickupid");
pInfo[pickupid][PLabel] = Create3DTextLabel("Haus",ORANGE,bInfo[pickupid][X],bInfo[pickupid][Y],bInfo[pickupid][Z],25,0); // ERROR ZEILE !!!!
CreatePickup(pInfo[pickupid][PickupId],[pickupid][X],bInfo[pickupid][Y],bInfo[pickupid][Z]);return 1;
}C:\Program Files (x86)\LogMeIn Hamachi\MrMonat\gamemodes\Arendium.pwn(2416) : error 017: undefined symbol "bInfo"
C:\Program Files (x86)\LogMeIn Hamachi\MrMonat\gamemodes\Arendium.pwn(2416) : warning 215: expression has no effect
C:\Program Files (x86)\LogMeIn Hamachi\MrMonat\gamemodes\Arendium.pwn(2416) : error 001: expected token: ";", but found "]"
C:\Program Files (x86)\LogMeIn Hamachi\MrMonat\gamemodes\Arendium.pwn(2416) : error 029: invalid expression, assumed zero
C:\Program Files (x86)\LogMeIn Hamachi\MrMonat\gamemodes\Arendium.pwn(2416) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
-
-
Haste bInfo deklariert?
-
Habe das so Vom Tutorial habe so etwas mit Ingamerstellbaren sachen bisher noch nicht gemacht...
[ SCRIPTING ] Wie man sachen Ingame erstellen Speichern und Laden kann
-
Es heißt nach dem Tutorial "pInfo" nicht "bInfo" einfach ersetzten
Dann sollten die errors weg sein...MfG
-
Hmmm nun sind sie in der Zeile danach:
C:\Program Files (x86)\LogMeIn Hamachi\MrMonat\gamemodes\Arendium.pwn(2417) : error 029: invalid expression, assumed zero
C:\Program Files (x86)\LogMeIn Hamachi\MrMonat\gamemodes\Arendium.pwn(2417) : warning 215: expression has no effect
C:\Program Files (x86)\LogMeIn Hamachi\MrMonat\gamemodes\Arendium.pwn(2417) : error 001: expected token: ";", but found "]"
C:\Program Files (x86)\LogMeIn Hamachi\MrMonat\gamemodes\Arendium.pwn(2417) : error 029: invalid expression, assumed zero
C:\Program Files (x86)\LogMeIn Hamachi\MrMonat\gamemodes\Arendium.pwn(2417) : fatal error 107: too many error messages on one line -
Poste mal die Errorzeilen dazu...
//Also die Zeilen wo die Fehler auftreten und bitte markiern -
Ich würde dir empfehlen, entweder eine Datei mit vergebten Nummern anzulegen oder die Nummer hochzählen.
Eine Datei mit einem [Nummer]=[Besitzer] Schema, um schnell den Besitzer einer Nummer ausfindig zu machen. -
breadfish.de
Hat das Thema geschlossen.