Beiträge von #S.

    Hi Leute,


    wie kann ich abfragen ob Spieler A in der Gang von Spieler B ist?
    Momentar Gangmoderator setzungs Befehl:

    ocmd:gangmod(playerid,params[])
    {
    new pID;
    if(GetPVarInt(playerid,"GLeader") == 0)return SCM(playerid,Rot,"Du bist kein Leader!");
    if(sscanf(params,"u",pID))return SCM(playerid,Lightrot,"Benutze: /gangmod [ID]");
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Gang") == 0)return SCM(playerid,Rot,"Dieser Spieler ist in keienr Gang!");
    {
    SetPVarInt(playerid,"GModerator",1);
    }
    }
    }
    return 1;
    }


    Ich weiss halt nicht wie die Abfage lautet ob A in der Gang von B ist. So dass Spieler B A als Gangmoderator setzen kann.


    lg


    P.S: Jetzt bitte keine komplizierten Dinger hier auftischen, also so dass ich auch was verstehe. xD

    Achte im Public darauf, dass du niemals einem Public den return wegnimmst. Wenn du noch andere Dialoge im Public hast, achte darauf dass es so aussieht:

    // Dialoge
    }
    }
    }
    return 1;
    }


    lg


    enum EnumName
    {
    DeineEnums // Sprich: Alles was du erstellen willst.
    };
    /*Unter den Enums!*/
    new EnumName[MAX_PLAYERS][EnumName];


    So geht das....


    lg

    Also müsstest du praktisch eine Abfrage machen, wenn er auf den Spawn Button drückt, dass er überprüft welche Fraktion er ist usw. Also dass habe ich schonmal verstanden.
    Antwort: Ich kenne keine Abfrage, die überprüft ob man auf "Spawn" geklickt hat.
    Evtl. Lösungsweg: Du machst dir dein eigenes Skin System. Sprich: Anklickbare Textdraws, dort ist es vieel einfacher, anstatt es mit dem Standart Skin System zu machen.


    lg

    Ist gelöscht. Also versteh ich dass richtig jetzt: Du möchtest, dass man "Zivilisten" Skins auswählen kann, aber Fraktionsskins nicht auswählen kann, also praktisch der "Spawn" Button nicht bei diesem Skin anklickbar ist?
    Wenn ja, kannste doch mit

    GetPlayerSkin(playerid) == ID || GetPlayerSkin(playerid) == ID)
    //Danach kannse doch returnen und ne Message ausgeben?

    Oder nicht?


    lg

    SA-MP Wiki sagt es doch genau.
    Schau dir das Beispiel an.

    //common use: Bekomme alle Waffen mit einem Array in 13 Slots
    //Die Erste Variable ist die WaffenID und die Zweite ist die Munition
    new weapons[13][2];
    for (new i = 0; i < 13; i++)
    {
    GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
    }


    Quelle.


    lg


    Sogar auf Deutsch übersetzt! :D

    Dann mach es mit einer For-Schleife.

    for(new i = 0; i < MAX_PLAYERS; i++) // Diese Schleife aber nicht überall durchführen, oben hin(DialogResponse).
    { // i geht alle Spieler durch die Fraktion 1 sind.
    if(Spieler[playerid][Fraktion] == 1)
    {
    SendClientMessage(i,GELB,"Die Feuerwehr hat Einfahrt gemeldet."); // Hier anstatt playerid "i", weil wir durch die Schleife eine neue Variable geklariert haben.
    }
    return 1;
    }


    Erfolg nicht garantiert, ist ausm Kopf in PAWNO geschrieben.


    lg

    Ocmd.inc nicht im Public OnPlayerCommandText benutzen. Immer überhalb von OnPlayerCommandText / oder unten im Script. Nicht in einem Public!


    lg

    Bei Fishtime's Beispiel müsste man eigentlich genau 30 Score haben. D.h., wenn man 29 oder 31 (Oder höher/tiefer) hat, kann man nicht ins Team.
    Also wenn, dann benutz den Operator

    >= /*Links ist größer als Rechts oder gleicht rechts*/
    //Oder
    <= /*Rechts ist größer als Links oder gleicht Links*/


    == /*Links gleicht Rechts*/


    lg

    Meinst du 30 Score?
    Wenn joa:

    if(GetPlayerScore(playerid) >= 30)return SCM(playerid,ROT,"Das kannst du erst ab 30 Punkten!");
    {
    SetPlayerTeam(playerid,DeinTeam);
    }
    return 1;


    Hat Fishtime aber auch gepostet.


    lg



    if(darfspielerschreiben[playerid]==true) return SendClientMessage(playerid,COLOR_RED,"Du darfst nur alle 60 Sekunden schreiben.");


    ??
    Du fragst ab ob die Variable true ist - also wenn er schreiben darf. Dann returnst du, dass er nur alle 60 Sekunden schreiben darf, obwohl du abfragst, ob er true ist?
    Und dann als Sahnehäubchen setzt du das ganze nochmal auf true. ??



    //Bei dem /h Command:
    if(darfspielerschreiben[playerid]==false) return SendClientMessage(playerid,COLOR_RED,"Du darfst nur alle 60 Sekunden schreiben.");
    SetTimerEx("htimer",60000,false,"i",playerid);
    darfspielerschreiben[playerid]=true;


    lg


    P.S: Wenn ich schwachsinn rede, Sagen, dann Lösche ich es xD

    Du gehst zu
    public OnDialogResponse
    . Dort fragst du ab welchen Button er gedrückt hat
    if(response == 0) // Oder if(response == 1) 0 Ist Abbrechen 1 ist Melden
    Wenn er auf 1 Klickt, fragst du ab welche Fraktion es ist. z.B. 1 für LSPD.


    Dann machst du SendClientMessage zu den Polizisten.
    Beispiel:

    if(Spieler[playerid][Fraktion] == 1)
    {
    SendClientMessage(playerid,DeineFarbe,"Die Feuerwehr hat Einfahrt / Ausfahrt gemeldet.");
    }
    else // Wenn sie nicht sind
    {
    return 1;
    }


    lg