Kann ich dir so leider nicht sagen, da es schon etwas her ist. Aber generell haben doch viele Server eigene Sachen draußen auf dem Meer?
Ich versuche einfach mal alle Objekte raus zu nehmen. - Editiere den Beitrag gleich, falls kein neuer kommt.
Kann ich dir so leider nicht sagen, da es schon etwas her ist. Aber generell haben doch viele Server eigene Sachen draußen auf dem Meer?
Ich versuche einfach mal alle Objekte raus zu nehmen. - Editiere den Beitrag gleich, falls kein neuer kommt.
Ich starte es auf der neusten Version. - Und es funktioniert auch wunderbar bis man auf den "Spawn" Button der ClassSelection drückt.
Selbstverständlich die neusten Includes.
€dit:
Selbst wenn ich alles in OnPlayerSpawn und OnPlayerRequestClass ausklammere (außer ein return 1;) passiert es.
Auf den alten Versionen funktioniert es auch nicht mehr.
Das Script lag seit 0.3d nur rum. - Damals ging es, jetzt nicht.
Dazu gibts schon hunderte Topics, bitte SuFu benutzen.
- Tom
Ist mir bewusst, doch dort habe ich keine Antwort gefunden, die mir hilft. - Sonst hätte ich das Thema ja nicht geöffnet, oder?
Gruß,
Neo.
Hallöchen,
habe ein "kleines" Problem mit meinem Script. Jedes mal, wenn ich spawne, erscheint das "Stay within the world boundaries". Leider auf die unschöne Art. (http://imageshack.us/a/img231/9255/samp376hh.png (Nicht mein Screen, aber so änhlich sieht es aus.)) Ich habe alle Worldboundries raus gemacht. AddPlayerClass ist auch drin.
Spawn:
Hoffe jemand hat die Lösung.
Gruß,
Neo.
Umgehen kannst du das nicht, mach einfach da wo der Spieler spawnt
SpawnPlayer(playerid); sollte es überspringen.
Soweit ich weiß, geht das aber auch nur mit 'nem Timer.
Das ist ja das selbe wie hier.
Einfach ein random von 1000-9999 (Wenn es 4 Stellig sein soll), dann abfragen, ob kein anderer die Nummer hat. Falls sie keiner hat, ihm die nummer geben, falls sie einer hat, nochmal das Random ausführen.
Könnte man den wert nicht in ein array setzen bzw in eine spieler bezogene vari und dann den output wert von random nicht mit einer schleife + if(vari[i][code] == output von random abfragen?
Geht ja dann aber nur von den Spielern, die online sind. - Er will's ja für alle machen.
Mit Dini ist das so eine Sache.
Du müsstest vielleicht alle Zahlen in eine Datei speichern. (Bsp. zahlen.txt, mit erstmal einem key (max))
Wenn jemand connectet dann und noch nicht registriert ist:
new max = dini_GetInt("zahlen.txt", "max");
dini_SetInt("zahlen.txt", "max", max+1);
for(new i; i < max; i++)
{
format(sTest, sizeof(sTest), "%i", max);
if(dini_GetInt("zahlen.txt", sTest) != 0)
{
dini_IntSet("zahlen.txt", max, 1); // 1 = Benutzer existiert, hat aber kein Bank Account.
dini_IntSet(DeineSpielerDatei, "zahl", max); // Das ist dann die Zahl in der Zahlen Datei. Sprich: 1 entspricht der Zahl 1 in der Zahlen datei.
}
}
Wenn er dann eine Zahl bekommt:
new zahl[10], max, found, key;
max = dini_GetInt("zahlen.txt", "max");
format(zahl, sizeof(zahl), "%i", dini_GetInt(SpielerDatei, "zahl"));
new wert = random(89999999) + 1000000;
loop_start:
for(new i; i < max; i++)
{
if(dini_GetInt("zahlen.txt", i) == wert) // Wenn die Zahl existiert.
{
key = i; // der Key für unten
found++;
}
}
if(found == 0) {
dini_IntSet("zahlen.txt", key, wert);
}
else
{
goto loop_start;
}
# Ungetestet, aus dem Gedächnis und auf die schnelle geschrieben. Aber so würde ich das ganze lösen. Ist zwar extrem umständlich, aber anders bekommst du es mit dini nicht hin. Da empfiehlt sich MySQL.
Die Lösung von @NicoWiss ist natürlich vieeeel einfacher.
Naja, so funktioniert das auch nicht.
Habe das zwar selbst nicht ganz verstanden, aber es sollte so gehen (laut Thema):
strmid(hier dein enum, hier die Datei, false, strlen(nochmal die Datei), länge);
Habe's mal kurz in Pawn getestet, und das haut keine Errors raus. Obs im Endeffekt geht, kann ich dir nicht sagen.
Ich bin nicht blöd ;O
Hätte ja sein können.
Alles anzeigen
enum FraktionsInfo
{
ID,
Rang1[12],
Rang2[12],
Rang3[12],
Rang4[12],
Rang5[12],
Rang6[12],
Bank
}
Auch wenn ich den String hochsetzte ändert es nix
Hm. Hab's gerade auch mal probiert und bei mir kommt der selbe Fehler.
Vielleicht hilft dir das? http://forum.sa-mp.com/showthread.php?t=329081
Hast du den Rang auch als String definiert?
Zeig mal deinen Enum.
FrakInfo[Rang1] = dini_Get(file[], key[]); würde ich behaupten.
dini_Get(file[], key[]);
dini_Get("blub.txt", "Name"); zum Beispiel.
Zitatzahl = d (handynummer) text = s (nachricht)
Das ist richtig. - Aber um die Fehlermeldung bei der falschen Parameterangabe auszugeben benutzt man einfach nur if(sscanf....), oder irre ich mich?
Was gibt er dir denn aus?
if(!sscanf(params,"ds",num,string1)) return SendClientMessage(playerid,Rot,"Benutzung: /sms [Nummer] [Nachricht]");
Muss das ! nicht eigentlich da raus? http://wiki.sa-mp.com/wiki/Fast_Commands#example_revisited
Das kommt darauf an, wie viel Erfahrung du hast.
Solltest du ein Anfänger sein, dann würde ich dir ein Selfmade an's Herz legen, um es richtig zu lernen.
Da die deutsche SA-MP Community nur den GF-Müll gerne spielt (Ausnahmen vorhanden), solltest du dann später dich dem GodFather widmen.
Gruß,
Neo.
Da du bei dem Timer Variablen verwendest, musst du diese auch weiter geben. Dies machst du mit SetTimerEx:
SetTimerEx("tot",60000,false, "i", playerid);
Dann musst du in tot() noch die Parameter einhängen. tot(playerid)
Gruß,
Neo.
Hast du es mit einem leeren Script sowie ohne andere Filterscripts getestet?
Manchmal überschneiden sich die Dialoge.
Gruß,
Neo.