Random "playerid" von zwei Teams

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 zusammen,


    ich bin gerade am schauen wie ich von zwei Teams eine Random-Playerid bekomme.
    Die ID darf nur von dem Team sein, nicht vom anderen Team!


    Team 1:
    Charlie - Playerid: 1
    Bravo - Playerid: 19
    m4a_X - Playerid: 3


    Team 2:
    Delta - Playerid: 2
    Alpha - Playerid: 0
    Santa - Playerid: 13


    Nun möchte ich von Team 1 von diesen 3 ID´s eine Random ID. (Entweder 1, 19 oder 3)
    Und von Team (Entweder 2, 0 oder 13)


    Leider kapiere ich nicht wie ich das machen muss.
    Aber es bisher so gemacht:


    for(new i = 0; i < MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(gTeam[i] == TEAM_BLUE) {
    players_team_blue++;
    }
    if(gTeam[i] == TEAM_GREEN) {
    players_team_green++;
    }
    }
    }


    Allerdings klappt das überhaupt nicht.


    Lg

  • Das kannst du so machen:


    new r_Spieler[2][3] = {
    {-1, ...}, {-1, ...}
    };


    for(new i,idx[2]; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i)) continue;
    if(gTeam[i] == TEAM_BLUE && idx[0] < sizeof r_Spieler[]) r_Spieler[0][idx[0]] = i,idx[0]++;
    if(gTeam[i] == TEAM_GREEN && idx[1] < sizeof r_Spieler[]) r_Spieler[1][idx[1]] = i,idx[1]++;
    }
    //Und dann so:
    if(r_Spieler[0][2] != -1)
    {
    //Nur wenn alle IDs vergeben sind:
    new random_Spieler1 = r_Spieler[0][random(3)];
    }
    if(r_Spieler[1][2] != -1)
    {
    //Nur wenn alle IDs vergeben sind:
    new random_Spieler2 = r_Spieler[1][random(3)];
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kaliber: Funktioniert leider nicht.



    for(new i,idx[2]; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i)) continue;
    if(gTeam[i] == TEAM_BLUE && idx[0] < sizeof r_Spieler[]) r_Spieler[0][idx[0]] = i,idx[0]++;
    if(gTeam[i] == TEAM_GREEN && idx[1] < sizeof r_Spieler[]) r_Spieler[1][idx[1]] = i,idx[1]++;
    }
    new value_blue = -1, value_green = -1, string[128];
    if(r_Spieler[0][2] != -1) // TEAM BLUE
    {
    value_blue = r_Spieler[0][random(3)];
    }
    if(r_Spieler[1][2] != -1) // TEAM GREEN
    {
    value_green = r_Spieler[1][random(3)];
    }

    printf("value_blue = %d | value_green = %d", value_blue, value_green);



    Entweder habe ich was falsch verstanden oder es klappt nicht, aufjedenfall kommt beidesmal -1 raus.

  • Entweder habe ich was falsch verstanden oder es klappt nicht, aufjedenfall kommt beidesmal -1 raus.


    //Edit: Deine Formatierung ist für n Arsch!


    Ja, dann sind keine 3 Spieler in jedem Team vorhanden... :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S