Zeig noch mal, wie dein Code jetzt aussieht. Das einzige, was du wahrscheinlich ändern musst ist die Größe von nstr (new nstr[MAX_PLAYER_NAME];), aber das führt zu einem anderen Fehler.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
-
-
-
Das musst du schon so lassen: new PropertyOwner[MAX_PROPERTIES][MAX_PLAYER_NAME]; Und wie gesagt, die nstr Variable auf MAX_PLAYER_NAME setzen, sonst kannst du dem Array den String nicht zuweisen.
-
Danke, geht. Bin nur gewohnt dort auch ein [MAX_PLAYER_NAME] einzubauen da es bei vorherigen funktionen eigentlich immer geklappt hat
Heute bin ich extremst müde, keine Ahnung -
Leute Ich mache gerade ein Carsystem, jedoch hab ich wahrscheinlich hier ein Fehler:
Der Server findet den Spieler in der Datenbank nicht mehr. --> Ich muss mich immer neu Registrieren.if(!PlayerInfo[playerid][pLoggedIn])
{
new query[128];
new query2[128];
mysql_format(handle, query, sizeof(query), "SELECT id FROM users WHERE name = '%e'", PlayerInfo[playerid][pName]);
format(query2, sizeof(query2), "SELECT * FROM user_fahrzeuge WHERE besitzer='%d'", PlayerInfo[playerid][p_id]);
mysql_pquery(handle, query2, "OnUserLoadCars", "d", playerid);
//Das Query wird abgesendet und die playerid an OnUserCheck übergeben
mysql_pquery(handle, query, "OnUserCheck", "d", playerid);
}Wenn ich das was hier mit dem Carsystem zutun hat entferne, findet er wieder mein Account in der Datenbank.
Wie kann ich das richtig schreiben?
-
Du meinst beim Login findet er den Spieler nicht mehr? Ist der Spieler denn in der Datenbank noch vorhanden? Der Code oben wird doch wahrscheinlich erst nach dem Login ausgeführt oder?
-
Du meinst beim Login findet er den Spieler nicht mehr? Ist der Spieler denn in der Datenbank noch vorhanden? Der Code oben wird doch wahrscheinlich erst nach dem Login ausgeführt oder?
ist schon erledigt danke
//edit:
Ich möchte jetzt bei den Autos auch die Farbe Speichern, hab ich auch gemacht aber jetzt Speichert er keine Autos in die Datenbank wenn ich welche Erzeuge.
saveCarToDB(playerid,carid)
{
new query[128];
format(query,sizeof(query),"INSERT INTO user_fahrzeuge (besitzer,model,x,y,z,r,farbe1,farbe2) VALUES ('%i','%i','%f','%f','%f','%f','%i','%i')",PlayerInfo[playerid][p_id],CarInfo[carid][model],CarInfo[carid][c_x], CarInfo[carid][c_y], CarInfo[carid][c_z], CarInfo[carid][c_r],CarInfo[carid][farbe1],CarInfo[carid][farbe2]);
mysql_pquery(handle, query);
return 1;
}
createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r,Color1,Color2)
{
for(new i=0; i<sizeof(CarInfo); i++)
{
if(CarInfo[i][id_x]!=0)continue;
CarInfo[i][besitzer]=PlayerInfo[playerid][p_id];
CarInfo[i][c_x]=x;
CarInfo[i][c_y]=y;
CarInfo[i][c_z]=z;
CarInfo[i][c_r]=r;
CarInfo[i][model]=modelid;
CarInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,Color1,Color2,-1);
CarInfo[i][db_id] = cache_insert_id();
new string[128];
format(string,sizeof(string),"Das Auto CarInfo[%i] wurde erstellt.",i);
SendClientMessageToAll(CL_SERVER,string);
saveCarToDB(playerid,i);
return 1;
}
return 1;
}Bitte um Hilfe.
-
Bitte einmal einfügen und dann die Ausgabe aus der Konsole bzw. der server_log.txt kopieren und hier senden.
C
Alles anzeigencreatePlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r,Color1,Color2) { for(new i=0; i<sizeof(CarInfo); i++) { if(CarInfo[i][id_x]!=0)continue; print("cratePlayerCar - Step 1"); CarInfo[i][besitzer]=PlayerInfo[playerid][p_id]; CarInfo[i][c_x]=x; CarInfo[i][c_y]=y; CarInfo[i][c_z]=z; CarInfo[i][c_r]=r; CarInfo[i][model]=modelid; print("cratePlayerCar - Step 2"); CarInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,Color1,Color2,-1); print("cratePlayerCar - Step 3"); CarInfo[i][db_id] = cache_insert_id(); print("cratePlayerCar - Step 4"); new string[128]; format(string,sizeof(string),"Das Auto CarInfo[%i] wurde erstellt.",i); SendClientMessageToAll(CL_SERVER,string); print("cratePlayerCar - Step 5"); saveCarToDB(playerid,i); print("cratePlayerCar - Step 6"); return 1; } return 1; }
-
moin ich habe ein problem.
Ich versuche grade meine adminhilfe auf Dialoge umzustellen.
Nehme dafür die Msgbox und \n damit die befehle mit beschreibung eine zeile haben.
Mein problem ist das ich immer den error inputtext too long (after substitutions) bekomme. Verwende schon fomat dafür.
Bei anderen server geht das ja auch.if (sSpieler [plsyerid][adminlevel] ==level;
{
Switch sspieler plsyerid adminlevel (sollte klar sein)
Fornat(define, sizeof (define)," bestimmt um die 400 zeichen sollte aber nicht das problem sein");
Showplayerdialig (plsyerid,define,style msgbox,"mein string aus fornat","fertig","");return 1;
}War jetzt mit handy deswegen etwas falsch aber denke verständlich.
-
Schreibe dein format in mehrere Zeilen:
format(string, sizeof(string), "Text 1\n");
format(string, sizeof(string), "%sText 2\n", string);
format(string, sizeof(string), "%sText 3", string); -
-
Und alle 3 format sind dann in einer msgbox?
-
Ja.
Dadurch dass sie jeweils miteinander verbunden wurden (%s wird mit string gefüllt, somit wird immer der vorherige Text mitgezogen). -
wonach legt sich der varchar oder int für MySQL ab ? Kann mir das jemand kurz und knapp erklären?
Weil ich etwas Speichern und Abrufen lassen will. -
wonach legt sich der varchar oder int für MySQL ab ?
Was genau meinst du?
Prinzipiell erfolgt die Abfrage und Speicherung immer anhand eines oder mehrerer Primary Keys.
-
Was genau meinst du?
Prinzipiell erfolgt die Abfrage und Speicherung immer anhand eines oder mehrerer Primary Keys.Wollte so Punkte einstellen , jedoch speichern sie sich nicht
`Coins` int(10) NOT NULL,`pUpgradePoints` int(6) NOT NULL,Sie werden in der Dtanebank erstellt doch InGame speichern sie sich irgendwie nicht
-
Wollte so Punkte einstellen , jedoch speichern sie sich nicht
Das ist der Code vom Laden der Daten.
Wo speicherst du sie?
-
Ja.
Dadurch dass sie jeweils miteinander verbunden wurden (%s wird mit string gefüllt, somit wird immer der vorherige Text mitgezogen).würde das auch gehen wenn ichs als case funktion habe oder muss ich jeden adminrang seperst abfragen?
-
würde das auch gehen wenn ichs als case funktion habe oder muss ich jeden adminrang seperst abfragen?
Das kannst du auch innerhalb von switch-case nutzen.
-
Das ist der Code vom Laden der Daten.
Wo speicherst du sie?Hab mal ein thread erstellen.. Hoffe man kann einen Überblick bekommen
-
Das kannst du auch innerhalb von switch-case nutzen.
und wie muss das aussehen?
die format mit komma hintereinander einbauen?
bekomme da nur errors, hab das momentan so, auch weil ich mit handy ein bisschen vorgearbeitet hab
dcmd_ahelp(playerid,params[])
{
#pragma unused params
new ahelp1[600],ahelp2[600];
if(sSpieler[playerid][Adminlevel] == 0) return SendClientMessage(playerid,FehlerRot,"Du hast nicht die benötigten Rechte, um diesen Befehl auszuführen!");
switch(sSpieler[playerid][Adminlevel])
{
case 1:
{
format(ahelp1,sizeof(ahelp1),"{ff8b00}/a - Adminchat\n{ff8b00}/cnnn - Globale Ankündigung (Textdeaw)\n{ff8b00}/cnn - Globale Ankündigung\n{ff8b00}/clearchat - Chat löschen\n");
format(ahelp,sizeof (ahelp1),"{ff8b00}/amodus - Adminmodus aktiveren/Deaktivieren\n{ff8b00}/goto - Zu Spieler Teleportieren\n{ff8b00}/tome - Spieler zu sich Teleportieren\n",ahelp1);
format(ahelp1,sizeof (ahelp1),"{ff8b00}/mute - Spieler im Chat muten\n{ff8b00}/unmute - Spieler im Chat unmuten\n{ff8b00}/admingoto - Zu wichtigen Orten Teleportieren",ahelp1);
}
case 2:
{
format(ahelp2,sizeof(ahelp2),"{ff8b00}/ban - Bannt einen Spieler vom Server\n{ff8b00}/kick - Kickt einen Spieler vom Server\n{ff8b00}/sethp - HP eines Spielers ändern\n{ff8b00}/veh - Fahrzeug Spawnen\n{ff8b00}/freeze - Freezed einen Spieler\n");
format(ahelp2,sizeof (ahelp2),"{ff8b00}/unfreeze - Unfreezed einen Spieler\n{ff8b00}/ahelp - Adminhilfe\n{ff8b00}/a - Adminchat\n{ff8b00}/cnnn - Globale Ankündigung (Textdraw)\n{ff8b00}/cnn - Globale Ankündigung\n{ff8b00}/clearchat - Chat löschen\n{ff8b00}/amodus - Adminmodus Aktivieren/Deaktivieren\n{ff8b00}/goto - Zu Spieler Teleportieren\n",ahelp2);
format (ahelp2,sizeof (ahelp2),"{ff8b00}/tome - Spieler zu sich Teleportieren\n{ff8b00}/mute - Spieler im Chat muten\n{ff8b00}/unmute - Spieler im Chat unmuten\n{ff8b00}/admingoto - Zu wichtigen Orten Teleportieren",ahelp2);
}
ShowPlayerDialog(playerid,ADMINHELP1,DIALOG_STYLE_MSGBOX,"Adminhilfe",ahelp1,"Fertig","");
ShowPlayerDialog(playerid,ADMINHELP1,DIALOG_STYLE_MSGBOX,"Adminhilfe",ahelp2,"Fertig","");
}
return 1;
}