Lösche einfach mal das strtok Teil raus, das was du oben gepostet hast raus (18 Zeilen).
Dann Berichte nochmal welche Fehler kommen und poste den Code zu den Fehlern.
Lösche einfach mal das strtok Teil raus, das was du oben gepostet hast raus (18 Zeilen).
Dann Berichte nochmal welche Fehler kommen und poste den Code zu den Fehlern.
Vorposter war schneller, aber:
Außerdem musst du die array Größe von giveplayer an die von result in strtok anpassen (meistens 20 oder 256).
^ Post über mir: Facepalm
Erst lesen, dann posten.
------
Wenn du ihn drüber erstellst, dann solltest du dir auch sicher sein, dass der Spieler in einem Auto ist:
new vname[50];
if(IsPlayerInAnyVehicle(playerid)) format(vname, sizeof (vname),"Vehicle: %s",CarName[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
else format(vname, sizeof (vname),"Vehicle: On Foot");
TextDrawSetString(Textdraw3, vname);
TextDrawShowForPlayer(playerid,Textdraw3);
Schau mal:
Der Code wird nur funktionieren, wenn dein GM die gleichen Definitionen verwendet, ansonsten musst du die anpassen. Da wir aber nicht wissen können welche Variablen dein GM verwendet, können wir dir hier so nicht weiterhelfen, die Definitionen können ja schlecht erraten werden.
ovwohl mich das abprüfen des Null-terminators stört via strval
Was davon meinst du?
strval wird nur hier benutzt:
if(strval(copy)>255)
Das prüft, ob einer der 4 Ziffern größer als 255 ist. (Es gibt ja keine 256.256.256.256'er IP).
@Music4You:
if(IsValidIP("123.123.123.123")) return print("Das ist eine richtige IP");
if(!IsValidIP("12445.455.154523.dfdf")) return print("Das ist keine IP");
Nützlich für einen /banip command.
Er meint die Datenbank:
DROP DATABASE IF EXISTS databasenname
http://dev.mysql.com/doc/refman/5.0/en/drop-database.html
Meiner Ansicht nach hast du diesen Code nicht selbst geschrieben, sondern nur irgendwo raus-kopiert, daher macht es wenig Sinn irgend etwas zu erklären, da du den Code nicht mal verstehst, sondern nur einfügst, fertig.
Es fehlen in dem Code demnach ALLE Definitionen von Variablen und (höchstwahrscheinlich auch) Funktionen, das kann so niemals gehen.
Wo hast du den Code her?
Ohne den gesamten Code gesehen zu haben lässt sich hier gar nichts machen.
print("Test 1");
gehört da nicht hin.
Auf switch muss case folgen, nichts anderes. Mach es entweder vor den switch oder in den case.
Ist PlayerInfo definiert ("new") ?
^ Hm?
Bevor wir hier lange um den heißen Brei reden:
Poste doch einfach mal das GANZE OnPlayerCommandText callback, so wie es jetzt ist, und dazu noch dein "PlayerInfo" enum + Definition.
stock IsValidIP(adress[]) //©Jeffry
{
new point, number, points, copy[3];
for(new i = 0, ip = strlen(adress); i < ip; i++)
{
if(adress[i] == '.')
{
if(strval(copy)>255) return 0;
if(point == 0) { number=0; point = 1; points++; copy[0] = 0; copy[1] = 0; copy[2] = 0;}
else return 0;
if(points > 3) return 0;
}
else if(adress[i] >= '0' && adress[i] <= '9')
{
point = 0;
if(number < 3) { number++; copy[number-1] = adress[i]; }
else return 0;
}
else return 0;
}
if(strval(copy)>255) return 0;
if(points < 3) return 0;
else return 1;
}
Keywords: IstIP, IstEineIP, IstIPAdresse, IsAnIP, IsIP, IsValidIP.
Das hatte ich dir doch in dem ursprünglichen Thread bereits erklärt.
TextDraw
Damals hattest du mir den Code via PN geschickt, den ich dir auch ausgebessert zurückgeschickt habe:
Alles anzeigenif((newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) && oldstate == PLAYER_STATE_ONFOOT)
{
new string[256];
new vid = GetPlayerVehicleID(playerid);
new Float:vh;
GetVehicleHealth(vid,vh);
new h = floatround(vh) / 10;
new Float:s = GetPlayerSpeed(playerid);
new ss = floatround(s);
new vehicleid = GetPlayerVehicleID(playerid);
format(string,sizeof(string),"Fahrzeug: ~y~%s Schaden: ~y~%d\% Geschwindigkeit: ~y~~%s~%d km/h Tank: ~y~~%s~%d\%",CarName[GetVehicleModel(vid)-400],h,DamageColor(h),ss,FuelColor(vid), Gas[vehicleid],GetGasMax(GetVehicleModel(vehicleid)));
speedo1[playerid] = TextDrawCreate(4.000000, 438.500000," ");
TextDrawSetString(speedo1[playerid],string);
TextDrawSetShadow(speedo1[playerid],false);
TextDrawSetOutline(speedo1[playerid],1);
TextDrawLetterSize(speedo1[playerid], 0.259999, 0.899900);
TextDrawSetProportional(speedo1[playerid],1);
TextDrawFont(speedo1[playerid],TEXT_DRAW_FONT);
TextDrawShowForPlayer(playerid,speedo1[playerid]);
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
PlayerPos[0][playerid] = x;
PlayerPos[1][playerid] = y;
PlayerPos[2][playerid] = z;
}
else if(IsANoTachoVehicle(playerid))
{
TextDrawHideForPlayer(playerid, speedo1[playerid]);
}
Wobei das format noch ausgebessert werden muss, das konnte ich nicht machen, da ich nicht weiß, was die einzelnen Variablen/Funktionen darstellen. Das ist aber genauso falsch bei dem Code den du mir geschickt hast.
Alles weitere bitte in dem Thread den du gemacht hast, oder einen neuen aufmachen.
Danke.
Jeffry
Eine Antwort darauf kam nie.
Das kann ja so auch nicht gehen.
public OnPlayerCommandText(playerid, cmd[])
Warum steht da cmd[]?
public OnPlayerCommandText(playerid, cmdtext[])
Das muss cmdtext[] heißen.
ZitatC:\Users\Lukas\Desktop\Selfmade\gamemodes\som.pwn(16340) : error 017: undefined symbol "PlayerInfo"
Ist PlayerInfo definiert ("new") ?
if(!pID=playerid)
zu
if(pID!=playerid)
Hättest du ja oben schon richtig, warum auch immer du das jetzt geändert hast.
Nein, das geht leider nicht.
Das liegt wohl auch daran, dass die Textur nicht einheitlich für alle Spieler angezeigt wird. Das selbe Problem haben die Autos, bei denen ab und an ein Dach drauf ist, obwohl es ein Cabrio für einen anderen Spieler ist.
Da hilft nur noch ein Objekt zu attachen, falls es eins dafür gibt.
Naja, das kommt ja immer darauf an, wie dein Befehl dazu aussieht.
Willst du sowas machen?
Zitat/servername ---Neuer Server von mir---
Und dann heißt der Server so?
Wenn ja, hast du den Befehl /servername schon?
Wenn nein, was willst du überhaupt machen?
new str[128];
format(str, sizeof(str), "hostname %s", command);
SendRconCommand(str);
^ So.
es gibt ja verschiedene Trailer (LKW-Anhänger). Die meisten können andere Motive annehmen (1 Trailer = 3Motive; zb: Werbung an den Seiten) und meine Frage dazu ist nun, ob man das Abfragen kann? Damit ich zum Beispiel Ladungen besser zuordnen kann.
Nein, das geht leider nicht.
Das liegt wohl auch daran, dass die Texttur nicht einheitlich für alle Spieler angezeigt wird. Das selbe Problem haben die Autos, bei denen ab und an ein Dach drauf ist, obwohl es ein Cabrio für einen anderen Spieler ist.
Ok danke
wie muss ich das reinkopieren?
OnFilterScriptInit -> OnGameModeInit
OnFilterScriptExit -> OnGameModeExit
if(pID == INVALID_PLAYER_ID)
zu:
if(pID != INVALID_PLAYER_ID)
Sonst kannst du nur Spielern ein Wanted geben, die eine ungültige ID haben. Das widerspricht sich.