Mehrere Probleme auf einmal

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
  • Danke, Problem 2 gelöst :)
    Aber das Alter bleibt immer noch frei. Im Script ist alles gut, muss an der Datenbank liegen :/



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Probier mal, einfach eine Spalte in der DB hinzuzufügen, die "Irgendwas" heißt. Und dann versuch mal was in der zu setzen, also vom Server aus.
    Vielleicht ist irgendeine Einstellung falsch, in der Spalte.


    Einfach mal bissle mit der Datenbank rumspielen. Oder "Alter" löschen, und neu hinzufügen, mit anderem Name, z.B. AlterNeu. :wacko:

  • Hey, meine Commands mit Parametern spielen verrückt. Habe jz hier z.B den Goto befehl, aber egal welche id ich eingebe wo auf dem Server ist, schlägt er die Nachricht aus das dieser Spieler nicht erreichbar wäre?


    dcmd_goto(playerid,params[])
    {
    new id;
    if (sscanf(params, "u",id)) SendClientMessage(playerid, COLOR_GREY, "Info: /goto [SpielerID]");
    else if (id == INVALID_PLAYER_ID) SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht zu diesen Spieler teleportieren.");
    else
    {
    if(GetPVarInt(playerid, "Admin") >= 2)
    {
    new pname[MAX_PLAYER_NAME], aname[MAX_PLAYER_NAME], string[256];
    new Float:aX, Float:aY, Float:aZ;
    GetPlayerName(id, aname, sizeof(aname));
    GetPlayerName(playerid, pname, sizeof(pname));
    if(IsPlayerInAnyVehicle(playerid))
    {
    new VehicleID;
    VehicleID = GetPlayerVehicleID(playerid);
    new intr = GetPlayerInterior(id);
    GetPlayerPos(id, aX, aY, aZ);
    SetPlayerInterior(playerid, intr);
    SetPlayerPos(playerid, aX + 3, aY + 3, aZ);
    SetVehiclePos(VehicleID, aX + 3, aY + 3, aZ);
    PutPlayerInVehicle(playerid, VehicleID, 0);
    format(string, sizeof(string), "[Admin] Du hast dich zum Spieler %s teleportiert.",aname);
    SendClientMessage(playerid, COLOR_GREEN, string);
    format(string, sizeof(string), "[Admin] Der Admin %s hat sich zu dir teleportiert.",pname);
    SendClientMessage(id, COLOR_GREEN, string);
    }
    else
    {
    new intr = GetPlayerInterior(id);
    SetPlayerInterior(playerid, intr);
    GetPlayerPos(id, aX, aY, aZ);
    SetPlayerPos(playerid, aX, aY+3, aZ+3);
    format(string, sizeof(string), "[Admin] Du hast dich zum Spieler %s teleportiert.",aname);
    SendClientMessage(playerid, COLOR_GREEN, string);
    format(string, sizeof(string), "[Admin] Der Admin %s hat sich zu dir teleportiert.",pname);
    SendClientMessage(id, COLOR_GREEN, string);
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Admin");
    }
    }
    return 1;
    }



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Naja, ich hätte eine Idee: sscanf in die Tonne treten, strtok benutzen. :D
    Meine ganz persönliche Meinung ist, dass strtok wesentlich besser ist, da es nicht so einen übertriebenen Umfang an Funktionen hat und ich noch nie Probleme damit hatte. Es mag vielleicht "langsam" sein (wobei man das nicht merken wird, nie), aber dafür gibt es einem alle Freiheiten, ist halt an manchen Stellen etwas mehr Code, aber dafür tut es auch.


    Auf das sscanf Problem kann ich dir keine Antwort geben, weil ich zum Einen nicht damit arbeite und zum Anderen ich nur mutmaßen könnte.

  • if (sscanf(params, "u",id)) SendClientMessage(playerid, COLOR_GREY, "Info: /goto [SpielerID]");
    else if (id == INVALID_PLAYER_ID) SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht zu diesen Spieler teleportieren.");


    Benutz direkt if btw. kannst du auch mit isplayerconnected arbeiten.


    if(IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht zu diesen Spieler teleportieren.");

    KleineHilfe 2.0

  • Wenn ich mit IsPlayerConnect mache so wie du sagst, Portet er sich an ganz falsche Stellen, irgendwo im Nichts.
    Außerdem kann man sich nun auch zu Spielern porten die garnicht Online sind, also z.B id 10000 ...


    //Edit
    New Problem


    Habe ein Tanksystem, wollte nun das an jeder Tanke steht "Test"
    Hab es mit Create3dtextlabel gemacht..
    code
    for(new Gasid = 0; Gasid < sizeof(Label); Gasid++)
    {
    Create3DTextLabel(Label[Gasid][GasText],COLOR_WHITE,Label[Gasid][GasX],Label[Gasid][GasY],Label[Gasid][GasZ],20.0,0,0); // 2 Errors
    }
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(217) : warning 228: length of initialler exceeds size of the enum field
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(217) : error 018: initialization data exceeds declared size
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(234) : error 001: expected token: "}", but found ";"


    Hier restlicher Code
    new Float:Label[][GasStation] = {
    {1004.0070,-939.3102,42.1797,"Test"},
    {-90.5515,-1169.4578,2.4079,"Test"},
    {-2029.4968,156.4366,28.9498,"Test"},
    {-2243.9629,-2560.6477,31.8841,"Test"},
    {2202.2349,2474.3494,10.5258,"Test"},
    {-1328.8250,2677.2173,49.7665,"Test"},
    {2113.7390,920.1079,10.5255,"Test"},
    {2146.6143,2748.4758,10.3852,"Test"},
    {1598.2035,2198.6448,10.3856,"Test"},
    {1944.3260,-1772.9254,13.3906,"Test"},
    {-1609.7958,-2718.2048,48.5391,"Test"},
    {-2408.7590,976.0934,45.4175,"Test"},
    {-1676.6323,414.0262,6.9484,"Test"},
    {{614.9333,1689.7418,6.6968,"Test"},
    {70.3882,1218.6783,18.5165,"Test"},
    {-1327.7218,2678.8723,50.0625,"Test"},
    {2639.0022,1108.0353,10.3852,"Test"}
    };
    enum GasStation {
    Float: GasX,
    Float: GasY,
    Float: GasZ,
    GasText
    };


    Problem behoben!


    neue Frage:
    Ich möchte Fraktionstore machen, die mit Hupen aufgehen, ein Timer soll gestartet werden und das Tor soll nach 8 Sekunden schließen.
    Damit nicht alles so umständlich ist habe ich so angefangen:
    enum Gates {
    Float: OpenX,
    Float: OpenY,
    Float: OpenZ,
    Text[200],
    Float: CloseX,
    Float: CloseY,
    Float: CloseZ
    };
    Also Open XYZ sollen die Koordinaten sein, wo das Tor sich hin öffnet. Close natürlich wo es hin schließt, also wieder die normalen Koordinaten, und Text natürlich dann "Tor schließt in 8 Sekunden".
    new Float:Tore[][Gates] = {
    {1004.0070,-939.3102,42.1797,"Das Tor schließt sich Automatisch nach 8 Sekunden", 1004.0070,-939.3102,42.1797}
    };
    Sind nur beispiel Koordniaten!!
    So jetzt meine Frage, wie moveobject funktioniert und so weiß ich!
    Ich weiß auch wie man abfrägt wo der spieler ist weiß ich auch.
    Nur ich will jetzt wissen wie ich weiter machen soll, also das wenn ich vor tor 1 stehe auch wirklich tor 1 aufgeht ohne viel komplizierten code? wollte es extra "sparsam" scripten.


    Ich hoffe ihr wisst was ich meine



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    2 Mal editiert, zuletzt von ENEF ()