Entweder nimmst du CJ's Laufstil oder das jeder Skin einen anderen hat.
Es geht nur eins von beiden.
Lesen bildet...
Du kannst entweder jeden anders laufen lassen, oder alle gleich!
Entweder nimmst du CJ's Laufstil oder das jeder Skin einen anderen hat.
Es geht nur eins von beiden.
Lesen bildet...
Du kannst entweder jeden anders laufen lassen, oder alle gleich!
Die Variable hat den Namen anscheinend nicht, am besten machst du vor dem SavePlayer bei OnPlayerDisconnect noch
new name[24];
GetPlayerName(playerid,name,24);
format(Spieler[playerid][pName],24,"%s",name);
Ich würde dazu raten, oder such nach dem Problem, dass es nicht geändert wird!
hast du es trotzdem so?
denn es ist so falsch das es kracht...
Omg was ist das fürn bull****
sry den ausdruck aber echt...
mach es so
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid == fbike[0] || vehicleid == fbike[1])
{
SendClientMessage(playerid,LILA,"*Okay,du hast von dem Nachbar das Fahrrad geklaut!");
SendClientMessage(playerid,LILA,"*Fahr jetzt schnell weg!");
}
return 1;
}
Vielleicht war das das problem
hmm stimmt habe ich wohl übersehen...
Was ist alles bei OnPlayerEnterVehicle drin?
siehe meinen letzten Post
was hast du alles in OnPlayerStateChange drin?
Bist du in einer Fraktion und kannst aufgrund eines Bugs evtl. kein Fahrzeug betreten?
Dieser Callback ist immer wenn du auf New bei Pawno drückst mit bei Guck mal nach
Diese Funktion gibt es bereits!
public OnPlayerRequestSpawn(playerid)
{
return 1; // Spawnen ist an!
//Bei 0 ist es aus
}
Wenn du nicht willst, dass er, beim Click auf Spawn, spawnt returne statt 1 einfach 0!
Quelle: Wiki
mach die 500 beim gametext zu sekunden zahl deiner wahl *1000
z.B. 5 Sekunden
GameTextForPlayer(playerid,"Text",5*1000,3);
auf garnichts ... theoretisch kannste den auch so lassen
Für den Cooldown (Eine "Abklingzeit" - "Zeit in der man den Befehl nicht nutzen kann") starte einfach nen Timer
OnGameModeInit()
{
SetTimer("ServerClose",15*60*1000,0);
}
forward ServerClose();
public ServerClose()
{
SendRconCommand("exit");
return 1;
}
Hallo liebe Community,
da es häufig Fehler bei MySQL gibt, dachte ich Ich mache mal ein Tutorial über das Auslesen.
Hinweis: Ich mache deshalb Absätze, damit es besser zu lesen ist!
Damit man überhaupt mit MySQL Datenbanken arbeiten kann, muss man natürlich das Script zu MySQL verbinden lassen, eine Datenbank erstellt haben usw.
Dafür guckt ihr euch am Besten dieses Tutorial an, wenn ihr das noch nicht gemacht habt bzw. Schwierigkeiten damit habt.: MySQL by Maddin
Nehmen wir das Beispiel Autohaus:
//Zu allererst müssen wir natürlich das hier machen
mysql_query("SELECT * FROM Autohaus"); // hier ist das Beispiel Autohaus (Die Tabelle muss exakt "Autohaus" heißen) - Wir wählen alle Einträge in der Tabelle Autohaus aus
mysql_store_result(); // Diese Funktion müssen wir benutzen, weil wir sonst später (evtl.) MySQL Errors bekommen
//nun die Abfrage ob es überhaupt Einträge gibt
if(!mysql_num_rows()) // hier ist nun die Abfrage ob die Einträge NULL ergeben bzw. ob es KEINE Einträge gibt
{
mysql_free_result(); //Muss da bleiben weil -> Siehe mysql_store_result
return 0;
}
//Wenn keine Einträge existieren Returnt es NULL was bedeutet, dass wir keine Else Abfrage brauchen
//D.h. wir können gleich mit der While-Schleife weiter machen
new result[50]; // zu dem komme ich gleich !!!
while(mysql_retrieve_row()) //Mit der while-Schleife machen wir die Funktion "mysql_retrieve_row()" solange bis sie alle Einträge von Autohaus durchhat
{
//Möchten wir z.B. einen Eintrag in z.B. ModelID aus dem momentanen Eintrag der Tabelle auswählen MÜSSEN wir entweder
//mysql_fetch_field
//oder
//mysql_fetch_field_row benutzen!
//andere Funktionen wie z.B. mysql_fetch_int funktionieren in mysql_retrieve_row NICHT!!!
mysql_fetch_field_row(result,"ModelID");
//Diese Funktion "kopiert" den Inhalt des Eintrages "ModelID" des momentanen Tabelleneintrags und fügt ihn in die Variable "result" ein
//Super jetzt haben wir eine Variable mit dem Inhalt des Eintrages.
//Nun können wir sie in einer z.B. Globalen Variablen speichern, damit man sie im ganzen Script nutzen kann.
//ModelID ist ein Integer (Ganzzahl (wie 1,2,3,8,1864,14564694, usw...))
GlobaleVariable = strval(result);
// Beachtet werden MUSS, dass die Variable "GlobaleVariable" ein Integer sein muss! d.h. new GlobaleVariable;
// "strval" deswegen, weil die Variable "result" ein Array ist!
// Wer sich jetzt fragt, "Warum ein Array, warum kein Integer?" wird die Antwort auch gleich bekommen
// mysql_fetch_field_row(string[], const fieldname[]) <-- der Aufbau der Funktion
// Wie du siehst MUSS die Variable in die der Eintrag eingefügt werden soll ein Array sein!
strdel(result,0,sizeof(result));
// Viele mögen das evtl. für unnötig sehen, aber ich mach es zur Sicherheit doch, falls irgendetwas beim Ersetzen schief läuft.
//Funktion strdel(string[],start,end) <-- ACHTUNG: Wichtig ist, das du bei dieser Funktion den Start NULL einfügst, wenn der Eintrag des Arrays vollständig gelöscht werden soll!
//Wollen wir einen Array auslesen müssen wir dasselbe machen
mysql_fetch_field_row(result,"Nummernschild"); // Nehmen wir hier das Nummernschild als Beispiel
format(ArrayVariable,sizeof(ArrayVariable),"%s",result);
// Hier MUSS ArrayVariable ein Array sein! d.h. new ArrayVariable[50]; Der Inhalt wird in die Variable "ArrayVariable" gesichert
strdel(result,0,sizeof(result)); // "result" wird für den nächsten Gebrauch vorbereitet.
//Wollen wir einen Float auslesen machen wir wieder dasselbe
mysql_fetch_field_row(result,"SpawnPosX"); // Eine Spawn-Position wie X
FloatVariable = floatstr(result); // FloatVariable MUSS als Float deklariert worden sein d.h. new Float:FloatVariable; !
strdel(result,0,sizeof(result)); // Erklärung unnötig
}
mysql_free_result(); // Am Ende natürlich "Free_resulten" ^^ Siehe mysql_store_result()
Das war es alles in allem.
Ich hoffe ich konnte euch damit weiter helfen
Fehler bitte Posten
Vielen Dank
MfG NicoAiko
erstens müsste es dann 127 sein und 2. das kann garnicht gehen -.-
wer hat denn bitte ein 129-stelliges passwort?
-.- bitte mal nachdenken
PS: ich probier es mal mit meiner Methode
nicht so -.-
erstelle im stock eine variable z.b. asdf[30];
dann mache
format(asdf,30,"%s",key);
setInt:SpielerSpeichern("Passwort",asdf);
so müsste es gehen
mache den Key in einen array mit bestimmter länge und sichere den
Hauke hat in der include das speicher array glaube ich auf eine bestimmte länge limitiert
unbestimmte gehen daher also nicht
das leerzeichen macht hallo du zu 2 strings also muss man sscanf("hallo du","ss",str,str2);
z.B. so ;D es sind 2 verschiedene strings genauso funktioniert das ja auch bei befehlen es erkennt die leerzeichen und braucht dann um beides zu sichern 2 strings.
yo schick per pn
Bei einem timer mit parametern benutzt man settimerex
Ich würde den timer mit playerid machen und aktivieren wenn der spieler in den busbot einsteigt.