[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, kurze Frage:


    Kann aus einem Gamemode ein stock aufgerufen werden der in einem Filterscript liegt?


    Ich schreibe gerade in einem FilterScript, und wenn auf dem Server jemand einen PayDay hat soll ein stock in meinem FilterScript aufgerufen werden..


    Ist das möglich?

  • xSnake:
    Füge "tvid" in dem enum von "sInfo" hinzu.
    Weise dieser Array beim Verbinden des Spielers den Wert -1 zu.
    Die nächste Zuweisung erfolgt unter: sInfo[playerid][tv] = 1; //hier drunter
    sInfo[pID][tvid] = playerid; // <-


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(sInfo[playerid][tvid] != -1) PlayerSpectateVehicle(sInfo[pID][tvid], GetPlayerVehicleID(playerid));
    return 1;
    }
    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    if(sInfo[playerid][tvid] != -1) PlayerSpectatePlayer(sInfo[pID][tvid], playerid);
    return 1;
    }


    Dementsprechend sollte der Wert wieder auf -1 geändert werden, sofern der Spieler mit dem Beobachten aufhört.


    L.G.



    Simon2202: Guck dir mal die CallRemoteFunction und Callbacks an.
    Bei Fragen kannste dich an mich wenden.

    Einmal editiert, zuletzt von heyhooo ()

  • @heyhoo


    Also wenn im gameMode der User einen Payday hat, soll dort dann


    CallRemoteFunction("BankPayDay","d",playerid);


    Eingefügt werden?


    Und ich schreibe dann in mein Filterscript:


    forward BankPayDay(const string[]);
    public BankPayDay(const string[])
    {
    return 1;
    }


    Richtig verstanden, was im Wiki steht?

  • Beitrag von Almaz ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Dafür benötigst du eine Array (-> boolean) und einen Timer.
    Sobald der Spieler erfolgreich etwas in den Chat geschrieben hat, setzt du diese auf true;
    Nun startest du einen Timer mit "SetTimerEx" und gibst die Nummer des Spielers mit.
    Beim Aufrufen des Callbacks setzt du diesen Wert wieder auf false.
    Nun kommt das einfachste:
    In deinem Befehl fügst du einfach eine weiter Verzweigung hinzu, welche den Wert der Array überprüft.
    (false-> der Spieler kann schreiben; true-> der Spieler kann nicht schreiben)
    Bei Fragen melden.


    L.G.

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


    wo muss das hin ?
    sInfo[playerid][tv] = 1; //hier drunter
    sInfo[pID][tvid] = playerid; // <-


    enum playerInfo{
    eingeloggt,
    level,
    db_id,
    alevel,
    slevel,
    Skin,
    fraktion,
    rang,
    leader,
    coleader,
    spawnchange,
    tutpart,
    regstep,
    geschlecht,
    adminduty,
    tv,
    tvid
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    new pID;
    if(sInfo[playerid][tvid] != -1) PlayerSpectateVehicle(sInfo[pID][tvid], GetPlayerVehicleID(playerid));
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    new pID;
    if(sInfo[playerid][tvid] != -1) PlayerSpectatePlayer(sInfo[pID][tvid], playerid);
    return 1;
    }


    ocmd:tv(playerid,params[])
    {
    if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
    if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");
    new pID,string[128];
    if(sInfo[playerid][tv] == 0)
    {
    if(sscanf(params, "u", pID)) return SendClientMessage(playerid, ROT, "/tv [ID]");
    {
    sInfo[playerid][tv] = 1;
    sInfo[pID][tvid] = playerid;
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, pID);
    sInfo[playerid][tv] = 1;
    format(string,sizeof(string),"Du beobachtest nun %s!",getPlayerName(pID));
    SendClientMessage(playerid,GRÜN,string);
    }
    }
    else if(sInfo[playerid][tv] == 1)
    {
    TogglePlayerSpectating(playerid, 0);
    SetCameraBehindPlayer(playerid);
    sInfo[playerid][tv] = 0;
    SendClientMessage(playerid,GELB,"Du beobachtest den Spieler nun nicht mehr!");
    }
    return 1;
    }

    Einmal editiert, zuletzt von xSnake ()

  • das problem habe ich gelöst


    jetze habe ich eine kleine frage ich habe ein /gate befehl und will abfrage ob der spieler in nicht der fraktion 1 ist und ob der spieler ein admin ist und ob der admin aduty ist
    Kaliber:


    if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
    if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");


    if(IsPlayerInRangeOfPoint(playerid,10,1590.33, -1637.92, 14.83))
    {
    if(!isPlayerInFrakt(playerid, 1)) return 1;
    MoveDynamicObject(LSPDGTor, 1590.35, -1637.92, 8.33, 2.5);
    SendClientMessage(playerid,ROT,"Das Tor schließt in 10sec automatisch!");
    SetTimerEx("CloseGate", 10000, 0, "d", LSPDGTor);
    printf("%s Öffnet das LSPDGTOR)",getPlayerName(playerid));
    return 1;
    }

  • xSnake:
    if(IsPlayerInRangeOfPoint(playerid,10,1590.33, -1637.92, 14.83))
    {
    if(!isPlayerInFrakt(playerid, 1)) return 1;
    if(!isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Info: Du bist dazu nicht befugt!");
    if(sInfo[playerid][adminduty] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Aduty!");
    MoveDynamicObject(LSPDGTor, 1590.35, -1637.92, 8.33, 2.5);
    SendClientMessage(playerid,ROT,"Das Tor schließt in 10sec automatisch!");
    SetTimerEx("CloseGate", 10000, 0, "d", LSPDGTor);
    printf("%s Öffnet das LSPDGTOR)",getPlayerName(playerid));
    return 1;
    }


    Falls du meinst, dass man mindestens eines davon braucht:
    if(IsPlayerInRangeOfPoint(playerid,10,1590.33, -1637.92, 14.83))
    {
    if(!isPlayerInFrakt(playerid, 1) && !isAdmin(playerid,1) && sInfo[playerid][adminduty] == 0) return 1;
    MoveDynamicObject(LSPDGTor, 1590.35, -1637.92, 8.33, 2.5);
    SendClientMessage(playerid,ROT,"Das Tor schließt in 10sec automatisch!");
    SetTimerEx("CloseGate", 10000, 0, "d", LSPDGTor);
    printf("%s Öffnet das LSPDGTOR)",getPlayerName(playerid));
    return 1;
    }

  • Beitrag von Corvus ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Heyoooo,
    wieder eine Frage.


    Da ich derzeitig versuche etwas mit dem Skin auswahl etc. Frage ich euch , wie mache ich dass wenn man ganz am anfang auf den Pfeilen drückt , sodass oben ein GameText kommt wie z.b. "TERRORISTEN" Aber nur bei einem bestimmten skin?

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

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