[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
  • Hallo Com ich wollte mal fragen ob es besser ist eine Tabelle anzufertigen für Fraktionen und alle Spieler dort Einträgt oder reicht es wenn man das so wie bei Mr.Monat macht ?
    Es geht mir wegen /members und wegen ucp später
    Was wäre besser bzw zu empfehlen ?
    Jeffry:


    /Edit Verbesser

  • Ich denke nicht alle (sowie ich) wissen wie MrMonat das macht. Ich persönlich würde einfach durch alle Spieler durchgehen, und dort abfragen ob der Spieler in der Fraktion ist.
    Wenn ja, den Spieler und ggf. den Rank oder ähnliches in den String schreiben lassen.
    Wenn du aber alle Spieler in eine extra Tabelle schreiben möchtest, dann musst du drauf achten, das du entweder genug Spalten hast, oder die Spieler richtig splittest.
    Das ganze kann man ja durch die Split-Funktion machen.

  • @xCurry:
    Du legst in der Spieler-Tabelle eine Spalte "fraktion" an, als INT. Darin speicherst du die Fraktions-ID in der der Spieler ist.
    Dann kannst du bei deinem /members Befehl einfach einen SELECT wie folgt machen:

    SQL
    SELECT name FROM users WHERE fraktion = '%d';


    %d wird in dem Fall mit der Fraktions-ID die eingegeben wurde ersetzt, sollte klar sein.

  • Moin Leute,


    ich bin grad dabei mein Eroberungsystem fertig zu machen, und es klappt alles für einen Spieler, aber wenn ich es mit meinem Spieler teste geht es nur für ID 0... warum? Ich hab bei mir eine Globae Variable die mit [MAX_PLAYERS] ist, und da sollen halt nur Zahlen eingetragen ,aber wenn er z.b. beim Spawnen abgefragt wird passiert nichts? Nur für ID 0 , ich möchte jetzt keinen Code einfügen weil der EWIG LANGE ist...


    Wäre sehr korrekt von euch wenn ihr mir evlt. "Tipps" gibt woran es liegen könnte?

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • Hallo, ich hab da ein Problem undzwar, wenn ich /frc eingebe werden keine Autos zurück gespawnt wenn ich in einem Car bin.



    if(PlayerInfo[playerid][pLeader] == 1)
    {
    for(new pv = 0; pv < sizeof(PolizeiVehs); pv++)
    {
    if(!IsPlayerInAnyVehicle(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(!IsPlayerInAnyVehicle(PolizeiVehs[fc]))
    {
    DestroyAndCreateFactionCar(fc);
    }
    }
    }
    }
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
    return 1;
    }

  • 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])) //fCarid eventuell anpassen
    {
    DestroyAndCreateFactionCar(fc);
    }
    }
    }
    }
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
    return 1;
    }


    Mit:
    stock IsAnyPlayerInVehicle(vehicleid)
    {
    for(new i=0; i<MAX_PLAYERS; i++) if(GetPlayerVehicleID(i) == vehicleid) return 1;
    return 0;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • if(!IsPlayerInVehicle(playerid,FactionCars[fc][PolizeiVehs[fc]]))
    Die Funktion heißt IsPlayerInVehicle. Klappt das so?
    #edit: Sorry, ich hatte auch gerade hier den Parameter "playerid" vergessen, habe das hinzugefügt.

  • Nein Nein Nein Nein ... :pinch:


    Lest doch mal, die Funktion ist diese:
    stock IsAnyPlayerInVehicle(vehicleid)
    {
    for(new i=0; i<MAX_PLAYERS; i++) if(GetPlayerVehicleID(i) == vehicleid) return 1;
    return 0;
    }


    Also muss es so sein:
    if(!IsAnyPlayerInVehicle(FactionCars[fc][CarID]))
    Das "CarID" musst du mit dem ersetzen, das vor CreateVehicle beim Fraktionscar-erstellen steht. Wenn du nicht weißt was, poste dein enum das zu FactionCars gehört, bzw. poste wie du die Fahrzeuge erstellst.



    EDIT:
    Saphire: Zitat, im Falle du es nicht siehst, da der Post nicht mehr auf der neusten Seite ist.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Jeffry:



    if(strcmp(cmd, "/frakrc", true) == 0 || strcmp(cmd, "/frc", true) == 0)
    {
    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][PolizeiVehs]))
    {
    DestroyAndCreateFactionCar(fc);
    }
    }
    }
    }
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
    return 1;
    }



    Polizeivehs werden so erstellt


    new PolizeiVehs[50];
    PolizeiVehs[0] = AddStaticVehicleEx(...)

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