Wenn du die sscanf Funktion nutzt, anstelle dem Plugin, versuche es so:
if(sscanf(params,"ssddds",fname,fshortname,typ,cop,skinid,farbcode))return SCM(playerid, -1, "Tippe: /cfraktion [name] [abkürzung] [typ 0=Neutral 1=Staat] [cop 0=Nein 1=Ja] [leaderskin-id] [farbcode(HTML)]");
Beiträge von Jeffry
-
-
Stimmen die Positionen? Bewegt sich das Objekt in diese Richtung?
Verfolge bitte mal ein Objekt, bis wo es sich hin bewegt. Wo endet es?Laut Code und Print scheint nämlich alles soweit zu passen. Die Koordinaten kann ich nicht beurteilen, das musst du im Spiel prüfen, ob die passen.
-
Ich würde es dir so empfehlen, das ist etwas strukturierter und ohne die nicht notwendigen Rundungen:
new time = gettime();
if(time > razziaStatusBS)
{
razziaStatusBS = time + 3600;
return 1;
}
time = razziaStatusBS - time;
format(string,sizeof(string),"Eine Razzia an diesen Schwarzmarkt kann erst wieder in %i:%02d Minuten gemacht werden.",time/60,time%60);
ErrorMsg(playerid,string);
return 1; -
Ah, noch eins hab ich übersehen:
new fInfo[][fraktEnum];
zu:
new fInfo[MAX_FRAC][fraktEnum];Auf Grund des Bildes:
Das mit der Farbe dann wieder zu:
cache_get_value_name(i, "Color", fInfo[i][f_color], 64);Und dann im enum:
f_color
zu:
f_color[16] -
cache_get_value_name(i, "Color", fInfo[i][f_color], 64);
zu:
cache_get_value_name_int(i, "Color", fInfo[i][f_color]);Und
f_shortname[256],
zu:
f_shortname[64],Wenn es weiterhin nicht geht, poste bitte einen Screenshot deiner SQL-Tabellenstruktur.
-
Speichere alle deine Script Dateien (.pwn und .inc) im ANSI Format und kompiliere danach den Code erneut.
Notepad++ => Kodierung => Konvertiere zu ANSI
-
Es hat sich aufjedenfall etwas getan. jetzt wechselt sich es immer so: Ganz kurz kommt das richtige textdraw, dann so: 100 dann 98 102 99 usw..
Es funktioniert jetzt^^, habe es einfach 2mal hinzugefügt und es funktioniert einfach
Interessant! Normalerweise sollte es keine Variablen geben, die mit 1 vorbelegt sind, außer das ist irgendwo im Code so gemacht worden.
Prinzipiell würde ich dir aber trotzdem empfehlen, danach zu suchen, wodurch die Zahlen verursacht werden, das ist ja nicht normal. Dort greift der Code auf Textdraw-Variablen zu, die unbelegt sind, sprich auf Textdraws, die nicht existieren.
Aber gut, dass du es soweit mit zwei Textdraws umgehen kannst. -
Jemand ne Ahnung, warum bei meinen Textdraws immer eine 100 kommt anstatt die Textdraws? Sprich ich habe ein Textdraw wegen No-DM zone, anstatt das "Ruhezone" kommt, kommt eine 100 warum ?
Könnte ein fehlerhafter Zugriff auf ein nicht erstelltes Textdraw sein, somit wird das Textdraw mit der ID 0 verändert. Das kann man mit einem kleinen Trick umgehen, indem man die ID 0 vorbelegt, aber nie anzeiegt:
Direkt unter OnGameModeInit, als erstes:
TextDrawCreate(0.0, 0.0," "); //DummyDann dürfte der Fehler nicht mehr auftreten.
-
Versuche es bitte mal so:
MoveDynamicObject(hbi[i][h][hb_ID],hbi[i][h][h_x]-1.325,hbi[i][h][h_y],hbi[i][h][h_z]+0.275,8.5,0.0, 0.0,hbi[i][h][h_r]);
zu:
printf("Bewege Objekt %d zu %f/%f/%f", hbi[i][h][hb_ID],hbi[i][h][h_x]-1.325,hbi[i][h][h_y],hbi[i][h][h_z]+0.275);
MoveDynamicObject(hbi[i][h][hb_ID],hbi[i][h][h_x]-1.325,hbi[i][h][h_y],hbi[i][h][h_z]+0.275,8.5);Wenn es sich weiterhin zur Mitte hin bewegt, poste bitte, was im Server Log ausgegeben wird.
-
Ich war leider die Tage außer Haus und nicht am PC und konnte daher nicht antworten.
Wie sieht dein Code jetzt aus, und wie sieht das enum zu fInfo aus?
-
Nutze anstatt
fInfo[id]
Das i:
fInfo[i] -
cache_get_value_name(i, "Name", fInfo[i][f_name]);
zu:
cache_get_value_name(i, "Name", fInfo[i][f_name], 32);Die 32 steht für die maximale Länge des Namens. Das muss in diesem Fall mit angegeben werden.
-
bei mir kommt in der Konsole der ERROR ModelID 1 nicht gefunden (ID: 1) 6-7 mal.
Dann scheinst du beim Speichern in das Feld "ModelID" nicht die tatsächliche modelid des Fahrzeugs (400-611) zu schreiben, sondern etwas anderes. Prüfe das (Query per print ausgeben), bzw. poste den Code + Log bitte.
EDIT:
Jetzt am PC fällt mir der Fehler gleich auf:
fracVehicle[id][e_modelID] = cache_get_value_name_int(i, "ModelID", fracVehicle[i][e_modelID]);
zu:
cache_get_value_name_int(i, "ModelID", fracVehicle[i][e_modelID]);Gleiches für alle anderen.
Das hast du ja auch selbst schon herausgefunden, ich wollte es nur nochmal klarstellen, falls jemand einen ähnlichen Fehler hat. -
Nimm den root Benutzer ohne Passwort:
#define db_host "localhost" //bzw. 127.0.0.1
#define db_user "root"
#define db_pass ""
#define db_db "samp" //samp = Datenbankname, eventuell anpassenDas ist in 99% aller Fälle standardmäßig so eingestellt.
Dein user "samp" wird nicht die richtigen Berechtigungen haben, das ist auf localhost (dein Rechner) so eingestellt, standardmäßig zumindest.
Deshalb benutze, wie ich oben geschrieben habe, den root-User ohne Passwort, der hat ALLE Berechtigungen. Dem kannst du später auch, je nach Client, ein Passwort geben. -
Beim Motor Befehl für die Fahrräder:
if(startbmx[playerid] == GetPlayerVehicleID(playerid))
{
//Motor starten.
}
else
{
//Motor nicht starten
} -
ich suche diesen weißen Rahmen auf der linken Seite:
Du kannst es auch mal mit 9131 versuchen.
Name: shbbyhswall13_lvs -
was bringt das "CreateServerVehicle" dann?
Kommt auf die Funktion an, diese existiert im Standard nicht und kann daher alles enthalten.
Du kannst diese gerne mal posten. -
man spart doch sicher Ressourcen
Nein, im Gegenteil, da ständig die Position und Distanz aller Fahrzeuge zu allen Spielern berechnet werden muss.
Übrigens sind die Fahrzeuge in SA-MP seit einiger Zeit (seit der Erhöhung von 700 auf 2000) vom Server her bereits automatisch gestreamt, daher folgende Callbacks:
http://wiki.sa-mp.com/wiki/OnVehicleStreamIn
http://wiki.sa-mp.com/wiki/OnVehicleStreamOutEinen weiteren Streamer zu nutzen hätte daher keinen Effekt, solange du unter 2000 Fahrzeugen bleibst. Es würde nur Sinn machen, wenn du dies überschreiten möchtest.
-
-
[23:56:22] CMySQLHandler::Query(SELECT `Password` FROM `users` WHERE `Name` = 'Pyce' AND `Password` = 'abc' LIMIT 1;) - Successfully executed.
Das sieht so aus als kommt das vom Login, da das Passwort angegeben ist.
Du musst die Registration ausführen und davon den Log posten.
Am besten dann auch den Code dazu.