hlmod.hu

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



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Google [Bot] 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  [ 5 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: WarmUp
HozzászólásElküldve: 2018.10.30. 13:25 
Offline
Lelkes

Csatlakozott: 2018.10.24. 13:11
Hozzászólások: 26
Megköszönt másnak: 4 alkalommal
Megköszönték neki: 5 alkalommal
Sziasztok, valaki lefordítaná.
  1. #pragma semicolon 1
  2.  
  3. #include <amxmodx>
  4. #include <hamsandwich>
  5. #include <reapi>
  6.  
  7. enum _:ITEM {
  8.     WeaponIdType:ITEM_ID,
  9.     ITEM_TITLE[32]
  10. };
  11.  
  12. new const ITEMS[][ITEM] = {
  13.     {WEAPON_M4A1, "M4A1"},
  14.     {WEAPON_AK47, "AK-47"},
  15.     {WEAPON_MP5N, "МP5"},
  16.     {WEAPON_SG550, "SG-550"},
  17.     {WEAPON_FAMAS, "Famas"},
  18.     {WEAPON_SCOUT, "SCOUT"},
  19.     {WEAPON_XM1014, "XM1014"},
  20.     {WEAPON_M3, "M3"},
  21. };
  22.  
  23. new const SOUNDS[][] = {
  24.     "sound/rww/RoundStart.mp3",
  25.  
  26. };
  27.  
  28. new const PLUGINS[][] = {
  29.     "test.amxx",
  30. };
  31.  
  32. enum _:HOOK_CHAINS {
  33.     SPAWN,
  34.     ON_SPAWN_EQUIP,
  35.     HAS_RESTRICT_ITEM,
  36.     DROP_PLAYER_ITEM,
  37.     ADD_PLAYER_ITEM,
  38.     DEAD_PLAYER_WEAPONS,
  39.     GIVE_C4,
  40.     KILLED,
  41. }
  42.  
  43. enum _:HAM_FORWARDS {
  44.     GAME_PLAYER_EQUIP,
  45.     PLAYE_WEAPON_STRIP,
  46.     ARMOURY_ENTITY,
  47. };
  48.  
  49. new HookChain:roundEnd, HookChain:addAccount;
  50. new HookChain:hookChains[HOOK_CHAINS], HamHook:hamForwards[HAM_FORWARDS];
  51.  
  52. new mp_round_infinite, round_infinite[32];
  53. new mp_forcerespawn, forcerespawn;
  54. new mp_respawn_immunitytime, respawn_immunitytime;
  55. new csstats_pause, aes_track_pause;
  56. new warmUpTime, warmUpMode, warmUpReward;
  57.  
  58. new timer, hudSync, hudSyncStats;
  59. new sounds[sizeof(SOUNDS)], soundsNum = 0;
  60. new item, WeaponIdType:itemId, itemName[32], itemTitle[32];
  61. new kills[MAX_PLAYERS + 1];
  62.  
  63. public plugin_precache() {
  64.     for (new i = 0; i < sizeof(SOUNDS); i++) {
  65.         if (file_exists(SOUNDS[i], true)) {
  66.             precache_generic(SOUNDS[i]);
  67.             sounds[soundsNum++] = i;
  68.         }
  69.     }
  70. }
  71.  
  72. public plugin_init() {
  73.     register_plugin("[ReAPI] WurmUp", "0.2", "F@nt0M & h1k3");
  74.  
  75.     roundEnd = RegisterHookChain(RG_RoundEnd, "RoundEnd_Pre", false);
  76.     addAccount = RegisterHookChain(RG_CBasePlayer_AddAccount, "CBasePlayer_AddAccount_Pre", false);
  77.  
  78.     hookChains[SPAWN] = RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn_Post", true);
  79.     hookChains[ON_SPAWN_EQUIP] = RegisterHookChain(RG_CBasePlayer_OnSpawnEquip, "CBasePlayer_OnSpawnEquip_Pre", false);
  80.     hookChains[HAS_RESTRICT_ITEM] = RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "CBasePlayer_HasRestrictItem_Pre", false);
  81.     hookChains[DROP_PLAYER_ITEM] = RegisterHookChain(RG_CBasePlayer_DropPlayerItem, "CBasePlayer_DropPlayerItem_Pre", false);
  82.     hookChains[ADD_PLAYER_ITEM] = RegisterHookChain(RG_CBasePlayer_AddPlayerItem, "CBasePlayer_AddPlayerItem_Pre", false);
  83.     hookChains[DEAD_PLAYER_WEAPONS] = RegisterHookChain(RG_CSGameRules_DeadPlayerWeapons, "CSGameRules_DeadPlayerWeapons_Pre", false);
  84.     hookChains[GIVE_C4] = RegisterHookChain(RG_CSGameRules_GiveC4, "CSGameRules_GiveC4_Pre", false);
  85.     hookChains[KILLED] = RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true);
  86.  
  87.     hamForwards[GAME_PLAYER_EQUIP] = RegisterHam(Ham_Use, "game_player_equip", "HamHookSupercede", false);
  88.     hamForwards[PLAYE_WEAPON_STRIP] = RegisterHam(Ham_Use, "player_weaponstrip", "HamHookSupercede", false);
  89.     hamForwards[ARMOURY_ENTITY] = RegisterHam(Ham_CS_Restart, "armoury_entity", "HamHookSupercede", false);
  90.  
  91.     Toggle_Forwards(false);
  92.  
  93.     mp_round_infinite = get_cvar_pointer("mp_round_infinite");
  94.     mp_forcerespawn = get_cvar_pointer("mp_forcerespawn");
  95.     mp_respawn_immunitytime = get_cvar_pointer("mp_respawn_immunitytime");
  96.     csstats_pause = get_cvar_pointer("csstats_pause");
  97.     aes_track_pause = get_cvar_pointer("aes_track_pause");
  98.  
  99.     hudSync = CreateHudSyncObj();
  100.     hudSyncStats = CreateHudSyncObj();
  101.  
  102.     Hide_ArmouryEntity();
  103.     BuyZone_ToogleSolid(SOLID_NOT);
  104.  
  105.     warmUpTime = create_cvar("warmup_time", "30", .has_min = true, .min_val = 0.0);
  106.     warmUpMode = create_cvar("warmup_mode", "0", .has_min = true, .min_val = 0.0, .has_max = true, .max_val = 1.0);
  107.     warmUpReward = create_cvar("warmup_reward", "50", .has_min = true, .min_val = 0.0);
  108. }
  109.  
  110. public RoundEnd_Pre(const WinStatus:status, const ScenarioEventEndRound:event) {
  111.     #pragma unused status
  112.     if (event != ROUND_GAME_COMMENCE) {
  113.         return HC_CONTINUE;
  114.     }
  115.  
  116.     new time = get_pcvar_num(warmUpTime);
  117.     if (time == 0) {
  118.         DisableHookChain(roundEnd);
  119.         DisableHookChain(addAccount);
  120.         return HC_CONTINUE;
  121.     }
  122.  
  123.     Prepare_Item();
  124.  
  125.     Toggle_Cvars(true);
  126.     Toggle_Forwards(true);
  127.     Toggle_Plugins(false);
  128.     Players_GiveItems(false);
  129.  
  130.     arrayset(kills, 0, sizeof(kills));
  131.  
  132.     Send_Audio();
  133.  
  134.     set_task(1.0, "TaskTimer", .flags = "a", .repeat = time);
  135.     timer = time;
  136.    
  137.     SetHookChainReturn(ATYPE_INTEGER, 0);
  138.     return HC_SUPERCEDE;
  139. }
  140.  
  141. public CBasePlayer_AddAccount_Pre(const id, const amount, const RewardType:type) {
  142.     if (get_pcvar_num(warmUpTime) == 0) {
  143.         return HC_CONTINUE;
  144.     }
  145.  
  146.     switch (type) {
  147.         case RT_PLAYER_RESET:  {
  148.             new reward = get_pcvar_num(warmUpReward);
  149.             if (reward > 0) {
  150.                 SetHookChainArg(2, ATYPE_INTEGER, amount + (kills[id] * reward));
  151.             }
  152.         }
  153.         case RT_PLAYER_JOIN: {
  154.             SetHookChainArg(2, ATYPE_INTEGER, 0);
  155.         }
  156.         case RT_ENEMY_KILLED: {
  157.             SetHookChainArg(2, ATYPE_INTEGER, 1);
  158.         }
  159.     }
  160.     return HC_CONTINUE;
  161. }
  162.  
  163. public CBasePlayer_Spawn_Post(const id) {
  164.     if (is_user_alive(id)) {
  165.         Player_GiveItem(id);
  166.     }
  167. }
  168.  
  169. public CBasePlayer_OnSpawnEquip_Pre(const id) {
  170.     return HC_SUPERCEDE;
  171. }
  172.  
  173. public CBasePlayer_HasRestrictItem_Pre() {
  174.     SetHookChainReturn(ATYPE_INTEGER, 1);
  175.     return HC_SUPERCEDE;
  176. }
  177.  
  178. public CBasePlayer_DropPlayerItem_Pre() {
  179.     SetHookChainReturn(ATYPE_INTEGER, 0);
  180.     return HC_SUPERCEDE;
  181. }
  182.  
  183. public CBasePlayer_AddPlayerItem_Pre() {
  184.     SetHookChainReturn(ATYPE_INTEGER, 0);
  185.     return HC_SUPERCEDE;
  186. }
  187.  
  188. public CSGameRules_DeadPlayerWeapons_Pre() {
  189.     SetHookChainReturn(ATYPE_INTEGER, GR_PLR_DROP_GUN_NO);
  190. }
  191.  
  192. public CSGameRules_GiveC4_Pre() {
  193.     return HC_SUPERCEDE;
  194. }
  195.  
  196. public CBasePlayer_Killed_Post(const id, const killer) {
  197.     if (id != killer && is_user_connected(killer)) {
  198.         kills[killer]++;
  199.     }
  200. }
  201.  
  202. public HamHookSupercede() {
  203.     return HAM_SUPERCEDE;
  204. }
  205.  
  206. public TaskTimer() {
  207.     timer--;
  208.     if (timer > 0) {
  209.         set_hudmessage(135, 206, 235, .x = -1.0, .y = 0.08, .holdtime = 0.9, .channel = -1);
  210.         ShowSyncHudMsg(0, hudSync, "Разминка на %s!^nРестарт через %d сек", itemTitle, timer);
  211.  
  212.         if (csstats_pause || aes_track_pause) {
  213.             set_hudmessage(255, 0, 0, .x = -1.0, .y = 0.05, .holdtime = 0.9, .channel = -1);
  214.             ShowSyncHudMsg(0, hudSyncStats, "[Статистика Отключена]");
  215.         }
  216.     } else {
  217.         Toggle_Cvars(false);
  218.         Toggle_Forwards(false);
  219.         Toggle_Plugins(true);
  220.         BuyZone_ToogleSolid(SOLID_TRIGGER);
  221.  
  222.         DisableHookChain(roundEnd);
  223.  
  224.         set_member_game(m_bCompleteReset, true);
  225.         set_member_game(m_bGameStarted, true);
  226.         rg_round_end(0.1, WINSTATUS_DRAW, ROUND_GAME_COMMENCE, "");
  227.  
  228.         Players_GiveItems(true);
  229.         set_task(0.2, "TaskFinish");
  230.     }
  231. }
  232.  
  233. public TaskFinish() {
  234.     set_hudmessage(135, 206, 235, .x = -1.0, .y = 0.08, .holdtime = 5.0, .channel = -1);
  235.     ShowSyncHudMsg(0, hudSync, "Разминка окончена!");
  236.  
  237.     if (csstats_pause || aes_track_pause) {
  238.         set_hudmessage(255, 0, 0, .x = -1.0, .y = 0.05, .holdtime = 5.0, .channel = -1);
  239.         ShowSyncHudMsg(0, hudSyncStats, "[Статистика Включена]");
  240.     }
  241.  
  242.     DisableHookChain(addAccount);
  243. }
  244.  
  245. Toggle_Cvars(const bool:enable) {
  246.     if (enable) {
  247.         get_pcvar_string(mp_round_infinite, round_infinite, charsmax(mp_round_infinite));
  248.         set_pcvar_string(mp_round_infinite, "1");
  249.  
  250.         forcerespawn = get_pcvar_num(mp_forcerespawn);
  251.         set_pcvar_num(mp_forcerespawn, 3);
  252.  
  253.         respawn_immunitytime = get_pcvar_num(mp_respawn_immunitytime);
  254.         set_pcvar_num(mp_respawn_immunitytime, 3);
  255.  
  256.         if (csstats_pause) {
  257.             set_pcvar_num(csstats_pause, 1);
  258.         }
  259.  
  260.         if (aes_track_pause) {
  261.             set_pcvar_num(aes_track_pause, 1);
  262.         }
  263.     } else {
  264.         set_pcvar_string(mp_round_infinite, round_infinite);
  265.         set_pcvar_num(mp_forcerespawn, forcerespawn);
  266.         set_pcvar_num(mp_respawn_immunitytime, respawn_immunitytime);
  267.  
  268.         if (csstats_pause) {
  269.             set_pcvar_num(csstats_pause, 0);
  270.         }
  271.  
  272.         if (aes_track_pause) {
  273.             set_pcvar_num(aes_track_pause, 0);
  274.         }
  275.     }
  276. }
  277.  
  278. Toggle_Forwards(const bool:enable) {
  279.     for (new i = 0; i < sizeof(hookChains); i++) {
  280.         enable ? EnableHookChain(hookChains[i]) : DisableHookChain(hookChains[i]);
  281.     }
  282.     for (new i = 0; i <  sizeof(hamForwards); i++) {
  283.         enable ? EnableHamForward(hamForwards[i]) : DisableHamForward(hamForwards[i]);
  284.     }
  285. }
  286.  
  287. Toggle_Plugins(const bool:enable) {
  288.     for (new i = 0; i < sizeof(PLUGINS); i++) {
  289.         enable ? unpause("ac", PLUGINS[i]) : pause("ac", PLUGINS[i]);
  290.     }
  291. }
  292.  
  293. Players_GiveItems(const bool:defaultItems) {
  294.     new players[MAX_PLAYERS], num;
  295.     get_players(players, num, "ah");
  296.     for (new i = 0, player; i < num; i++) {
  297.         player = players[i];
  298.  
  299.         rg_remove_all_items(player);
  300.         if (defaultItems) {
  301.             rg_give_default_items(player);
  302.         } else {
  303.             Player_GiveItem(player);
  304.         }
  305.     }
  306. }
  307.  
  308. Player_GiveItem(const id) {
  309.     DisableHookChain(HookChain:hookChains[ADD_PLAYER_ITEM]);
  310.     rg_give_item(id, "weapon_knife", GT_APPEND);
  311.     new ent = rg_give_item(id, itemName, GT_APPEND);
  312.     if (ent > 0) {
  313.         rg_set_user_bpammo(id, itemId, rg_get_iteminfo(ent, ItemInfo_iMaxAmmo1));
  314.     }
  315.     EnableHookChain(HookChain:hookChains[ADD_PLAYER_ITEM]);
  316. }
  317.  
  318. Hide_ArmouryEntity() {
  319.     new ent = NULLENT;
  320.     while ((ent = rg_find_ent_by_class(ent, "armoury_entity"))) {
  321.         if(get_member(ent, m_Armoury_iCount) > 0) {
  322.             set_entvar(ent, var_effects, get_entvar(ent, var_effects) | EF_NODRAW);
  323.             set_entvar(ent, var_solid, SOLID_NOT);
  324.             set_member(ent, m_Armoury_iCount, 0);
  325.         }
  326.     }
  327. }
  328.  
  329. BuyZone_ToogleSolid(const solid) {
  330.     new ent = NULLENT;
  331.     while ((ent = rg_find_ent_by_class(ent, "func_buyzone"))) {
  332.         set_entvar(ent, var_solid, solid);
  333.     }
  334. }
  335.  
  336. Prepare_Item() {
  337.     new lastItemStr[3], lastItem;
  338.     if (get_localinfo("warmup_last_item", lastItemStr, charsmax(lastItemStr))) {
  339.         lastItem = str_to_num(lastItemStr);
  340.     } else {
  341.         lastItem = -1;
  342.     }
  343.  
  344.     switch (get_pcvar_num(warmUpMode)) {
  345.         case 1: {
  346.             item = (lastItem + 1) % sizeof(ITEMS);
  347.         }
  348.  
  349.         default: {
  350.             new tries = 0;
  351.             do {
  352.                 item = random(100) % sizeof(ITEMS);
  353.             } while (item == lastItem && tries < sizeof(ITEMS));
  354.         }
  355.     }
  356.  
  357.     itemId = ITEMS[item][ITEM_ID];
  358.     rg_get_weapon_info(itemId, WI_NAME, itemName, charsmax(itemName));
  359.     copy(itemTitle, charsmax(itemTitle), ITEMS[item][ITEM_TITLE]);
  360.  
  361.     num_to_str(item, lastItemStr, charsmax(lastItemStr));
  362.     set_localinfo("warmup_last_item", lastItemStr);
  363. }
  364.  
  365. Send_Audio() {
  366.     if (soundsNum > 0) {
  367.         new sound = (soundsNum > 1) ? sounds[random(100) % soundsNum] : 0;
  368.         client_cmd(0, "mp3 play ^"%s^"", SOUNDS[sound]);
  369.     }
  370. }

_________________
Régi Hydra ツ-vagyok

Lakhely Slovakia
Életév: 23
Foglalkozás Amxx,EventScript


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: WarmUp
HozzászólásElküldve: 2018.10.30. 14:33 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4270
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 513 alkalommal
Hamarabb vegzel googli forditoval minthogy itt valaszt kapnal. Foleg mert kb senki se beszel oroszt vagy ukrant.

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: WarmUp
HozzászólásElküldve: 2018.10.30. 16:49 
Offline
Lelkes

Csatlakozott: 2018.10.24. 13:11
Hozzászólások: 26
Megköszönt másnak: 4 alkalommal
Megköszönték neki: 5 alkalommal
DeteCT0R írta:
Hamarabb vegzel googli forditoval minthogy itt valaszt kapnal. Foleg mert kb senki se beszel oroszt vagy ukrant.

Próbáltam de nem fordít jó.

_________________
Régi Hydra ツ-vagyok

Lakhely Slovakia
Életév: 23
Foglalkozás Amxx,EventScript


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: WarmUp
HozzászólásElküldve: 2018.10.30. 17:52 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4270
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 513 alkalommal
Heist írta:
DeteCT0R írta:
Hamarabb vegzel googli forditoval minthogy itt valaszt kapnal. Foleg mert kb senki se beszel oroszt vagy ukrant.

Próbáltam de nem fordít jó.

Nem az a lenyeg hogy jol forditson :D csak hogy kepet kapj kb mit jelent aztan tovabb kitalalod.

De ha segit akkor NE magyarra forditsd hanem angolra. Angolrol mar biztos konyebben letudod :)

235 sorban pl:

Разминка окончена! - > (angol: Warm up is over!) (magyar: A felmelegedés vége!) lathato magyar forditas kuka de angol meg jo is szoval hajra.

_________________
Idk. Csak ugy funbooo.
Kép

Ők köszönték meg DeteCT0R nek ezt a hozzászólást: Heist (2018.10.30. 17:55)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: WarmUp
HozzászólásElküldve: 2018.10.30. 22:07 
Offline
Lelkes

Csatlakozott: 2018.10.24. 13:11
Hozzászólások: 26
Megköszönt másnak: 4 alkalommal
Megköszönték neki: 5 alkalommal
DeteCT0R írta:
Heist írta:
DeteCT0R írta:
Hamarabb vegzel googli forditoval minthogy itt valaszt kapnal. Foleg mert kb senki se beszel oroszt vagy ukrant.

Próbáltam de nem fordít jó.

Nem az a lenyeg hogy jol forditson :D csak hogy kepet kapj kb mit jelent aztan tovabb kitalalod.

De ha segit akkor NE magyarra forditsd hanem angolra. Angolrol mar biztos konyebben letudod :)

235 sorban pl:

Разминка окончена! - > (angol: Warm up is over!) (magyar: A felmelegedés vége!) lathato magyar forditas kuka de angol meg jo is szoval hajra.

Megpróbálom.:)

_________________
Régi Hydra ツ-vagyok

Lakhely Slovakia
Életév: 23
Foglalkozás Amxx,EventScript


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  [ 5 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 0 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