[SAMMELTHREAD] Kleine Scripting Fragen

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Na also, dann doch so:
    if(PlayerInfo[playerid][pLeader] == 1)
    {
    for(new pv = 0; pv < sizeof(PolizeiVehs); pv++)
    {
    if(!IsAnyPlayerInVehicle(PolizeiVehs[pv]))
    {
    SetVehicleToRespawn(PolizeiVehs[pv]);
    }
    }
    for(new fc;fc<sizeof(FactionCars);fc++)
    {
    if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611)
    {
    if(FactionCars[fc][fFaction][0] == GetPlayerFaction(playerid))
    {
    if(!IsAnyPlayerInVehicle(FactionCars[fc][fCarid]))
    {
    DestroyAndCreateFactionCar(fc);
    }
    }
    }
    }
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
    return 1;
    }

  • 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))
    {
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,Weiß,"Du bist kein Grove Street Member!");
    }
    }
    }
    }
    return 1;
    }


    wie hau ich da jetzt die abfrage für fraktion 2 rein?
    meine ersten versuche endeten mit 26 errors ^^

  • 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");}

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 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

  • 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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen