Da gibst du halt immer den Namen des Spielers der den Befehl ausführst an.
Ja habs gefixt das Problem ist er zeigt aber die Leute alle Offline an obwohl sie online sind
Da gibst du halt immer den Namen des Spielers der den Befehl ausführst an.
Ja habs gefixt das Problem ist er zeigt aber die Leute alle Offline an obwohl sie online sind
Moin, kurze Frage die mir man doch bestimmt beantworten kann..
Ich hab nen Dialog erstellt, Input und möchte dann das was eingegeben wurde in die MySQL Datenbank abspeichern.
SetPVarString(playerid, "Name", inputtext);
PlayerInfo[playerid][pRPName] = GetPVarString(playerid, "Name", inputtext, sizeof(inputtext));
SendClientMessage(playerid, -1, "");
SaveUserStats(playerid);
Klappt nicht. Dachte mir natürlich das es vielleicht an dem Warning liegt den ich hatte.. "warning 224: indeterminate array size in "sizeof" expression (symbol "")"
Aber anders habe ich bisher keine Lösung gefunden, dachte es liegt auch vielleicht daran weil ich ein falsches format angegeben habe.
mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', tutorial = '%d', kills = '%d', deaths = '%d', rpname = '%s', admin = '%d' WHERE id = '%d'",
MySQL gibt übrigens keine Errors ab, woran kanns also liegen?
PlayerInfo[playerid][pRPName] = GetPVarString(playerid, "Name", inputtext, sizeof(inputtext));
Zum Formatieren von Strings kannst du einfach format verwenden: format(PlayerInfo[playerid][pRPName] , sizeof(inputtext), "%s", GetPVarString(playerid, "Name", inputtext, sizeof(inputtext));
, rpname = '%s'
Weiterhin bietet es sich immer an Sachen zu escapen, dazu einfach %e verwenden
ocmd:fparken(playerid)
{
new vehicleid = GetPlayerVehicleID(playerid);
new fV = IsAFraktionsVeh(vehicleid);
if(!IsLoggedIn(playerid))return 1;
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du bist in keinem Fahrzeug.");
if(Spieler[playerid][pFraktion] == 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du bist in keiner Fraktion!");
if(Spieler[playerid][pRank] < RANG_COLEADER)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du musst mindestens den Co-Leader Rank haben.");
if(fV == INVALID_VEHICLE_ID)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du befindest dich in keinem Fraktionsfahrzeug.");
if(Spieler[playerid][pFraktion] != fVehicle[fV][vehFraktion])return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Dieses Fahrzeug gehört nicht zu deiner Fraktion.");
if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du musst der Fahrer dieses Fahrzeug sein.");
GetVehiclePos(fVehicle[fV][vehID], fVehicle[fV][vehPosX], fVehicle[fV][vehPosY], fVehicle[fV][vehPosZ]);
GetVehicleZAngle(fVehicle[fV][vehID], fVehicle[fV][vehPosA]);
fVehicle[fV][vehInterior] = GetPlayerInterior(playerid);
fVehicle[fV][vehWorld] = GetPlayerVirtualWorld(playerid);
SendClientMessage(playerid, COLOR_WHITE, "{33CCFF}Du hast dieses Fraktionsfahrzeug erfolgreich umgeparkt.");
GetVehicleHealth(fVehicle[fV][vehID], fVehicle[fV][vehHealth]);
singleSaveFVehicle(fV);
return 1;
}
Alles anzeigen
Moin kurze frage,
Wen ich Die Fahrzeuge Parke und danach respawne wird das Fahrzeug so geparkt wie es erstellt wurde kann man das nicht irgendwie flexibler machen das es so respawnt wie es geparkt wurde?
Wen ich Die Fahrzeuge Parke und danach respawne wird das Fahrzeug so geparkt wie es erstellt wurde kann man das nicht irgendwie flexibler machen das es so respawnt wie es geparkt wurde?
Ja, da gibt es 2 Möglichkeiten:
Man könnte es aber auch sobald es zerstört wird "neu" erstellen. Ich denke wenn man /park während der Fahrt nutzt, könnte man sonst Speed verlieren oder einen Ruckler haben.
Bin mir mit letzterem aber nicht sicher.
Das Wäre meine Möglichkeit:
public FVehicleSpawner(fV)
{
DeleteVehicle(fVehicle[fV][vehID]);
fVehicle[fV][vehID] = CreateVehicleEx(fVehicle[fV][modelid], fVehicle[fV][vehPosX], fVehicle[fV][vehPosY], fVehicle[fV][vehPosZ], fVehicle[fV][vehPosA], fVehicle[fV][vehColor1], fVehicle[fV][vehColor2], -1, false, fVehicle[fV][vehSiren]);
fVehicleTuning(fV);
switch(GetVehicleModel(fV))
{
case 528:{SetVehicleHealth(fV, 5000);}
case 601:{SetVehicleHealth(fV, 5000);}
case 596:{SetVehicleHealth(fV, 1500);}
case 598:{SetVehicleHealth(fV, 1500);}
case 597:{SetVehicleHealth(fV, 1500);}
case 599:{SetVehicleHealth(fV, 1500);}
case 427:{SetVehicleHealth(fV, 4000);}
case 428:{SetVehicleHealth(fV, 4000);}
}
return 1;
}
Alles anzeigen
wen ich das fahrzeug neu parke spawnt es vollgetankt alles drum und drann..
Probiere gerade was neues, jemand Ahnung, warum das so nicht klappt?
enum e_Shop{
Float:s_Pos[3],
s_Interior,
s_VirtualWorld
};
new Shop_Info[MAX_SHOPS][e_Shop] = {
// Eingang X, Eingang Y, Eingang Z, Interior, virtuelle Welt
{{1154.1816, -1439.9962, 15.7969}, 16, 200}
};
hook OnGameModeInit(){
for(new i=0;i<MAX_SHOPS;i++){
--> Error CreatePickup(1318, 1, Shop_Info[i][s_Pos[0]], Shop_Info[i][s_Pos[1]], Shop_Info[i][s_Pos[2]], 0);
}
return true;
}
Alles anzeigen
modules/server/graffiti.pwn(45) : error 028: invalid subscript (not an array or too many subscripts): "s_Pos"
modules/server/graffiti.pwn(45) : warning 215: expression has no effect
modules/server/graffiti.pwn(45) : error 001: expected token: ";", but found "]"
modules/server/graffiti.pwn(45) : error 029: invalid expression, assumed zero
modules/server/graffiti.pwn(45) : fatal error 107: too many error messages on one line
direkt mit solchen Arrays in einem Mehrdimensionalen Array zu arbeiten ist in Pawn nicht unbedingt so einfach, wie man sich das vielleicht vorstellt.
Du kannst es aber so lösen
CreatePickup(1318, 1, Shop_Info[i][s_Pos], Shop_Info[i][s_Pos + e_Shop:1], Shop_Info[i][s_Pos + e_Shop:2], 0);
s_Pos dient in diesem Fall einfach dazu die Position herauszufinden in dem sich die Variable wirklich befindet.
Im Grunde passiert hier nichts anders als würdest du statt einem "Array" in einem Array eine Auflistung von Variablen wie X, Y, Z verwenden.
e_Shop dient hier als Tag - ähnlich wie bspw. TextDraw oder 3DText - nur um warnings zu vermeiden.
Der Compiler haut dir Warnings um die Ohren, wenn er merkt, dass du versucht Äpfel und Birnen zu addieren, also erzählen wir ihm hier, dass es sich nicht um Birnen sondern tatsächlich um Äpfel handelt,
Shop_Info[i][s_Pos], Shop_Info[i][s_Pos + e_Shop:1], Shop_Info[i][s_Pos + e_Shop:2]
Man kann tatsächlich auch einfach:
machen
Hey Leute,
ich wollte ein System erstellen wo man seine Fische verkaufen kann aber der Preis ich stündlich ändert z.B. 16$ um 20 Uhr und um 21 Uhr 28$ der Preis sollte mind 15$ und Max 50$ sein..
Zum Formatieren von Strings kannst du einfach format verwenden: format(PlayerInfo[playerid][pRPName] , sizeof(inputtext), "%s", GetPVarString(playerid, "Name", inputtext, sizeof(inputtext));
Weiterhin bietet es sich immer an Sachen zu escapen, dazu einfach %e verwenden
Wenn es doch so klappen würde, aber schon gut zu wissen.
if(dialogid == DIALOG_NAME)
{
if(!response)
{
ShowPlayerDialog(playerid, DIALOG_NAME, DIALOG_STYLE_INPUT, "Roleplay-Name", "Bitte gebe nun einen Roleplaynamen an: (Format: Max_Mustermann)", "Auswählen", "");
}
else
{
format(PlayerInfo[playerid][pRPName] , sizeof(inputtext), "%s", GetPVarString(playerid, "Name", inputtext, sizeof(inputtext));
SendClientMessage(playerid, -1, "");
SaveUserStats(playerid);
}
return 1;
}
Alles anzeigen
warning 224: indeterminate array size in "sizeof" expression (symbol "")
warning 224: indeterminate array size in "sizeof" expression (symbol "")
error 001: expected token: ",", but found ";"
Musst schon etwas genauer sein, bei welcher Zeile ist der Error denn?
Wo wohl das "sizeof" steht
So kannst du GetPVarString nicht verwenden.
Es gibt nicht den Wert der PVar zurück, sondern speichert diesen in der angegebenen Variable.
if(dialogid == DIALOG_NAME)
{
if(!response)
{
ShowPlayerDialog(playerid, DIALOG_NAME, DIALOG_STYLE_INPUT, "Roleplay-Name", "Bitte gebe nun einen Roleplaynamen an: (Format: Max_Mustermann)", "Auswählen", "");
}
else
{
new name[64];
GetPVarString(playerid, "Name", name, sizeof(name));
format(PlayerInfo[playerid][pRPName] , sizeof(inputtext), "%s", name);
SendClientMessage(playerid, -1, "");
SaveUserStats(playerid);
}
return 1;
}
Alles anzeigen
So kannst du GetPVarString nicht verwenden.
Es gibt nicht den Wert der PVar zurück, sondern speichert diesen in der angegebenen Variable.
CodeAlles anzeigenif(dialogid == DIALOG_NAME) { if(!response) { ShowPlayerDialog(playerid, DIALOG_NAME, DIALOG_STYLE_INPUT, "Roleplay-Name", "Bitte gebe nun einen Roleplaynamen an: (Format: Max_Mustermann)", "Auswählen", ""); } else { new name[64]; GetPVarString(playerid, "Name", name, sizeof(name)); format(PlayerInfo[playerid][pRPName] , sizeof(inputtext), "%s", name); SendClientMessage(playerid, -1, ""); SaveUserStats(playerid); } return 1; }
Auch gut zu wissen. Leider klappt es nicht und ich habe immer noch ein Warning. (MySQL logs steht übrigens auch überhaupt nix)
warning 224: indeterminate array size in "sizeof" expression (symbol "")
Ohne es zu Wissen behaupte ich mal das Zeile 224 in deinem Codeausschnitt die Zeile 12 ist
Hey Leute,
ich wollte ein System erstellen wo man seine Fische verkaufen kann aber der Preis ich stündlich ändert z.B. 16$ um 20 Uhr und um 21 Uhr 28$ der Preis sollte mind 15$ und Max 50$ sein..
Du nimmst eine globale Variable.
Ohne es zu Wissen behaupte ich mal das Zeile 224 in deinem Codeausschnitt die Zeile 12 ist
Das mein ich nicht, ich frage mich eher was der Fehler is.
so hab ichs schon probiert so ändert er sich aber nicht stündlich sondern ist bei jedem Verkauf einfach Random