[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • So zum Beispiel:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new i = 0; i<sizeof(grovestreetcar); i++)
    {
    if(GetPlayerVehicleID(playerid) == grovestreetcar[i])
    {
    if(!SpielerFraktion(playerid,1))
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,Weiß,"Du bist kein Grove Street Member!");
    }
    }
    }
    for(new i = 0; i<sizeof(vagoscar); i++)
    {
    if(GetPlayerVehicleID(playerid) == vagoscar[i])
    {
    if(!SpielerFraktion(playerid,2))
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,Weiß,"Du bist kein Grove Street Member!");
    }
    }
    }
    }
    return 1;
    }


    Einrückung ist sehr wichtig, achte darauf.

  • public OnPlayerConnect(playerid){
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden bitte gebe nun dein Passwort ein","Login","Abbrechen"); } else { ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen.","Registrieren","Abbrechen");}

  • Dann schreibe es so.
    Den Pfad (/users/) und die Dateiendung (.ini) musst du natürlich anpassen.


    public OnPlayerConnect(playerid)
    {
    new pfad[64], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(pfad, sizeof(pfad), "/users/%s.ini", name);
    if(fexist(pfad))
    {
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden bitte gebe nun dein Passwort ein","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen.","Registrieren","Abbrechen");
    }
    return 1;
    }

  • Heyho ich hab da eine Frage denn ich finde die antwort darauf nicht (suche Falsch). Wie kann man mehrere Befehl parameter abfragen?


    Beispiel:
    /box nehmen <Ware> <Anzahl>
    /box verstauen <Ware> <Anzahl>


    Also das das /box entweder nehmen oder verstauen angegeben werden muss?

    Mit freundlichen Grüßen,
    Derakar

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Sagen wir du nennst den ersten Parameter in sscanf befehl, dann würde dir Abfrage so aussehen:
    if(!strcmp(befehl, "nehmen", true))
    {


    }
    else if(!strcmp(befehl, "verstauen", true))
    {


    }
    else return SendClientMessage(playerid, 0xFF0000FF, "Error, es geht nur nehmen oder verstauen.");

  • Also so ganz bekomme ich das nicht hin. Wenn ich jetzt /supcar eingebe (sollte eigentlich Verwende: /supcar {FF9E00}[add/del] kommen) kommt der Dialog. Und wenn ich add/del eingebe dann kommt die Fehlermeldung.


    ocmd:supcar(playerid,params[])
    {
    new tag[128];
    if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    if(!sscanf(params, "s[128]",tag)) return SendClientMessage(playerid, GRAU, "Verwende: /supcar {FF9E00}[add/del]");
    if(!strcmp(tag, "add", true)){
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, GRAU, "Du befindest dich bereits in einem Fahrzeug!");
    ShowPlayerDialog(playerid,DIALOG_SUPCAR,2,"Supporter Autos","Sultan\nInfernus\nGolfcart\nMaverick","Spawn","Schliessen");
    return 1;
    } else if(!strcmp(tag, "del", true)){
    SendClientMessage(playerid, GRAU, "Car Entfernen!");
    } else return SendClientMessage(playerid, GRAU, "Verwende: /supcar {FF9E00}[add/del]");

    return 1;
    }

    Mit freundlichen Grüßen,
    Derakar

  • Code
    \gamemodes\1337.pwn(8924) : error 012: invalid function call, not a valid address
    \gamemodes\1337.pwn(8924) : warning 215: expression has no effect
    \gamemodes\1337.pwn(8924) : error 001: expected token: ";", but found ")"
    \gamemodes\1337.pwn(8924) : error 029: invalid expression, assumed zero
    \gamemodes\1337.pwn(8924) : fatal error 107: too many error messages on one line