hlmod.hu
https://hlmod.hu/

Csapatváltás
https://hlmod.hu/viewtopic.php?f=10&t=29839
Oldal: 1 / 1

Szerző:  Tomii [ 2019.04.07. 09:26 ]
Hozzászólás témája:  Csapatváltás

Helló, Sziasztok!

Valaki esetleg tudná javítani? Úgy kellene hogy ha megölöm a T csapatot, akkor azután egyből legyen csapatváltás, mert ahogy most van, 2 kör kell hogy meglegyen a váltás, más gond nincs, csak hogy 1 kör nyerés helyett, 2 kell.

Ha átírom ezt: " 2=%!MRAD_ctwin " erre -> " 1=%!MRAD_ctwin " Akkor meg mind a 2 csapatnál váltás van, így meg nem jó.

Köszönöm annak aki segít!

  1. register_event("SendAudio", "CsapatCsere", "a", "2=%!MRAD_ctwin");


  1. public CsapatCsere()
  2. {
  3.     new players[32], num, iId;
  4.     get_players(players, num);
  5.  
  6.     for(new i=0; i < num; i++)
  7.     {
  8.         iId = players[i];
  9.         new CsTeams:t = cs_get_user_team(iId);
  10.         if(t == CS_TEAM_CT)
  11.         cs_set_user_team(iId, CS_TEAM_T);
  12.         else if(t == CS_TEAM_T)
  13.         cs_set_user_team(iId, CS_TEAM_CT);
  14.         ColorChat(iId, GREEN, "^4%s ^3» ^1Csapatváltás történt!", Prefix);
  15.     }
  16. }

Szerző:  ultraibolya [ 2019.04.07. 10:10 ]
Hozzászólás témája:  Re: Csapatváltás

Hm. Tehát az csak az első körben nem fut le az event?
Tehát:
CT
CT
CSERE
CT
CSERE
CT

vagy:

CT
CT
CSERE
CT
CT

Mindig kétszer kell hogy CT nyerés legyen,vagy csak első körben nem fut le?
Megpróbálhatod logevent-el:
  1. register_logevent("CsapatCsere",2, "3=CTs_Win");


Az időlejáratot is nézted? Mi történik ha lejár az idő,vagy megsemmisited a T csapatot.

Szerző:  Tomii [ 2019.04.07. 13:28 ]
Hozzászólás témája:  Re: Csapatváltás

Sajnos nem jó :/

Ugye amikor megölöm az utolsó T ellenfelet akkor van egy csapatváltás, de amikor ugye átdobott, van még egy csapatváltás, amint elkezdődik a kör, és vissza dob CT-be...

Szerző:  ultraibolya [ 2019.04.08. 06:03 ]
Hozzászólás témája:  Re: Csapatváltás

Most én arra gondoltam,hogy túl gyorsan vált csapatot,és lefut ugye a másik elágazás
Próbáld meg task-al:
set_task(0.5,”ct”,id)
set_task(0.5,te”,id)

Szerző:  Tomii [ 2019.04.13. 18:34 ]
Hozzászólás témája:  Re: Csapatváltás

Sajnos ugyan az :/

Szerző:  Vieni [ 2019.04.14. 18:07 ]
Hozzászólás témája:  Re: Csapatváltás

Tomii írta:
Sajnos ugyan az :/


Próbáld meg ezt, egy régi furienes pluginomból írtam át:

Edit:
az fr_teamswap_score cvar arra szolgál, hogy hány folyamatos ct vereség után cseréljen csapatot
az fr_teamswap_enabled pedig arra, hogy egyáltalán állitson-e csapatot

Kód:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "[FR] Team Scoring"
#define VERSION "1.0"
#define AUTHOR "Vieni"

new bool:g_swapteams = false

new g_MaxPlayers

new g_score

new cvar_teamswap_enabled
new cvar_teamswap_score

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   
   register_logevent("logevent_round_end", 2, "1=Round_End")
   
   register_message(get_user_msgid("TextMsg"), "message_textmsg")
   //register_message(get_user_msgid("SendAudio"), "message_sendaudio")
   
   cvar_teamswap_enabled = register_cvar("fr_teamswap_enabled", "1")
   cvar_teamswap_score = register_cvar("fr_teamswap_score", "5")
   
   g_MaxPlayers = get_maxplayers()
}

public message_textmsg()
{
   new textmsg[22]
   get_msg_arg_string(2, textmsg, charsmax(textmsg))
   
   
   if (equal(textmsg, "#Game_will_restart_in") || equal(textmsg, "#Game_Commencing"))
   {
      g_score = 0
   }
   
   else if (equal(textmsg, "#Hostages_Not_Rescued") || equal(textmsg, "#Round_Draw") || equal(textmsg, "#Terrorists_Win") || equal(textmsg, "#CTs_Win") ||
   equal(textmsg, "#Target_Saved") || equal(textmsg, "#Target_Bombed") || equal(textmsg, "#Bomb_Defused") || equal(textmsg, "#All_Hostages_Rescued"))
   {
      ScoreManager(textmsg)
      return PLUGIN_HANDLED;
   }
   
   return PLUGIN_CONTINUE;
}

ScoreManager(const textmsg[])
{
   if(equal(textmsg, "#Terrorists_Win") || equal(textmsg, "#Hostages_Not_Rescued") || equal(textmsg, "#Target_Bombed"))
   {
      if(get_pcvar_num(cvar_teamswap_enabled))
      {
         g_score += 1
         if(g_score >=  get_pcvar_num(cvar_teamswap_score))
         {
            g_score = 0
            g_swapteams = true
         }
      }
   }
   else if(equal(textmsg, "#CTs_Win") || equal(textmsg, "#Target_Saved") || equal(textmsg, "#Bomb_Defused") || equal(textmsg, "#All_Hostages_Rescued"))
   {
      g_score = 0
      g_swapteams = true
   }
}

public logevent_round_end()
   balance_teams()

balance_teams()
{
   if(!GetTerrorCount() || !GetCTerrorCount())
      return;
      
   if(!g_swapteams)
      return;

   for(new id = 1; id <= g_MaxPlayers; id++)
   {
      if(!is_user_connected(id))
         continue;
         
      if(cs_get_user_team(id) == CS_TEAM_T)
         cs_set_user_team(id, CS_TEAM_CT, 0)
      else if(cs_get_user_team(id) == CS_TEAM_CT)
         cs_set_user_team(id, CS_TEAM_T, 0)
   }
   
   g_swapteams = false
}

GetTerrorCount()
{
   new iTs, id
   
   for (id = 1; id <= g_MaxPlayers; id++)
   {
      if(!is_user_connected(id))
         continue
      
      if(cs_get_user_team(id) == CS_TEAM_T)
         iTs++
   }
   
   return iTs;
}

GetCTerrorCount()
{
   new iCTs, id
   
   for (id = 1; id <= g_MaxPlayers; id++)
   {
      if(!is_user_connected(id))
         continue
      
      if(cs_get_user_team(id) == CS_TEAM_CT)
         iCTs++
   }
   
   return iCTs;
}

Szerző:  Tomii [ 2019.04.14. 18:40 ]
Hozzászólás témája:  Re: Csapatváltás

Működik, ezer köszönet! :)

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/