hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 21:32



Jelenlévő felhasználók

Jelenleg 223 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 223 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: ReAPI - Team Select
HozzászólásElküldve: 2019.02.08. 18:19 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2012.07.02. 17:41
Hozzászólások: 1641
Megköszönt másnak: 121 alkalommal
Megköszönték neki: 247 alkalommal
ReAPI - Team Select
Leírás:
  • Fejlett csapatválasztó menü, több hasznos funkcióval, mint például: beállíthatunk egy x időt ami alatt nem lehet csapatot választani, automatikus csatlakozás (adminnak immun beállítható), csapatválasztás módját változtathatjuk normál vagy random ra (felcsatlakozás után vagy külön a csapatot válasszuk ki vagy egy gomb random elhelyez)
Cvar / Beállítás:
  • amx_ts_mode - Menü mód 0 - Normál, 1 - Random
  • amx_ts_spec - Nézői mód 0 - Mindig, 1 - Csatlakozás után
  • amx_ts_appearance - Kinézet kiválasztás 1 - Be, 0 - Ki
  • amx_ts_unlimited - Végtelen csapatválasztás 1 - Be, 0 - Ki
  • amx_ts_time_limit - Csapatcsere időkorlát 0.0 - Ki
  • amx_ts_autojoin - Automatikus csapatba állás 1 - Be, 0 - Ki
  • amx_ts_admin_flags - Admin jog nézői módhoz "(üres)" - Ki
  • amx_ts_autojoin_immunity - Automatikus csatlakozás immun jog "(üres)" - Ki
Verzió:
  • v1.5.0
Követelmények:
  • ReApi
Kompatibilis:
  • Amx Mod X 1.8.3-1.9.0dev
Készítő:
  • F@nt0M
Képek:
Csatolmány:
1.png
1.png [ 83.54 KiB | Megtekintve 1166 alkalommal ]

Lang:
  1. [hu]
  2. TS_MODE_DESC = Mód választás. 0 - Normál, 1 - Random csapat
  3. TS_SPEC_DESC = Néző mód. 0 - Mindig, 1 - Csatlakozás után
  4. TS_APPEARANCE_DESC = Kinézet kiválasztás. 1 - Be, 0 - Ki
  5. TS_UNLIMITED_DESC = Végtelen csapatválasztás. 1 - Be, 0 - Ki
  6. TS_TIME_LIMIT_DESC = Idő limit csapatválasztáshoz. 0.0 - Ki
  7. TS_AUTOJOIN_DESC = Automatikus csatlakozás. 1 - Be, 0 - Ki
  8. TS_FLAGS_DESC = Admin jog a nézői módhoz. "" - Ki
  9. TS_AUTOJOIN_IMMUNITY_DESC = Automatikus csatlakozás immun jog "" - Ki
  10. TS_SELECT_TEAM = Csapat választás
  11. TS_ENTER_GAME = Belépés a játékba
  12. TS_CHANGE_TEAM = Csapat csere
  13. TS_TEAM_T = Terrorista
  14. TS_TEAM_CT = Counter-Terrorista
  15. TS_SPECTATOR = Néző
  16. TS_CLOSE = Bezárás

