Beiträge von [SSU]Mr_Hero

    if(strcmp(cmd, "/port", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:x = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:y = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:z = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new interiorport = strval(tmp);
    SetPlayerInterior(playerid, interiorport);
    SetPlayerPos(playerid, x,y,z);
    SendClientMessage(playerid, WEISS, "Du hast dich geportet.");
    return 1;
    }

    Danke Wo Zu ist denn das interior da Kann ich das einfach umbennen?

    Also mit der Angabe vom Interior kannst du dich z.B. auch in eigene Hausinteriors porten. Die normale SA Welt hat den Int. 0, das heißt, wenn du dich einfach "draußen" irgendwohin porten willst, gibts du beim Interior einfach 0 an.
    Beispiel:
    /port 17299.3939 5802.916504 -4431.891113 0

    Und noch was wie kann ich es machen das denn befahl jeder ein tippen kann?

    Dazu musst du einfach die Abfrage entfernen, wo geprüft wird, ob der Player RCON-Admin ist.
    Entfernt sieht das ganze dann so aus:


    if(strcmp(cmd, "/port", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:x = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:y = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:z = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new interiorport = strval(tmp);
    SetPlayerInterior(playerid, interiorport);
    SetPlayerPos(playerid, x,y,z);
    SendClientMessage(playerid, WEISS, "Du hast dich geportet.");
    }
    return 1;
    }


    Hoffe, ich konnte dir helfen.

    Ganz oben in deinem Script solltest du erstmal die Farben definieren:


    #define WEISS 0xFFFFFFFF
    #define ROT 0xE60000FF


    Dann würde ich darauf tippen, dass du die Variable "interior" schonmal in deinem Script definiert hast.
    Benennen wir sie doch einfach um:

    if(strcmp(cmd, "/port", true) == 0)
    {
    if(IsPlayerAdmin(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:x = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:y = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:z = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new interiorport = strval(tmp);
    SetPlayerInterior(playerid, interiorport);
    SetPlayerPos(playerid, x,y,z);
    SendClientMessage(playerid, WEISS, "Du hast dich geportet.");
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du darfst diesen Befehl nicht nutzen !");
    }
    return 1;
    }

    Mit einem "Tool" kann ich dir nicht helfen, aber sowas kann man einfach scripten.


    if(strcmp(cmd, "/port", true) == 0)
    {
    if(IsPlayerAdmin(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:x = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:y = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new Float:z = floatstr(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ROT, "[BENUTZUNG]: /port [X] [Y] [Z] [INT]");
    return 1;
    }
    new interior = strval(tmp);
    SetPlayerInterior(playerid, interior);
    SetPlayerPos(playerid, x,y,z);
    SendClientMessage(playerid, WEISS, "Du hast dich geportet.");
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du darfst diesen Befehl nicht nutzen !");
    }
    return 1;
    }


    Da es ein Befehl ist, muss es unter:
    public OnPlayerCommandText(playerid, cmdtext[])


    MFG
    Hero

    Nein, dort gibt es das gleiche Prob.
    Ich starte (ohne Verknüpfung oder sonstigen Schnickschnack) "gta_sa.exe" und es passiert...nichts.


    Nichtmal ein Lösungsvorschlag oder eine Meldung zum "Problembericht senden". :(


    //Edit: Hab nochmal alles neuinstalliert und es geht immernoch nich :|
    Keiner ne Lösung?


    MfG
    Hero

    Hi,
    Mein SA-MP geht neuerdings nicht mehr ;(


    Ich habe nichts an meinem GTA oder an SA-MP geändert...


    -> Habe die amerikanische *.exe
    -> Habe keinen Crack
    -> Hab keine Mods...garkeine
    -> Habe die richige Version
    -> Hab XP
    -> Es ging mal :(
    -> Hab SA-MP 0.2X
    -> Hab schon GTA neuinstallt
    -> Hab schon SA-MP neuinstallt
    ...
    Aber wenn ich auch einen X-beliebigen Server connecten will, passiert garnichts.
    Es startet kein GTA, es kommt keine Fehlermeldung...
    SA-MP hängt sich auch nicht auf oder sowas...es passiert rein garnichts :(


    Hoffe ihr könnt mir helfen...
    Danke für jede Antwort!


    MfG
    Hero

    Du brauchst auch die PlayerToPoint-Funktion.
    Bau das hier irgendwo (außerhalb einer "publics") ein:


    PlayerToPoint(Float:radius, playerid, Float:X, Float:Y, Float:Z)
    {
    new Float:oldpos[3], Float:temppos[3];
    GetPlayerPos(playerid, oldpos[0], oldpos[1], oldpos[2]);
    temppos[0] = (oldpos[0] -X);
    temppos[1] = (oldpos[1] -Y);
    temppos[2] = (oldpos[2] -Z);
    if(((temppos[0] < radius) && (temppos[0] > -radius)) && ((temppos[1] < radius) && (temppos[1] > -radius)) && ((temppos[2] < radius) && (temppos[2] > -radius)))
    {
    return true;
    }
    return false;
    }


    Hoffe ich konnte helfen...

    An deinem Codeschnippsel ist - soweit ich das von hier sehe - nichts falsch.
    Poste doch am besten mal die ganze Funktion...dann kann man dir auch bei der Fehlersuche helfen.

    Ich weiß nicht, ob du es drin hast, aber du müsstest dann eben noch das eine Menü verbergen, bevor du das Neue öffnest.


    Also so:


    HideMenuForPlayer(Menu1, playerid);
    ShowMenuForPlayer(Menu2, playerid);


    Bei mir hab ichs zumindest so gemacht :D