Beiträge von Hagi

    Ich will grad ne Abfrage machen ob der Spieler spawen darf oder nicht:
    Es gibt zwei Teams : mafia und police
    In der Variable wird gespeichert wie viele Spieler in welchem Team sind.
    Mit dem Spieler der spawnen will, darf der unterschied maximal 1 im anderen Team betragen, so dass in einem Team immer nur einer mehr sein kann als im anderen Team


    Kann das dann funktionieren ?
    Falls nicht bitte mal eine andere Abfrage posten, danke !


    if(tcounter[tmafia] > tcounter[tpolice] +1 && tcounter[tpolice] > tcounter[tmafia] +1)

    Also wenn ich jetzt erstmal nur vom Sinn her das richtig verstehe, soll man bei der Skin id 144 oder 21, die man selber trägt und man KEIN Zivilist ist zurück zur Klassenauswahl befördert werden ?

    Und eben genau der Fehler hier ist das Problem


    must be lvalue (non-constant)


    Das bedeutet, dass deine definierung nicht gültig ist.
    Eben genau aus dem Grund, dass man für diesen Fall #define oder const benutzen muss und diese nicht mir variablen definiert werden können.

    So wie ich das von Blackfox mal verstanden habe, muss ein define Wert immer ein static Wert sein, sprich er kann nicht mit einer Variable, String (inputtext) definiert werden.


    Du musst die Zahl einfach festlegen, anders geht es nicht.


    Aber Blackfox kann dir das sicher auf einer etwas höheren, informelleren, Ebene erklären.

    Hier das meine Ich


    PlayerInfo[i][pTut] = 1;


    Du nimmst das an der Stelle einfach raus und machst bei OnPlayerDeath das dann so


    if(PlayerInfo[playerid][pTut] = 1)
    {
    // Hier gelangt er zum Todessystem
    }
    else
    {
    PlayerInfo[i][pTut] = 1; // aber hier stirbt er dann. Also einmal kommt er nicht ins Todessystem
    // Hier kommt er nichts zum Todessystem
    }


    Ja ne echt ? Das wissen wir und darum soll er schaun ob nach dem Tutorial irgendwo die HP untergesetzt wird oder der Spieler spawnt , denn ohne sowas fällt der nicht einfach Tod um.


    PS: Wenn es GF ist dann hier der falsche Bereich

    Hast du warscheinlich eine Variable die Irgentwie hattutorial oder so heißt. Halt worin gespeichert wird, dass er das Tutorial gemacht hat.
    Diese Variable wird nach dem Tutorial aber auf 1 gestellt.


    Du könntest jetzt die Variable an dieser Stelle nicht auf 1 setzten sondern bei OnPlayerDeath fragen ob die Variable 0 ist und ihn dann nicht in das Todessystem schicken sondern einfach die Variable auf 1 setzten. Ab jetzt geht er dann immer Tot.



    Alternativ musst du rausfinden warum er stirbt.
    Ich denke am Ende des Tutorial ist der Befehl SpawnPlayer(playerid); oder so.


    Schau mal danach oder benutz meinen ersten Vorschlag

    Ich denke die einzige möglichkeit liegt daran das ganze über Zahlen laufen zu lassen, da man dort eine for schleife benutzen kann. Bei Namen müsste man immer genau wissen welchen man dort hat


    Mach dir ein Array mit einem vorgeschriebenen Maximalwert (er muss klar definiert sein, ist ein array). Und schreib in deine Datei dann Sachen wie


    eintrag[0] = "bla"
    eintrag[1]= "blubb"


    Dann ist es einfach den Inhalt mit einer Schleife abzufragen, da die einzelnen einträge ja mit Zahlen durchnummeriert sind

    DU öffnest Editor packst einen Table da rein und in der Statusleiste siehst du wie viel Zeichen das sind.


    1 Zeichen = [1]
    2 Zeichen = [2]


    Am ende addierst du alle Tables und erhälst so die größes des finalen Strings (Zeichenkette)

    new aduty[MAX_PLAYERS];


    // Bei deinem befehl
    aduty[playerid] = 0;
    //oder
    aduty[playerid] = 1;


    /Bei den Abfragen zu den Autos


    z.B.
    if(IsACop(playerid) || /*oder = || */ aduty[playerid] == 1)