Plugin:
  1. #include <amxmodx>
  2. #include <reapi>
  3.  
  4. enum { MODE_NORMAL_TEAM, MODE_RANDOM_TEAM }
  5. enum { SPEC_ALWAYS, SPEC_AFTER_JOIN }
  6.  
  7. new HookChain:HookShowMenuPre
  8. new Mode, Spectators, Appearance, Unlimited, Float:TimeLimit, AdminFlags = ADMIN_BAN, Autojoin, AutojoinImminity = ADMIN_BAN
  9. new Float:NextChooseTeamTime[MAX_PLAYERS + 1]
  10.  
  11. public plugin_init()
  12. {
  13.     register_plugin("Team Select", "1.5.0", "F@nt0M")
  14.     register_dictionary("teamselect.txt")
  15.  
  16.     RegisterHookChain(RG_ShowVGUIMenu, "ShowVGUIMenu_Pre", false)
  17.     RegisterHookChain(RG_HandleMenu_ChooseTeam, "HandleMenu_ChooseTeam_Pre", false)
  18.     RegisterHookChain(RG_HandleMenu_ChooseTeam, "HandleMenu_ChooseTeam_Post", true)
  19.     DisableHookChain(HookShowMenuPre = RegisterHookChain(RG_ShowMenu, "ShowMenu_Pre", false))
  20.  
  21.     new pcvar
  22.     pcvar = create_cvar("amx_ts_mode", "0", FCVAR_SERVER, fmt("%L", LANG_SERVER, "TS_MODE_DESC"), true, 0.0, true, 1.0)
  23.     bind_pcvar_num(pcvar, Mode)
  24.  
  25.     pcvar = create_cvar("amx_ts_spec", "0", FCVAR_SERVER, fmt("%L", LANG_SERVER, "TS_SPEC_DESC"), true, 0.0, true, 1.0)
  26.     bind_pcvar_num(pcvar, Spectators)
  27.  
  28.     pcvar = create_cvar("amx_ts_appearance", "0", FCVAR_SERVER, fmt("%L", LANG_SERVER, "TS_APPEARANCE_DESC"), true, 0.0, true, 1.0)
  29.     bind_pcvar_num(pcvar, Appearance)
  30.  
  31.     pcvar = create_cvar("amx_ts_unlimited", "0", FCVAR_SERVER, fmt("%L", LANG_SERVER, "TS_UNLIMITED_DESC"), true, 0.0, true, 1.0)
  32.     bind_pcvar_num(pcvar, Unlimited)
  33.  
  34.     pcvar = create_cvar("amx_ts_time_limit", "0.0", FCVAR_SERVER, fmt("%L", LANG_SERVER, "TS_TIME_LIMIT_DESC"), true, 0.0)
  35.     bind_pcvar_float(pcvar, TimeLimit)
  36.  
  37.     pcvar = create_cvar("amx_ts_autojoin", "0", FCVAR_SERVER, fmt("%L", LANG_SERVER, "TS_AUTOJOIN_DESC"), true, 0.0, true, 1.0)
  38.     bind_pcvar_num(pcvar, Autojoin)
  39.  
  40.     pcvar = create_cvar("amx_ts_admin_flags", "d", FCVAR_SERVER, fmt("%L", LANG_SERVER, "TS_FLAGS_DESC"))
  41.     hook_cvar_change(pcvar, "HookChangeFlag")
  42.  
  43.     pcvar = create_cvar("amx_ts_autojoin_immunity", "d", FCVAR_SERVER, fmt("%L", LANG_SERVER, "TS_AUTOJOIN_IMMUNITY_DESC"), true, 0.0, true, 1.0)
  44.     hook_cvar_change(pcvar, "HookChangeImmunity")
  45. }
  46.  
  47. public HookChangeFlag(const pcvar, const oldValue[], const newValue[]) AdminFlags = read_flags(newValue);
  48. public HookChangeImmunity(const pcvar, const oldValue[], const newValue[]) AutojoinImminity = read_flags(newValue);
  49.  
  50. public client_putinserver(id)
  51. {
  52.     NextChooseTeamTime[id] = 0.0;
  53.     if (!Autojoin) return
  54.     if (AutojoinImminity && (get_user_flags(id) & AutojoinImminity == AutojoinImminity)) return
  55.     rg_join_team(id, rg_get_join_team_priority())
  56. }
  57.  
  58. public ShowVGUIMenu_Pre(const id, VGUIMenu:menuType)
  59. {
  60.     if (is_user_bot(id) || menuType != VGUI_Menu_Team) return HC_CONTINUE
  61.  
  62.     if (TimeLimit && NextChooseTeamTime[id] >= get_gametime())
  63.     {
  64.         client_printex(id, print_center, "#Only_1_Team_Change")
  65.         return HC_SUPERCEDE
  66.     }
  67.  
  68.     new bool:newPlayer = bool:(TeamName:get_member(id, m_iTeam) == TEAM_UNASSIGNED)
  69.     SetGlobalTransTarget(id)
  70.  
  71.     new menu[MAX_MENU_LENGTH], keys
  72.     new len = formatex(menu, charsmax(menu), "\w%l^n^n", "TS_SELECT_TEAM")
  73.     if (Mode == MODE_NORMAL_TEAM)
  74.     {
  75.         len += formatex(menu[len], charsmax(menu) - len, "\d[\r1\d] \r%l \d[\y%d\d]^n", "TS_TEAM_T", get_member_game(m_iNumTerrorist))
  76.         len += formatex(menu[len], charsmax(menu) - len, "\d[\r2\d] \r%l \d[\y%d\d]^n", "TS_TEAM_CT", get_member_game(m_iNumCT))
  77.         keys |= MENU_KEY_1 | MENU_KEY_2
  78.     }
  79.     else
  80.     {
  81.         len += formatex(menu[len], charsmax(menu) - len, "\d[\r1\d] \r%l^n", newPlayer ? "TS_ENTER_GAME" : "TS_CHANGE_TEAM")
  82.         keys |= MENU_KEY_1
  83.     }
  84.  
  85.     if (Spectators == SPEC_ALWAYS || (Spectators == SPEC_AFTER_JOIN && !newPlayer) || (AdminFlags && (get_user_flags(id) & AdminFlags) == AdminFlags))
  86.     {
  87.         len += formatex(menu[len], charsmax(menu) - len, "^n\d[\r6\d] \w%l^n", "TS_SPECTATOR")
  88.         keys |= MENU_KEY_6
  89.     }
  90.  
  91.     if (!newPlayer)
  92.     {
  93.         len += formatex(menu[len], charsmax(menu) - len, "^n^n\d[\r0\d] \w%l^n", "TS_CLOSE")
  94.         keys |= MENU_KEY_0
  95.     }
  96.  
  97.     set_member(id, m_bForceShowMenu, true)
  98.     SetHookChainArg(3, ATYPE_INTEGER, keys)
  99.     SetHookChainArg(4, ATYPE_STRING, menu)
  100.  
  101.     if (strlen(menu) > 192) EnableHookChain(HookShowMenuPre)
  102.     return HC_CONTINUE
  103. }
  104.  
  105. public ShowMenu_Pre(const id, const keys, const time, const needMore, const menu[])
  106. {
  107.     DisableHookChain(HookShowMenuPre)
  108.     show_menu(id, keys, menu, time)
  109.     set_member(id, m_iMenu, Menu_ChooseTeam)
  110.     return HC_SUPERCEDE
  111. }
  112.  
  113. public HandleMenu_ChooseTeam_Pre(const id, const MenuChooseTeam:slot) {
  114.     if (is_user_bot(id)) return HC_CONTINUE
  115.  
  116.     if (slot == MenuChoose_Spec)
  117.     {
  118.         if (is_user_alive(id)) user_silentkill(id)
  119.     }
  120.     else
  121.     {
  122.         if (Mode == MODE_RANDOM_TEAM)
  123.         {
  124.             new MenuChooseTeam:team
  125.             switch (TeamName:get_member(id, m_iTeam)) {
  126.                 case TEAM_TERRORIST: team = MenuChoose_CT
  127.                 case TEAM_CT: team = MenuChoose_T
  128.                 default: team = MenuChoose_AutoSelect
  129.             }
  130.             SetHookChainArg(2, ATYPE_INTEGER, team)
  131.         }
  132.  
  133.         if (!Appearance)
  134.         {
  135.             if (is_user_alive(id)) user_silentkill(id)
  136.             set_member_game(m_bSkipShowMenu, true)
  137.         }
  138.     }
  139.     return HC_CONTINUE
  140. }
  141.  
  142. public HandleMenu_ChooseTeam_Post(const id, const MenuChooseTeam:slot)
  143. {
  144.     if (!GetHookChainReturn(ATYPE_INTEGER)) return
  145.     if (Unlimited) set_member(id, m_bTeamChanged, false)
  146.    
  147.     NextChooseTeamTime[id] = get_gametime() + TimeLimit
  148.     if (slot == MenuChoose_Spec || Appearance) return
  149.  
  150.     set_member_game(m_bSkipShowMenu, false)
  151.     if (get_member(id, m_bJustConnected))
  152.     {
  153.         set_member(id, m_iJoiningState, GETINTOGAME)
  154.         set_member(id, m_bJustConnected, false)
  155.     }
  156.     set_member(id, m_iMenu, Menu_ChooseAppearance)
  157.     rg_internal_cmd(id, "joinclass", "5")
  158. }

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 1 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 2 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole