Code funktioniert InGame nicht, cmd erst bei bestimmten Koordinaten ausführen und Codeabfrage

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
  • Morgen,
    Hab mal wieder ein kleines Porblem. Jetzt habe ich zwar keine Warnings und Errors aber dieser Code funktioniert Ingame nicht:

    ocmd:createcar(playerid,params[])
    {
    if(IsPlayerAdmin(playerid))
    {
    new farbe1, farbe2, string[128];
    new car = GetPlayerVehicleID(car);
    if(sscanf(params,"ddd",car,farbe1,farbe2))return SendClientMessage(playerid,COLOR_GRUEN,"/createcar <CarID> <Farbe1> <Farbe2> - CarID's: http://wiki.sa-mp.com/wiki/Vehicles");
    if(car < 400 || car > 611)return SendClientMessage(playerid,COLOR_BLAU,"Diese CarID gibt es nicht.");
    if(farbe1 < 0 || farbe1 > 252)return SendClientMessage(playerid,COLOR_BLAU,"Diese Farbe gibt es nicht.");
    if(farbe2 < 0 || farbe2 > 252)return SendClientMessage(playerid,COLOR_BLAU,"Diese Farbe gibt es nicht.");
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    new carid = CreateVehicle(car,X,Y,Z,0.0,farbe1,farbe2,60000);
    CreatedCars[CreatedCar] = carid;
    CreatedCar++;
    format(string,sizeof(string),"Du hast ein Fahrzeug gespawnt. ID: %s.",carid);
    SendClientMessage(playerid,COLOR_BLAU,string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLAU,"Du bist kein Admin!");
    }
    return 1;
    }


    Ich gebe "/createcar 400 1 1" ein aber nichts passiert?!?


    Dann habe ich noch eine zweite Frage,


    Und zwar habe ich einen CMD in meiner Gamemode der lautet "/onduty police"
    Ich möchte das man diesen Befehl nur an einer bestimmten Stelle ausführen kann, (LSPD).
    Also in einem Radius vom LSPD, währe das umsetzbar?


    Und dann noch eine dritte und letzte Frage.
    Da ich den Server zum beitreten online gestellt habe, er allerdings nur teilweise Online ist poste ich immer per Youtube-Bullentin wenn er online ist.
    Ich möchte Usern einfach jetzt schon die Möglichkeit bieten meinen Server zu testen und zu kritisieren was ihnen gefällt und was nicht.
    Allerdings möchte ich wenn man meinen Server beitritt, das eine Art Passwortabfrage erscheint. Das Passwort soll ein 4-Stelliger Code sein.
    Drückt man auf "Abbrechen" wird man gekickt. Einfach nur zur Sicherheit^^. Ich schreibe den Code dann im YT-Bullentin natürlich auch dazu ^_^.


    MfG ;*

  • ocmd:createcar(playerid,params[])
    {
    if(IsPlayerAdmin(playerid))
    {
    new farbe1, farbe2, string[128];
    new car = GetPlayerVehicleID(car);
    if(sscanf(params,"ddd",car,farbe1,farbe2))return SendClientMessage(playerid,COLOR_GRUEN,"/createcar <CarID> <Farbe1> <Farbe2> - CarID's: http://wiki.sa-mp.com/wiki/Vehicles");
    if(car < 400 || car > 611)return SendClientMessage(playerid,COLOR_BLAU,"Diese CarID gibt es nicht.");
    if(farbe1 < 0 || farbe1 > 252)return SendClientMessage(playerid,COLOR_BLAU,"Diese Farbe gibt es nicht.");
    if(farbe2 < 0 || farbe2 > 252)return SendClientMessage(playerid,COLOR_BLAU,"Diese Farbe gibt es nicht.");
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    new carid = CreateVehicle(car,X,Y,Z,0.0,farbe1,farbe2,60000);
    CreatedCars[CreatedCar] = carid;
    CreatedCar++;
    format(string,sizeof(string),"Du hast ein Fahrzeug gespawnt. ID: %d.",carid);
    SendClientMessage(playerid,COLOR_BLAU,string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLAU,"Du bist kein Admin!");
    }
    return 1;
    }


    Vll. so.


    Das mit dem LSPD lässt sich mit IsPlayerInRangeOfPoint klären und das mit dem Passwort einfach mit DIALOG_STYLE_INPUT und strval(inputtext) nach einer bestimmten Zahl abfragen.

  • Beispiel:
    Oben:
    new Sicherheitscode = 1234;


    Und dann fragst du, wenn du es in einem Dialog machst, einfach mit OnDialogResponse ab, so in etwa:
    if(strval(inputtext) == Sicherheitscode)
    {
    //...
    }
    else {
    //nicht
    }


    Das Prinzip sollte klar sein.