GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: RicSiy123 - 2019. Augusztus 15. - 07:12:44

Cím: Felezés
Írta: RicSiy123 - 2019. Augusztus 15. - 07:12:44
Felezés
 
Sziasztok! Hogyan lehetne azt megoldani, hogy véletlenszerűen (de egyenlően)  ketté ossza azokat a játékosokat, akiknek a Cucc[playerid] értékük egyenlő 1-el, majd a két csapattal, két különböző dolog történjen?  
Cím: Felezés
Írta: Kovacs_Richard - 2019. Augusztus 15. - 07:22:08
páratlan szám lehetséges? és ha igen az az 1 plusz fővel mi legyen?
Cím: Felezés
Írta: RicSiy123 - 2019. Augusztus 15. - 07:44:39
Lehetséges a páratlan szám. Azzal mindegy mi lesz, valamelyikhez a kettő közül dobja be azt is 
Cím: Felezés
Írta: Kovacs_Richard - 2019. Augusztus 15. - 08:19:41
megoldható, hogy összegyűjtöd 1 tömbbe és véletlenszerűen kiveszel egyet
 
de inkább úgy csinálnám a helyedben, hogy 1 tömbbe összegyűjteném őket, összekeverném a tömbben levő ID-kat randommal és kivenném az első felét az egyik csapatba, a másik felét a másik csapatba
mivel a pawno nem kezel dinamikusan tömböket, így MAX_PLAYERS tömböt hoznék létre és egy számlálóval tartanám számon, hogy hány elemmel kell foglalkozzon az adott kódom és így a felét is könnyebb lesz kivenni
Cím: Felezés
Írta: RicSiy123 - 2019. Augusztus 15. - 09:17:21

new teamCount[2], teamid;
foreach(Player, ii)
{
teamid = random(2);
SetPlayerTeam(ii, teamid);
teamCount[teamid] ++;
}

 
Találtam egy ilyen megoldást, csak ehhez kéne valami loop a teamCount alapján (Hogy egyenlő legyen) 
Cím: Felezés
Írta: Kovacs_Richard - 2019. Augusztus 15. - 09:21:37
hát ezzel max úgy tudod, hogy az elosztott csapatokat balanceolod, de nem vagy sokkal előrébb ezzel a megoldással
Cím: Felezés
Írta: Matthew666 - 2019. Augusztus 19. - 16:11:07

stock mixPlayers()
{
new MIX_STATUS   =   0;
 
for(new i = 0; i < MAX_PLAYERS; i++)
{
   if(PERMISSION[i] == 1)
   {
      switch(MIX_STATUS)
      {
         case 0:
         {
            MIX_STATUS    = 1;
            TEAM[i]      = 1;
            printf(\"Player ID %d has been assigned to team 1.\", i);
                       }
             
         case 1:
         {
            MIX_STATUS = 0;
            TEAM[i]      = 2;
            printf(\"Player ID %d has been assigned to team 2.\", i);
                       }
                }
            }
}
return 1;
}
stock functionForPlayersInTeam()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
   switch(TEAM[i])
   {
      case 1:
      {
         printf(\"Player ID %d is assigned to team 1.\", i);
                }
      case 2:
      {
         printf(\"Player ID %d is assigned to team 2.\", i);
                }
            }
     }
return 1;
}

 
Értelemszerűen módosítsd a nem megfelelő részt. Nem próbáltam ki a kódot.