Kannst du erläutern was das Ausrufezeichen vor dem PVar Namen zu bedeuten hat?
Das packt den String: https://forum.sa-mp.com/showthread.php?t=480529
Der verbraucht dann nur 1/4 an Speicherplatz.
Kannst du erläutern was das Ausrufezeichen vor dem PVar Namen zu bedeuten hat?
Das packt den String: https://forum.sa-mp.com/showthread.php?t=480529
Der verbraucht dann nur 1/4 an Speicherplatz.
Mach es so:
AddPlayerClass muss es meines Wissens geben.
Es geht beides...
aber ich möchte diese billige Skin Auswahl nicht
Einfach so:
public OnPlayerRequestClass(playerid, classid)
{
SetSpawnInfo(playerid,0,299,0,0,3,0,0,0,0,0,0,0);
SpawnPlayer(playerid);
return 1;
}
Dann gibt es auch keine billige Skin-Auswahl.
Musst halt dann noch den Startscreen vom Spieler entsprechend setzen, also was er sehen soll.
Zum Beispiel unter OnPlayerConnect machst du ein SetPVarInt(playerid,!"new_connected",1);.
Und dann unter OnPlayerSpawn (ganz oben prüfst du):
if(GetPVarInt(playerid,!"new_connected"))
{
TogglePlayerControllable(playerid, 0);
SetPlayerCameraPos(playerid, 0,0,50);
SetPlayerCameraLookAt(playerid, 0,0,100);
DeletePVar(playerid, !"new_connected");
return 1;
}
und warum geht es Localhost kann mir jemand die Frage beantworten
Weil es irgendwo irgendeinen Unterschied gibt...habe ich doch schon gesagt...
Vergleich doch einfach mal die Server Logs.
Lädst du evtl auf Windows noch Filterscripts?!
Nein, das ist nicht möglich. Linux ist auch nicht zum Spiele spielen ausgelegt.
Natürlich ist das möglich, dazu gab es sogar schon einen Thread vor 11 Jahren ![]()
aber wieso geht das localhost?
Na, da wird wohl irgendwas anders sein.
Connecten da zufällig eig noch Bots?
oooder hast du da auch sicher die selbe ID?
Wie ist das Skript denn aufgebaut? Unabhängig davon, verwendest du denn SetSpawnInfo oder AddPlayerClass?!
Sicher, dass das für dich aufgerufen wird?
Wieso googelt eig niemand mehr erstmal seine Probleme? ![]()
Du musst entweder SetSpawnInfo oder AddPlayerClass verwenden ![]()
//einfach nur if ohne alles.. ??
Nein, das ist nicht ohne alles, die Klammer dafür, ist einfach nur versetzt. Unter dem if steht ja eine ( Klammer, für die Abfrage, keine {.
Wurde schon 100000x mal geklärt. Eine einfache google Suche hätte es auch getan.
Du verwendest killerid in Arrays, obwohl du nicht prüfst, ob killerid != INVALID_PLAYER_ID ist.
und wenn du es ausließt müsstest du es enthashen
Eieieiei, schau dir nochmal mein Tutorial an: Hash Verfahren genauer erklärt
Sowas wie enthashen gibt es nicht.
Da ein Hash keine Verschlüsselung ist.
Demnach ist dieses ganze Unterfangen auch komplett sinnlos, sowas in der Datenbank zu speichern.
Ich habe auch eingebaut das man das RCON PW ändern kann, kann ich dies genau so wie Account PWs mit Bcrypt hashen in der DB?
Wozu solltest du das in einer Datenbank speichern wollen, wenn es eh in der server.cfg steht?
ch hab es schon mit nem timer probiert aber bekomme es nicht hin die
Hä?
Musst doch nur alles zusammenführen:
//Oben im Skript
new bool:g_open;
//Im Timer:
new bool:in_range;
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(IsPlayerInRangeOfPoint(i,6,929.0650,-1216.7328,16.9343) && (IsAFirefighter(i)|| IsPlayerInFrac(i,1) || IsPlayerInFrac(i,2)))
{
MoveDynamicObject(gate,x,y,z,speed,r1,r2,r3); //<< open
in_range=g_open=true;
break;
}
}
if(!in_range && g_open && !IsDynamicObjectMoving(gate))
{
MoveDynamicObject(gate,x,y,z,speed,r1,r2,r3); //<< close
g_open=false;
}
Alles anzeigen
So bald ich mein /kick befehl nutze mit parametern kommt eine fehlermeldung:
Du musst grund auch schon als string deklarieren ![]()
if(!PlayerInfo[pID][LoggedIn]) return NO_CONNECT_P
Schreib das so:
Denn pID wird auf INVALID_PLAYER_ID durch sscanf gesetzt ergo (65535) und da du das in das Array packst, das aber nur eine größe von 1000 hat, kommt es hier zu einem Fehler. Das bedeutet, dass du das abfangen musst.
Das kannst du so machen oder auch:
Wobei der IsPlayerConnected sicherer ist, da er auch ohne sscanf funktionieren würde ![]()
wie mache ich es wenn ich mich mit einem Fahrzeug einer Schranke näher das sie dann auf geht ohne das ich ein Befehl eingeben muss?
Über einen Timer (oder Streamer-Zonen) prüfst du, ob der Spieler in der Nähe ist und dann bewegst du einfach das Objekt (Objekte langsam rotieren lassen)
Und wenn er weg ist, lässt du die schranke wieder runter.
Magst uns oPawn mal zeigen?
Kenne das z.B. nicht.
Muss ich in der Datenbank oder bei OnPlayerRegister Default Werte eintragen oder wo liegt der Fehler?
Gibt 2 Möglichkeiten.
Entweder du trägst in der Datenbank (also in der Tabelle) den Default Wert für die Spalte Euro ein und zwar auf 0.
Oder du gibst diese beim Insert einfach mit, machst halt einfach noch ein `Euro` dazu und den Wert eben auf 0.
Nix für ungut, aber kannst du einfach zeigen, was nun da steht? 😅
Mit "ja geht nicht" kann man halt absolut nichts anfangen...
Compile nochmal...das sieht aus, als ob das noch der alte Code ist, wo i=1 war...
Sei doch so gütig und zeige uns, wie der Code dazu aussieht...
Also in der Datenbank hat die erste crew die ID 1 ka wieso nicht null.
Ja, da wird ab 1 gezählt.
Aaaaaber trotzdem sind doch in deinem Array alle Einträge bei 0.
Ich würde es definitiv bei 0 starten lassen und bei den Abfragen einfach sowas machen: