[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
  • 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;
    }

  • 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.

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

  • 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 ^^

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