hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.23. 07:51



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Bing [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ő


Lezárt fórum  A témát lezárták, nem szerkesztheted a hozzászólásaid, és nem küldhetsz új hozzászólást.  [ 11 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
 Hozzászólás témája: Molotov!
HozzászólásElküldve: 2017.02.18. 23:02 
Offline
Tag
Avatar

Csatlakozott: 2016.12.25. 20:51
Hozzászólások: 57
Megköszönték neki: 4 alkalommal
Üdv!
Valaki megcsinálná úgy nekem ,hogy alapbol adjon mindenkinek molotovot?
ne keljen meg venni meg semmi menü hanem alapbol adjon.

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <cstrike>
  5. #include <csx>
  6. #include <fun>
  7. #include <fakemeta_util>
  8.  
  9. #define AUTHORS "SAMURAI & Black Rose"
  10.  
  11. #define ADMIN_ACCESS ADMIN_KICK
  12.  
  13. #define ICON_R 255
  14. #define ICON_G 170
  15. #define ICON_B 0
  16.  
  17. #define ANTI_LAGG 7.0   // Defines max calculations before a flame is spawned without check if onground
  18. // This is  to prevent lagg at really narrow ents where you could end up with 400 calculations per flame
  19. // Suggested: <= 10
  20.  
  21. new pnumplugin, pprice, pMlDamage, pMlRadius, pFireTime, pOverride;
  22. new pTeamKill, pFireDmg, pMaxMolotovs, pBuyMenu, pBuyZone;
  23.  
  24. new gmsgScoreInfo, gmsgDeathMsg;
  25.  
  26. new g_pAllocModel, g_vAllocModel;
  27.  
  28. new g_frags[33];
  29. new g_hasMolotov[33];
  30. new g_restarted;
  31. new g_MaxPlayers;
  32. new g_bomb_map;
  33.  
  34. new firespr, smokespr[2];
  35.  
  36.  
  37. public plugin_init() {
  38.  
  39.     register_plugin("Molotov Cocktail", "3.1c", AUTHORS);
  40.  
  41.     register_clcmd("say /molotov","buy_molotov");
  42.     register_clcmd("say molotov","buy_molotov");
  43.     register_concmd("molotov_give", "cmd_MolotovGive", ADMIN_ACCESS);
  44.     register_concmd("molotov_override", "cmd_Override", ADMIN_ACCESS);
  45.     register_concmd("molotov_cocktail", "cmd_PluginStatus", ADMIN_ACCESS);
  46.  
  47.     pnumplugin = register_cvar("molotov_tempcocktail","1", FCVAR_SPONLY);
  48.     pOverride = register_cvar("molotov_tempoverride", "0", FCVAR_SPONLY);
  49.  
  50.     pprice = register_cvar("molotov_price","1200");
  51.     pMlDamage = register_cvar("molotov_damage","40.0");
  52.     pMlRadius = register_cvar("molotov_radius","200.0");
  53.     pFireTime = register_cvar("molotov_firetime", "6");
  54.     pFireDmg = register_cvar("molotov_firedamage", "1");
  55.     pTeamKill = register_cvar("molotov_tk", "1");
  56.  
  57.     register_event("CurWeapon", "Event_CurWeapon","be", "1=1");
  58.     register_event("HLTV","event_new_round", "a","1=0", "2=0");
  59.     register_event("TextMsg","Event_GameRestart","a","2=#Game_Commencing","2=#Game_will_restart_in");
  60.     register_event("DeathMsg", "event_DeathMsg", "a");
  61.  
  62.     register_event("ShowMenu", "event_BuyMenuT", "b", "4=#T_BuyItem", "1=575");
  63.     register_event("ShowMenu", "event_BuyMenuCT", "b", "4=#CT_BuyItem", "1=703");
  64.     register_event("ShowMenu", "event_BuyMenuT", "b", "4=#DT_BuyItem", "1=575");
  65.     register_event("ShowMenu", "event_BuyMenuCT", "b", "4=#DCT_BuyItem", "1=767");
  66.  
  67.     register_menucmd(register_menuid("#CT_BuyItem"), 1023, "handle_BuyMenuCT");
  68.     register_menucmd(register_menuid("#T_BuyItem"), 1023, "handle_BuyMenuT");
  69.  
  70.     register_forward(FM_EmitSound, "fw_EmitSound");
  71.  
  72.     g_MaxPlayers = get_maxplayers();
  73.  
  74.     gmsgScoreInfo = get_user_msgid("ScoreInfo");
  75.     gmsgDeathMsg = get_user_msgid("DeathMsg");
  76.  
  77.     g_pAllocModel = engfunc(EngFunc_AllocString, "models/p_molotov.mdl");
  78.     g_vAllocModel = engfunc(EngFunc_AllocString, "models/v_molotov.mdl");
  79.  
  80.     g_bomb_map = engfunc(EngFunc_FindEntityByString, g_MaxPlayers, "classname", "info_bomb_target") ? 1 : 0;
  81. }
  82.  
  83. public cmd_Override(id,level,cid) {
  84.  
  85.     if ( ! cmd_access(id, level,cid,1) )
  86.         return PLUGIN_HANDLED;
  87.  
  88.  
  89.     if ( ! get_pcvar_num(pnumplugin) )
  90.         return PLUGIN_HANDLED;
  91.  
  92.     new arg[2];
  93.     read_argv(1, arg, 1);
  94.  
  95.     new num = str_to_num(arg);
  96.  
  97.     if ( 1 < num < 0 ) {
  98.         if ( id )
  99.             client_print(id, print_console, "Ervenytelen ervek(%d). Ervenyes ervek ^"0^" es ^"1^".", num);
  100.         else
  101.             server_print("Ervenytelen ervek(%d). Ervenyes ervek ^"0^" es ^"1^".", num);
  102.         return PLUGIN_HANDLED;
  103.     }
  104.  
  105.     if ( num == get_pcvar_num(pOverride) ) {
  106.         if ( id )
  107.             client_print(id, print_console, "Felulbirasa mar %s.", num ? "enabled" : "disabled");
  108.         else
  109.             server_print("Felulbirasa mar %s.", num ? "enabled" : "disabled");
  110.         return PLUGIN_HANDLED;
  111.     }
  112.  
  113.     set_pcvar_num(pOverride, num);
  114.  
  115.     if ( id )
  116.         client_print(id, print_console, "Felulbirasa volt %s.", num ? "enabled" : "disabled");
  117.     else
  118.         server_print("Override was %s.", num ? "enabled" : "disabled");
  119.  
  120.     if ( num )
  121.         set_molotovs();
  122.     else
  123.         reset_molotovs();
  124.  
  125.     return PLUGIN_HANDLED;
  126. }
  127.  
  128. public cmd_PluginStatus(id,level,cid) {
  129.  
  130.     if ( ! cmd_access(id,level,cid,2))     
  131.         return PLUGIN_HANDLED;
  132.  
  133.  
  134.     new arg[2];
  135.     read_argv(1, arg, 1);
  136.  
  137.     new num = str_to_num(arg);
  138.  
  139.     if ( 1 < num < 0 ) {
  140.         if ( id )
  141.             client_print(id, print_console, "Ervenytelen ervek(%d). Ervenyes ervek ^"0^" es ^"1^".", num);
  142.         else
  143.             server_print("Ervenytelen ervek(%d). Ervenyes ervek ^"0^" es ^"1^".", num);
  144.         return PLUGIN_HANDLED;
  145.     }
  146.  
  147.     if ( num == get_pcvar_num(pnumplugin) ) {
  148.         if ( id )
  149.             client_print(id, print_console, "Plugin mar %s.", num ? "enabled" : "disabled");
  150.         else
  151.             server_print("Plugin mar %s.", num ? "enabled" : "disabled");
  152.         return PLUGIN_HANDLED;
  153.     }
  154.  
  155.     set_pcvar_num(pnumplugin, num);
  156.  
  157.     if ( id )
  158.         client_print(id, print_console, "Plugin volt %s.", num ? "enabled" : "disabled");
  159.     else
  160.         server_print("Plugin was %s.", num ? "enabled" : "disabled");
  161.  
  162.     if ( num && get_pcvar_num(pOverride) )
  163.         set_molotovs();
  164.     else
  165.         reset_molotovs();
  166.  
  167.     return PLUGIN_HANDLED;
  168. }
  169.  
  170. public cmd_MolotovGive(id,level,cid) {
  171.  
  172.     if( !cmd_access(id,level,cid,2) )
  173.         return PLUGIN_HANDLED;
  174.  
  175.  
  176.     if ( ! get_pcvar_num(pnumplugin) )
  177.         return PLUGIN_HANDLED;
  178.  
  179.     new arg[32];
  180.     read_argv(1, arg, 31);
  181.  
  182.     new target;
  183.  
  184.     if ( ! arg[0] ) {
  185.         if ( id )
  186.             target = id;
  187.         else
  188.             server_print("Meg kell adnod egy nevet, hogy Molotovot ad neki");
  189.     }
  190.     else
  191.         target = cmd_target(id, arg, 6);
  192.  
  193.     if ( ! target )
  194.     {
  195.         id ? client_print(id, print_console, "Nincs ilyen nevu jatekos.") : server_print("Nincs ilyen nevu jatekos.");
  196.         return PLUGIN_HANDLED;
  197.     }
  198.  
  199.     if ( g_hasMolotov[target] == get_pcvar_num(pMaxMolotovs) ) {
  200.         if ( g_hasMolotov[target] == 1 ) {
  201.             if ( id )
  202.                 client_print(id, print_center, "Neki mar van koktelja.");
  203.             else
  204.                 server_print("Neki mar van koktelja.");
  205.         }
  206.         else {
  207.             if ( id )
  208.                 client_print(id, print_center, "Neki van mar %d Molotov Koktelja.", g_hasMolotov[target]);
  209.             else
  210.                 server_print("Neki van mar %d Molotov Koktelja.", g_hasMolotov[target]);
  211.         }
  212.  
  213.         return PLUGIN_CONTINUE;
  214.     }
  215.  
  216.     if ( ! g_hasMolotov[target] && user_has_weapon(target, CSW_HEGRENADE) ) {
  217.         if ( id )
  218.             client_print(id, print_console, "Ugyfel mar rendelkezik egy HE Granattal");
  219.         else
  220.             server_print("Ugyfel mar rendelkezik egy HE Granattal");
  221.         return PLUGIN_HANDLED;
  222.     }
  223.  
  224.     g_hasMolotov[target]++;
  225.  
  226.     give_item(target, "weapon_hegrenade");
  227.     cs_set_user_bpammo(target, CSW_HEGRENADE, g_hasMolotov[id]);
  228.     client_print(target, print_chat, "Van egy molotov kokt�l!");
  229.  
  230.     return PLUGIN_HANDLED;
  231. }
  232.  
  233. public buy_molotov(id) {
  234.  
  235.     if ( ! get_pcvar_num(pnumplugin) )
  236.         return PLUGIN_HANDLED;
  237.  
  238.     if ( get_pcvar_num(pOverride) ) {
  239.         if ( get_pcvar_num(pBuyMenu) )
  240.             client_print(id, print_center, "Csak v�s�rl�si men�ben lehet �ket megv�s�rolni.");
  241.         else
  242.             client_print(id, print_center, "Csak vegy�l egy HE Gr�n�tot, �s automatikusan kapsz kokt�lt!");
  243.         return PLUGIN_HANDLED;
  244.     }
  245.  
  246.     if ( ! is_user_alive(id) ) {
  247.         client_print(id, print_center, "�letben kell lenned a v�s�rl�shoz.");
  248.         return PLUGIN_HANDLED;
  249.     }
  250.  
  251.     if ( ! cs_get_user_buyzone(id) && get_pcvar_num(pBuyZone) ) {
  252.         client_print(id, print_center, "Nem vagy v�s�rl�si z�n�n�l.");
  253.         return PLUGIN_HANDLED;
  254.     }
  255.  
  256.     new money = cs_get_user_money(id);
  257.  
  258.     if ( money < get_pcvar_num(pprice) ) {
  259.         client_print(id, print_center, "Nincs el�g p�nzed v�s�rolni.");
  260.         return PLUGIN_HANDLED;
  261.     }
  262.  
  263.     if ( g_hasMolotov[id] == get_pcvar_num(pMaxMolotovs) ) {
  264.         if ( g_hasMolotov[id] == 1 )
  265.             client_print(id, print_center, "M�r van kokt�lod.");
  266.         else
  267.             client_print(id, print_center, "Neked m�r van %d Molotov Kokt�lod.", g_hasMolotov[id]);
  268.         return PLUGIN_HANDLED;
  269.     }
  270.  
  271.     if ( ! g_hasMolotov[id] && user_has_weapon(id, CSW_HEGRENADE) ) {
  272.         client_print(id, print_center, "M�r van egy HE Gr�n�t");
  273.         return PLUGIN_HANDLED;
  274.     }
  275.  
  276.     g_hasMolotov[id]++;
  277.  
  278.     cs_set_user_money(id, money - get_pcvar_num(pprice) );
  279.     give_item(id, "weapon_hegrenade");
  280.     cs_set_user_bpammo(id, CSW_HEGRENADE, g_hasMolotov[id]);
  281.     client_print(id, print_chat, "Van m�r kokt�l!");
  282.  
  283.     return PLUGIN_HANDLED;
  284. }
  285.  
  286. public plugin_precache() {
  287.  
  288.     precache_model("models/p_molotov.mdl");
  289.     precache_model("models/v_molotov.mdl");
  290.     precache_model("models/w_molotov.mdl");
  291.  
  292.     firespr = precache_model("sprites/flame.spr");
  293.  
  294.     smokespr[0] = precache_model("sprites/black_smoke3.spr");
  295.     smokespr[1] = precache_model("sprites/steam1.spr");
  296.  
  297.     precache_sound("misc/molotov_fire.wav");
  298.     precache_sound("misc/molotov_explosion.wav");
  299. }
  300.  
  301. public fw_EmitSound(ent, channel, sample[]) {
  302.  
  303.     if ( equal(sample[8], "he_bounce", 9) ) {
  304.  
  305.         new model[32];
  306.         pev(ent, pev_model, model, 31);
  307.  
  308.         if ( equal(model[9], "molotov.mdl") )
  309.             grenade_explode(ent);
  310.     }
  311. }
  312.  
  313. public Event_CurWeapon(id) {
  314.  
  315.     if ( ! get_pcvar_num(pnumplugin) || ! is_user_alive(id) )
  316.         return PLUGIN_CONTINUE;
  317.  
  318.     if ( ! g_hasMolotov[id] && ! get_pcvar_num(pOverride) )
  319.         return PLUGIN_CONTINUE;
  320.  
  321.     new WeaponID = get_user_weapon(id, WeaponID, WeaponID);
  322.  
  323.     if ( WeaponID != CSW_HEGRENADE )
  324.         return PLUGIN_CONTINUE;
  325.  
  326.     set_pev(id, pev_viewmodel, g_vAllocModel);
  327.     set_pev(id, pev_weaponmodel, g_pAllocModel);
  328.     set_pev(id, pev_weaponanim, 9);
  329.  
  330.     return PLUGIN_CONTINUE;
  331. }
  332.  
  333. public Event_GameRestart() g_restarted = 1;
  334.  
  335. public event_DeathMsg() g_hasMolotov[read_data(2)] = 0;
  336.  
  337. public event_new_round() {
  338.  
  339.     if ( ! get_pcvar_num(pnumplugin) )
  340.         return PLUGIN_CONTINUE;
  341.  
  342.     for ( new i ; i < g_MaxPlayers ; i++ ) {
  343.         if ( g_frags[i] && is_user_connected(i) )
  344.             set_user_frags(i, get_user_frags(i) + g_frags[i]);
  345.         g_frags[i] = 0;
  346.     }
  347.  
  348.     if ( g_restarted ) {
  349.         for ( new i ; i < g_MaxPlayers ; i++ )
  350.             g_hasMolotov[i] = 0;
  351.         g_restarted = 0;
  352.     }
  353.  
  354.     if ( get_pcvar_num(pOverride) )
  355.         set_molotovs();
  356.     else
  357.         reset_molotovs();
  358.  
  359.     return PLUGIN_CONTINUE;
  360. }
  361.  
  362. public event_BuyMenuCT(id) {
  363.  
  364.     if ( ! get_pcvar_num(pnumplugin) || ! get_pcvar_num(pBuyMenu) )
  365.         return PLUGIN_CONTINUE;
  366.  
  367.     new Override = get_pcvar_num(pOverride);
  368.  
  369.     new menu[1024];
  370.     new len = formatex(menu, 1023, "\\yV�s�rl�s\\R$ Cost");
  371.     len += formatex(menu[len], 1023-len, "^n^n\\w1. Kevlar Mell�ny\R\\y650");
  372.     len += formatex(menu[len], 1023-len, "^n\\w2. Kevlar Mell�ny & Sisak\R\\y1000");
  373.     len += formatex(menu[len], 1023-len, "^n\\w3. Flashbang\R\\y200");
  374.  
  375.     if ( Override )
  376.         len += formatex(menu[len], 1023-len, "^n\\w4. Molotov Kokt�l\R\\y%d", get_pcvar_num(pprice));
  377.     else
  378.         len += formatex(menu[len], 1023-len, "^n\\w4. HE Gr�n�t\R\\y300");
  379.  
  380.     len += formatex(menu[len], 1023-len, "^n\\w5. Smoke Gr�n�t\R\\y300");
  381.     len += formatex(menu[len], 1023-len, "^n\\w6. NightVision Goggles\R\\y1250");
  382.     len += formatex(menu[len], 1023-len, "^n\\%c7. Defuse Kit\R\\y200 ", g_bomb_map ? 'w' : 'd');
  383.     len += formatex(menu[len], 1023-len, "^n\\w8. Pajzs\R\\y2200");
  384.  
  385.     if ( ! Override )
  386.         len += formatex(menu[len], 1023-len, "^n\\w9. Molotov Kokt�l\R\\y%d", get_pcvar_num(pprice));
  387.  
  388.     len += formatex(menu[len], 1023-len, "^n^n\\w0. Kil�p�s");
  389.  
  390.     show_menu(id, read_data(1)|MENU_KEY_9, menu, -1, "#CT_BuyItem");
  391.  
  392.     return PLUGIN_HANDLED;
  393. }
  394.  
  395. public event_BuyMenuT(id) {
  396.  
  397.     if ( ! get_pcvar_num(pnumplugin) || ! get_pcvar_num(pBuyMenu) )
  398.         return PLUGIN_CONTINUE;
  399.  
  400.     new Override = get_pcvar_num(pOverride);
  401.  
  402.     new menu[1024];
  403.     new len = formatex(menu, 1023, "\\yV�s�rl�s\R$ Cost");
  404.     len += formatex(menu[len], 1023-len, "^n^n\\w1. Kevlar Mell�ny\R\y650");
  405.     len += formatex(menu[len], 1023-len, "^n\\w2. Kevlar Mell�ny & Sisak\R\y1000");
  406.     len += formatex(menu[len], 1023-len, "^n\\w3. Flashbang\R\y200");
  407.  
  408.     if ( Override )
  409.         len += formatex(menu[len], 1023-len, "^n\\w4. Molotov Kokt�l\R\\y%d", get_pcvar_num(pprice));
  410.     else
  411.         len += formatex(menu[len], 1023-len, "^n\\w4. HE Gr�n�t\R\\y300");
  412.  
  413.     len += formatex(menu[len], 1023-len, "^n\\w5. Smoke Gr�n�t\R\\y300");
  414.     len += formatex(menu[len], 1023-len, "^n\\w6. NightVision Goggles\R\\y1250");
  415.  
  416.     if ( !Override )
  417.         len += formatex(menu[len], 1023-len, "^n\\w7. Molotov Kokt�l\R\y%d", get_pcvar_num(pprice));
  418.  
  419.     len += formatex(menu[len], 1023-len, "^n^n\\w0. Kil�p�s");
  420.  
  421.     show_menu(id, read_data(1)|MENU_KEY_7, menu, -1, "#T_BuyItem");
  422.  
  423.     return PLUGIN_HANDLED;
  424. }
  425.  
  426. public handle_BuyMenuCT(id, key)
  427. {
  428.  
  429.     if ( get_pcvar_num(pOverride) )
  430.     {
  431.         if ( key != 3 )
  432.         return PLUGIN_CONTINUE;
  433.     }
  434.  
  435.     else
  436.     {
  437.         if ( key != 8 )
  438.         return PLUGIN_CONTINUE;
  439.     }
  440.  
  441.     handle_BuyMenu(id);
  442.  
  443.     return PLUGIN_HANDLED;
  444. }
  445.  
  446. public handle_BuyMenuT(id, key)
  447. {
  448.  
  449.     if ( get_pcvar_num(pOverride) )
  450.     {
  451.         if ( key != 3 )
  452.         return PLUGIN_CONTINUE;
  453.     }
  454.  
  455.     else
  456.     {
  457.         if ( key != 6 )
  458.         return PLUGIN_CONTINUE;
  459.     }
  460.  
  461.     handle_BuyMenu(id);
  462.  
  463.     return PLUGIN_HANDLED;
  464. }
  465.  
  466. stock handle_BuyMenu(id) {
  467.  
  468.     new money = cs_get_user_money(id);
  469.  
  470.     if ( money < get_pcvar_num(pprice) ) {
  471.         client_print(id, print_center, "Nincs el�g p�nzed a kokt�l v�s�rl�s�hoz.");
  472.         return PLUGIN_HANDLED;
  473.     }
  474.  
  475.     if ( g_hasMolotov[id] == get_pcvar_num(pMaxMolotovs) ) {
  476.         if ( g_hasMolotov[id] == 1 )
  477.             client_print(id, print_center, "Neked m�r van kokt�lod.");
  478.         else
  479.             client_print(id, print_center, "Neked m�r van %d kokt�lod.", g_hasMolotov[id]);
  480.         return PLUGIN_HANDLED;
  481.     }
  482.  
  483.     else if ( ! g_hasMolotov[id] && user_has_weapon(id, CSW_HEGRENADE) ) {
  484.         client_print(id, print_center, "Neked m�r van HE Gr�n�tod");
  485.         return PLUGIN_HANDLED;
  486.     }
  487.  
  488.     g_hasMolotov[id]++;
  489.  
  490.     cs_set_user_money(id, money - get_pcvar_num(pprice) );
  491.     give_item(id, "weapon_hegrenade");
  492.     cs_set_user_bpammo(id, CSW_HEGRENADE, g_hasMolotov[id]);
  493.     client_print(id, print_chat, "Van kokt�lod!");
  494.  
  495.     return PLUGIN_HANDLED;
  496. }
  497.  
  498. public grenade_throw(id, ent, wid) {
  499.  
  500.     if ( ! get_pcvar_num(pnumplugin) || ! is_user_connected(id) || wid != CSW_HEGRENADE )
  501.         return PLUGIN_CONTINUE;
  502.  
  503.     if ( ! g_hasMolotov[id] && ! get_pcvar_num(pOverride) )
  504.         return PLUGIN_CONTINUE;
  505.  
  506.     g_hasMolotov[id]--;
  507.     engfunc(EngFunc_SetModel, ent, "models/w_molotov.mdl");
  508.     set_pev(ent, pev_nextthink, 99999.0);
  509.  
  510.     return PLUGIN_CONTINUE;
  511. }
  512.  
  513. public grenade_explode(ent) {
  514.  
  515.     new Float:fOrigin[3];
  516.     pev(ent, pev_origin, fOrigin);
  517.  
  518.     new owner = pev(ent, pev_owner);
  519.     new ent2 = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  520.  
  521.     new param[5], iOrigin[3];
  522.     param[0] = owner;
  523.     param[1] = iOrigin[0] = floatround(fOrigin[0]);
  524.     param[2] = iOrigin[1] = floatround(fOrigin[1]);
  525.     param[3] = iOrigin[2] = floatround(fOrigin[2]);
  526.     param[4] = ent2;
  527.  
  528.     radius_damage(owner, fOrigin, get_pcvar_float(pMlDamage), get_pcvar_float(pMlRadius), DMG_BLAST);
  529.     emit_sound(ent, CHAN_AUTO, "misc/molotov_explosion.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
  530.  
  531.     engfunc(EngFunc_RemoveEntity, ent);
  532.  
  533.     ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  534.  
  535.     new param2[2];
  536.     param2[0] = ent;
  537.     param2[1] = ent2;
  538.  
  539.     random_fire(iOrigin, ent2);
  540.  
  541.     new Float:FireTime = get_pcvar_float(pFireTime);
  542.  
  543.     set_task(0.2, "fire_damage", 56235 + random_num(-100, 100), param, 5, "a", floatround(FireTime / 0.2, floatround_floor));
  544.     set_task(1.0, "fire_sound", 37235 + random_num(-100, 100), param2, 2, "a", floatround(FireTime) - 1);
  545.     set_task(FireTime, "fire_stop", 27367 + random_num(-100, 100), param2, 2);
  546.  
  547.     return PLUGIN_CONTINUE;
  548. }
  549.  
  550. public fire_sound(param[])
  551.     emit_sound(param[0], CHAN_AUTO, "misc/molotov_fire.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
  552.  
  553. new Float:g_i;
  554. new Float:g_g;
  555.  
  556. public fire_stop(param[]) {
  557.     g_g = 0.0;
  558.     g_i = 0.0;
  559.     engfunc(EngFunc_RemoveEntity, param[0]);
  560. }
  561.  
  562. public fire_damage(param[]) {
  563.  
  564.     new iOrigin[3], Float:fOrigin[3];
  565.     iOrigin[0] = param[1];
  566.     iOrigin[1] = param[2];
  567.     iOrigin[2] = param[3];
  568.  
  569.     random_fire(iOrigin, param[4]);
  570.  
  571.     IVecFVec(iOrigin, fOrigin);
  572.     radius_damage(param[0], fOrigin, get_pcvar_float(pFireDmg), get_pcvar_float(pMlRadius), DMG_BURN, 0);
  573. }
  574.  
  575. stock radius_damage(attacker, Float:origin[3], Float:damage, Float:range, dmgtype, calc = 1) {
  576.  
  577.     new Float:pOrigin[3], Float:dist, Float:tmpdmg/*, iOrigin[3] */;
  578.     new i, ateam = get_user_team(attacker), TK = get_pcvar_num(pTeamKill);
  579.  
  580.     while ( i++ < g_MaxPlayers ) {
  581.  
  582.         if ( ! is_user_alive(i) )
  583.             continue;
  584.  
  585.         if ( ! TK && ateam == get_user_team(i) )
  586.             continue;
  587.  
  588.         pev(i, pev_origin, pOrigin);
  589.         dist = get_distance_f(origin, pOrigin);
  590.  
  591.         if ( dist > range )
  592.             continue;
  593.  
  594.         if ( calc )
  595.             tmpdmg = damage - ( damage / range ) * dist;
  596.         else
  597.             tmpdmg = damage;
  598.  
  599.         if ( pev(i, pev_health) < tmpdmg )
  600.             kill(attacker, i);
  601.         else
  602.             fm_fakedamage(i, "molotov", tmpdmg, dmgtype);
  603.  
  604.         // FVecIVec(pOrigin, iOrigin);
  605.         // Flame(iOrigin, 1);
  606.     }
  607.  
  608.     while ( ( i = engfunc(EngFunc_FindEntityInSphere, i, origin, range) ) ) {
  609.         if ( pev(i, pev_takedamage) ) {
  610.             if ( calc ) {
  611.                 pev(i, pev_origin, pOrigin);
  612.                 tmpdmg = damage - ( damage / range ) * get_distance_f(origin, pOrigin);
  613.             }
  614.             else
  615.                 tmpdmg = damage;
  616.  
  617.             // FVecIVec(pOrigin, iOrigin);
  618.             // Flame(iOrigin, 1);
  619.  
  620.             fm_fakedamage(i, "molotov", tmpdmg, dmgtype);
  621.         }
  622.     }
  623. }
  624.  
  625. stock random_fire(Origin[3], ent) {
  626.  
  627.     new range = get_pcvar_num(pMlRadius);
  628.     new iOrigin[3];
  629.  
  630.     for ( new i = 1 ; i <= 5 ; i++ ) {
  631.  
  632.         g_i++;
  633.         g_g++;
  634.  
  635.         iOrigin[0] = Origin[0] + random_num(-range, range);
  636.         iOrigin[1] = Origin[1] + random_num(-range, range);
  637.         iOrigin[2] = Origin[2];
  638.         iOrigin[2] = ground_z(iOrigin, ent);
  639.  
  640.         while ( get_distance(iOrigin, Origin) > range ) {
  641.             g_g++;
  642.             iOrigin[0] = Origin[0] + random_num(-range, range);
  643.             iOrigin[1] = Origin[1] + random_num(-range, range);
  644.             iOrigin[2] = Origin[2];
  645.             if ( g_g / g_i >= ANTI_LAGG )
  646.                 iOrigin[2] = ground_z(iOrigin, ent, 1);
  647.             else
  648.                 iOrigin[2] = ground_z(iOrigin, ent);
  649.         }
  650.  
  651.         if ( ! ( i % 4 ) )
  652.             Flame(iOrigin, (!(i%4)));
  653.         else
  654.             Flame(iOrigin, 0);
  655.     }
  656. }
  657.  
  658. stock Flame(iOrigin[3], smoke) {
  659.  
  660.     new rand = random_num(5, 15);
  661.  
  662.     message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  663.     write_byte(TE_SPRITE);
  664.     write_coord(iOrigin[0]);
  665.     write_coord(iOrigin[1]);
  666.     write_coord(iOrigin[2] + rand * 10);
  667.     write_short(firespr);
  668.     write_byte(rand);
  669.     write_byte(100);
  670.     message_end();
  671.  
  672.     if ( smoke ) {
  673.         message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  674.         write_byte(TE_SMOKE);
  675.         write_coord(iOrigin[0]);
  676.         write_coord(iOrigin[1]);
  677.         write_coord(iOrigin[2] + 120);
  678.         write_short(smokespr[random_num(0, 1)]);
  679.         write_byte(random_num(10, 30));
  680.         write_byte(random_num(10, 20));
  681.         message_end();
  682.     }
  683.  
  684. }
  685.  
  686. stock kill(k, v) {
  687.  
  688.     user_silentkill(v);
  689.  
  690.     new kteam = get_user_team(k);
  691.     new vteam = get_user_team(v);
  692.  
  693.     new kfrags = get_user_frags(k) + 1;
  694.     new kdeaths = get_user_deaths(k);
  695.     if ( kteam == vteam )
  696.         kfrags = get_user_frags(k) - 2;
  697.  
  698.     new vfrags = get_user_frags(v);
  699.     new vdeaths = get_user_deaths(v);
  700.  
  701.     message_begin(MSG_ALL, gmsgScoreInfo);
  702.     write_byte(k);
  703.     write_short(kfrags);
  704.     write_short(kdeaths);
  705.     write_short(0);
  706.     write_short(kteam);
  707.     message_end();
  708.  
  709.     message_begin(MSG_ALL, gmsgScoreInfo);
  710.     write_byte(v);
  711.     write_short(vfrags + 1);
  712.     write_short(vdeaths);
  713.     write_short(0);
  714.     write_short(vteam);
  715.     message_end();
  716.  
  717.     message_begin(MSG_ALL, gmsgDeathMsg, {0,0,0}, 0);
  718.     write_byte(k);
  719.     write_byte(v);
  720.     write_byte(0);
  721.     write_string("molotov");
  722.     message_end();
  723.  
  724.     g_frags[k]++;
  725.  
  726.     if ( kteam != vteam )
  727.         cs_set_user_money(k, cs_get_user_money(k) + 300);
  728.     else
  729.         cs_set_user_money(k, cs_get_user_money(k) - 300);
  730. }
  731.  
  732. stock ground_z(iOrigin[3], ent, skip = 0) {
  733.  
  734.     iOrigin[2] += random_num(5, 80);
  735.  
  736.     new Float:fOrigin[3];
  737.  
  738.     IVecFVec(iOrigin, fOrigin);
  739.  
  740.     set_pev(ent, pev_origin, fOrigin);
  741.  
  742.     engfunc(EngFunc_DropToFloor, ent);
  743.  
  744.     if ( ! skip && ! engfunc(EngFunc_EntIsOnFloor, ent) )
  745.         return ground_z(iOrigin, ent);
  746.  
  747.     pev(ent, pev_origin, fOrigin);
  748.  
  749.     return floatround(fOrigin[2]);
  750. }
  751.  
  752. stock reset_molotovs() {
  753.     new ent = g_MaxPlayers;
  754.     while ((ent = engfunc(EngFunc_FindEntityByString, ent, "model", "models/w_molotov.mdl")))
  755.         engfunc(EngFunc_SetModel, ent, "models/w_hegrenade.mdl");
  756. }
  757.  
  758. stock set_molotovs() {
  759.     new ent = g_MaxPlayers;
  760.     while ((ent = engfunc(EngFunc_FindEntityByString, ent, "model", "models/w_hegrenade.mdl")))
  761.         engfunc(EngFunc_SetModel, ent, "models/w_molotov.mdl");
  762. }
  763. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  764. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
  765. */

_________________
razer*Csapat| Global Offensive *Statrak**197SIKIN*|Láda eventek| ip: 37.221.209.97:27302


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Molotov!
HozzászólásElküldve: 2017.02.19. 04:23 
Offline
Tud valamit
Avatar

Csatlakozott: 2016.11.08. 18:40
Hozzászólások: 127
Megköszönt másnak: 7 alkalommal
Megköszönték neki: 22 alkalommal
Tessek teszteld.
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <cstrike>
  5. #include <csx>
  6. #include <fun>
  7. #include <fakemeta_util>
  8. #include <hamsandwich>
  9.  
  10. #define AUTHORS "SAMURAI & Black Rose"
  11.  
  12. #define ADMIN_ACCESS ADMIN_KICK
  13.  
  14. #define ICON_R 255
  15. #define ICON_G 170
  16. #define ICON_B 0
  17.  
  18. #define ANTI_LAGG 7.0   // Defines max calculations before a flame is spawned without check if onground
  19. // This is  to prevent lagg at really narrow ents where you could end up with 400 calculations per flame
  20. // Suggested: <= 10
  21.  
  22. new pnumplugin, pMlDamage, pMlRadius, pFireTime, pOverride;
  23. new pTeamKill, pFireDmg;
  24.  
  25. new gmsgScoreInfo, gmsgDeathMsg;
  26.  
  27. new g_pAllocModel, g_vAllocModel;
  28.  
  29. new g_frags[33];
  30. new g_hasMolotov[33];
  31. new g_restarted;
  32. new g_MaxPlayers;
  33.  
  34. new firespr, smokespr[2];
  35.  
  36. public plugin_init() {
  37.  
  38.     register_plugin("Molotov Cocktail", "3.1c", AUTHORS);
  39.  
  40.     pnumplugin = register_cvar("molotov_tempcocktail","1", FCVAR_SPONLY);
  41.     pOverride = register_cvar("molotov_tempoverride", "0", FCVAR_SPONLY);
  42.    
  43.     pMlDamage = register_cvar("molotov_damage","40.0");
  44.     pMlRadius = register_cvar("molotov_radius","200.0");
  45.     pFireTime = register_cvar("molotov_firetime", "6");
  46.     pFireDmg = register_cvar("molotov_firedamage", "1");
  47.     pTeamKill = register_cvar("molotov_tk", "1");
  48.  
  49.     register_event("CurWeapon", "Event_CurWeapon","be", "1=1");
  50.     register_event("HLTV","event_new_round", "a","1=0", "2=0");
  51.     register_event("TextMsg","Event_GameRestart","a","2=#Game_Commencing","2=#Game_will_restart_in");
  52.     register_event("DeathMsg", "event_DeathMsg", "a");
  53.  
  54.     register_event("ShowMenu", "event_BuyMenuT", "b", "4=#T_BuyItem", "1=575");
  55.     register_event("ShowMenu", "event_BuyMenuCT", "b", "4=#CT_BuyItem", "1=703");
  56.     register_event("ShowMenu", "event_BuyMenuT", "b", "4=#DT_BuyItem", "1=575");
  57.     register_event("ShowMenu", "event_BuyMenuCT", "b", "4=#DCT_BuyItem", "1=767");
  58.    
  59.     RegisterHam(Ham_Spawn, "player", "MolotovD", 1);
  60.  
  61.     register_forward(FM_EmitSound, "fw_EmitSound");
  62.  
  63.     g_MaxPlayers = get_maxplayers();
  64.  
  65.     gmsgScoreInfo = get_user_msgid("ScoreInfo");
  66.     gmsgDeathMsg = get_user_msgid("DeathMsg");
  67.  
  68.     g_pAllocModel = engfunc(EngFunc_AllocString, "models/p_molotov.mdl");
  69.     g_vAllocModel = engfunc(EngFunc_AllocString, "models/v_molotov.mdl");
  70. }
  71. public MolotovD(id) {
  72.     g_hasMolotov[id] ++;
  73.     give_item(id, "weapon_hegrenade");
  74.     cs_set_user_bpammo(id, CSW_HEGRENADE, g_hasMolotov[id]);
  75. }
  76.  
  77.  
  78. public plugin_precache() {
  79.  
  80.     precache_model("models/p_molotov.mdl");
  81.     precache_model("models/v_molotov.mdl");
  82.     precache_model("models/w_molotov.mdl");
  83.  
  84.     firespr = precache_model("sprites/flame.spr");
  85.  
  86.     smokespr[0] = precache_model("sprites/black_smoke3.spr");
  87.     smokespr[1] = precache_model("sprites/steam1.spr");
  88.  
  89.     precache_sound("misc/molotov_fire.wav");
  90.     precache_sound("misc/molotov_explosion.wav");
  91. }
  92.  
  93. public fw_EmitSound(ent, channel, sample[]) {
  94.  
  95.     if ( equal(sample[8], "he_bounce", 9) ) {
  96.  
  97.         new model[32];
  98.         pev(ent, pev_model, model, 31);
  99.  
  100.         if ( equal(model[9], "molotov.mdl") )
  101.             grenade_explode(ent);
  102.     }
  103. }
  104.  
  105. public Event_CurWeapon(id) {
  106.  
  107.     if ( ! get_pcvar_num(pnumplugin) || ! is_user_alive(id) )
  108.         return PLUGIN_CONTINUE;
  109.  
  110.     if ( ! g_hasMolotov[id] && ! get_pcvar_num(pOverride) )
  111.         return PLUGIN_CONTINUE;
  112.  
  113.     new WeaponID = get_user_weapon(id, WeaponID, WeaponID);
  114.  
  115.     if ( WeaponID != CSW_HEGRENADE )
  116.         return PLUGIN_CONTINUE;
  117.  
  118.     set_pev(id, pev_viewmodel, g_vAllocModel);
  119.     set_pev(id, pev_weaponmodel, g_pAllocModel);
  120.     set_pev(id, pev_weaponanim, 9);
  121.  
  122.     return PLUGIN_CONTINUE;
  123. }
  124.  
  125. public Event_GameRestart() g_restarted = 1;
  126.  
  127. public event_DeathMsg() g_hasMolotov[read_data(2)] = 0;
  128.  
  129. public event_new_round() {
  130.  
  131.     if ( ! get_pcvar_num(pnumplugin) )
  132.         return PLUGIN_CONTINUE;
  133.  
  134.     for ( new i ; i < g_MaxPlayers ; i++ ) {
  135.         if ( g_frags[i] && is_user_connected(i) )
  136.             set_user_frags(i, get_user_frags(i) + g_frags[i]);
  137.         g_frags[i] = 0;
  138.     }
  139.  
  140.     if ( g_restarted ) {
  141.         for ( new i ; i < g_MaxPlayers ; i++ )
  142.             g_hasMolotov[i] = 0;
  143.         g_restarted = 0;
  144.     }
  145.  
  146.     if ( get_pcvar_num(pOverride) )
  147.         set_molotovs();
  148.     else
  149.         reset_molotovs();
  150.  
  151.     return PLUGIN_CONTINUE;
  152. }
  153.  
  154.  
  155. public grenade_throw(id, ent, wid) {
  156.  
  157.     if ( ! get_pcvar_num(pnumplugin) || ! is_user_connected(id) || wid != CSW_HEGRENADE )
  158.         return PLUGIN_CONTINUE;
  159.  
  160.     if ( ! g_hasMolotov[id] && ! get_pcvar_num(pOverride) )
  161.         return PLUGIN_CONTINUE;
  162.  
  163.     g_hasMolotov[id]--;
  164.     engfunc(EngFunc_SetModel, ent, "models/w_molotov.mdl");
  165.     set_pev(ent, pev_nextthink, 99999.0);
  166.  
  167.     return PLUGIN_CONTINUE;
  168. }
  169.  
  170. public grenade_explode(ent) {
  171.  
  172.     new Float:fOrigin[3];
  173.     pev(ent, pev_origin, fOrigin);
  174.  
  175.     new owner = pev(ent, pev_owner);
  176.     new ent2 = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  177.  
  178.     new param[5], iOrigin[3];
  179.     param[0] = owner;
  180.     param[1] = iOrigin[0] = floatround(fOrigin[0]);
  181.     param[2] = iOrigin[1] = floatround(fOrigin[1]);
  182.     param[3] = iOrigin[2] = floatround(fOrigin[2]);
  183.     param[4] = ent2;
  184.  
  185.     radius_damage(owner, fOrigin, get_pcvar_float(pMlDamage), get_pcvar_float(pMlRadius), DMG_BLAST);
  186.     emit_sound(ent, CHAN_AUTO, "misc/molotov_explosion.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
  187.  
  188.     engfunc(EngFunc_RemoveEntity, ent);
  189.  
  190.     ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  191.  
  192.     new param2[2];
  193.     param2[0] = ent;
  194.     param2[1] = ent2;
  195.  
  196.     random_fire(iOrigin, ent2);
  197.  
  198.     new Float:FireTime = get_pcvar_float(pFireTime);
  199.  
  200.     set_task(0.2, "fire_damage", 56235 + random_num(-100, 100), param, 5, "a", floatround(FireTime / 0.2, floatround_floor));
  201.     set_task(1.0, "fire_sound", 37235 + random_num(-100, 100), param2, 2, "a", floatround(FireTime) - 1);
  202.     set_task(FireTime, "fire_stop", 27367 + random_num(-100, 100), param2, 2);
  203.  
  204.     return PLUGIN_CONTINUE;
  205. }
  206.  
  207. public fire_sound(param[])
  208.     emit_sound(param[0], CHAN_AUTO, "misc/molotov_fire.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
  209.  
  210. new Float:g_i;
  211. new Float:g_g;
  212.  
  213. public fire_stop(param[]) {
  214.     g_g = 0.0;
  215.     g_i = 0.0;
  216.     engfunc(EngFunc_RemoveEntity, param[0]);
  217. }
  218.  
  219. public fire_damage(param[]) {
  220.  
  221.     new iOrigin[3], Float:fOrigin[3];
  222.     iOrigin[0] = param[1];
  223.     iOrigin[1] = param[2];
  224.     iOrigin[2] = param[3];
  225.  
  226.     random_fire(iOrigin, param[4]);
  227.  
  228.     IVecFVec(iOrigin, fOrigin);
  229.     radius_damage(param[0], fOrigin, get_pcvar_float(pFireDmg), get_pcvar_float(pMlRadius), DMG_BURN, 0);
  230. }
  231.  
  232. stock radius_damage(attacker, Float:origin[3], Float:damage, Float:range, dmgtype, calc = 1) {
  233.  
  234.     new Float:pOrigin[3], Float:dist, Float:tmpdmg/*, iOrigin[3] */;
  235.     new i, ateam = get_user_team(attacker), TK = get_pcvar_num(pTeamKill);
  236.  
  237.     while ( i++ < g_MaxPlayers ) {
  238.  
  239.         if ( ! is_user_alive(i) )
  240.             continue;
  241.  
  242.         if ( ! TK && ateam == get_user_team(i) )
  243.             continue;
  244.  
  245.         pev(i, pev_origin, pOrigin);
  246.         dist = get_distance_f(origin, pOrigin);
  247.  
  248.         if ( dist > range )
  249.             continue;
  250.  
  251.         if ( calc )
  252.             tmpdmg = damage - ( damage / range ) * dist;
  253.         else
  254.             tmpdmg = damage;
  255.  
  256.         if ( pev(i, pev_health) < tmpdmg )
  257.             kill(attacker, i);
  258.         else
  259.             fm_fakedamage(i, "molotov", tmpdmg, dmgtype);
  260.  
  261.         // FVecIVec(pOrigin, iOrigin);
  262.         // Flame(iOrigin, 1);
  263.     }
  264.  
  265.     while ( ( i = engfunc(EngFunc_FindEntityInSphere, i, origin, range) ) ) {
  266.         if ( pev(i, pev_takedamage) ) {
  267.             if ( calc ) {
  268.                 pev(i, pev_origin, pOrigin);
  269.                 tmpdmg = damage - ( damage / range ) * get_distance_f(origin, pOrigin);
  270.             }
  271.             else
  272.                 tmpdmg = damage;
  273.  
  274.             // FVecIVec(pOrigin, iOrigin);
  275.             // Flame(iOrigin, 1);
  276.  
  277.             fm_fakedamage(i, "molotov", tmpdmg, dmgtype);
  278.         }
  279.     }
  280. }
  281.  
  282. stock random_fire(Origin[3], ent) {
  283.  
  284.     new range = get_pcvar_num(pMlRadius);
  285.     new iOrigin[3];
  286.  
  287.     for ( new i = 1 ; i <= 5 ; i++ ) {
  288.  
  289.         g_i++;
  290.         g_g++;
  291.  
  292.         iOrigin[0] = Origin[0] + random_num(-range, range);
  293.         iOrigin[1] = Origin[1] + random_num(-range, range);
  294.         iOrigin[2] = Origin[2];
  295.         iOrigin[2] = ground_z(iOrigin, ent);
  296.  
  297.         while ( get_distance(iOrigin, Origin) > range ) {
  298.             g_g++;
  299.             iOrigin[0] = Origin[0] + random_num(-range, range);
  300.             iOrigin[1] = Origin[1] + random_num(-range, range);
  301.             iOrigin[2] = Origin[2];
  302.             if ( g_g / g_i >= ANTI_LAGG )
  303.                 iOrigin[2] = ground_z(iOrigin, ent, 1);
  304.             else
  305.                 iOrigin[2] = ground_z(iOrigin, ent);
  306.         }
  307.  
  308.         if ( ! ( i % 4 ) )
  309.             Flame(iOrigin, (!(i%4)));
  310.         else
  311.             Flame(iOrigin, 0);
  312.     }
  313. }
  314.  
  315. stock Flame(iOrigin[3], smoke) {
  316.  
  317.     new rand = random_num(5, 15);
  318.  
  319.     message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  320.     write_byte(TE_SPRITE);
  321.     write_coord(iOrigin[0]);
  322.     write_coord(iOrigin[1]);
  323.     write_coord(iOrigin[2] + rand * 10);
  324.     write_short(firespr);
  325.     write_byte(rand);
  326.     write_byte(100);
  327.     message_end();
  328.  
  329.     if ( smoke ) {
  330.         message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  331.         write_byte(TE_SMOKE);
  332.         write_coord(iOrigin[0]);
  333.         write_coord(iOrigin[1]);
  334.         write_coord(iOrigin[2] + 120);
  335.         write_short(smokespr[random_num(0, 1)]);
  336.         write_byte(random_num(10, 30));
  337.         write_byte(random_num(10, 20));
  338.         message_end();
  339.     }
  340.  
  341. }
  342.  
  343. stock kill(k, v) {
  344.  
  345.     user_silentkill(v);
  346.  
  347.     new kteam = get_user_team(k);
  348.     new vteam = get_user_team(v);
  349.  
  350.     new kfrags = get_user_frags(k) + 1;
  351.     new kdeaths = get_user_deaths(k);
  352.     if ( kteam == vteam )
  353.         kfrags = get_user_frags(k) - 2;
  354.  
  355.     new vfrags = get_user_frags(v);
  356.     new vdeaths = get_user_deaths(v);
  357.  
  358.     message_begin(MSG_ALL, gmsgScoreInfo);
  359.     write_byte(k);
  360.     write_short(kfrags);
  361.     write_short(kdeaths);
  362.     write_short(0);
  363.     write_short(kteam);
  364.     message_end();
  365.  
  366.     message_begin(MSG_ALL, gmsgScoreInfo);
  367.     write_byte(v);
  368.     write_short(vfrags + 1);
  369.     write_short(vdeaths);
  370.     write_short(0);
  371.     write_short(vteam);
  372.     message_end();
  373.  
  374.     message_begin(MSG_ALL, gmsgDeathMsg, {0,0,0}, 0);
  375.     write_byte(k);
  376.     write_byte(v);
  377.     write_byte(0);
  378.     write_string("molotov");
  379.     message_end();
  380.  
  381.     g_frags[k]++;
  382.  
  383.     if ( kteam != vteam )
  384.         cs_set_user_money(k, cs_get_user_money(k) + 300);
  385.     else
  386.         cs_set_user_money(k, cs_get_user_money(k) - 300);
  387. }
  388.  
  389. stock ground_z(iOrigin[3], ent, skip = 0) {
  390.  
  391.     iOrigin[2] += random_num(5, 80);
  392.  
  393.     new Float:fOrigin[3];
  394.  
  395.     IVecFVec(iOrigin, fOrigin);
  396.  
  397.     set_pev(ent, pev_origin, fOrigin);
  398.  
  399.     engfunc(EngFunc_DropToFloor, ent);
  400.  
  401.     if ( ! skip && ! engfunc(EngFunc_EntIsOnFloor, ent) )
  402.         return ground_z(iOrigin, ent);
  403.  
  404.     pev(ent, pev_origin, fOrigin);
  405.  
  406.     return floatround(fOrigin[2]);
  407. }
  408.  
  409. stock reset_molotovs() {
  410.     new ent = g_MaxPlayers;
  411.     while ((ent = engfunc(EngFunc_FindEntityByString, ent, "model", "models/w_molotov.mdl")))
  412.         engfunc(EngFunc_SetModel, ent, "models/w_hegrenade.mdl");
  413. }
  414.  
  415. stock set_molotovs() {
  416.     new ent = g_MaxPlayers;
  417.     while ((ent = engfunc(EngFunc_FindEntityByString, ent, "model", "models/w_hegrenade.mdl")))
  418.         engfunc(EngFunc_SetModel, ent, "models/w_molotov.mdl");
  419. }

_________________
Just* Szerverek hamarosan!


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Molotov!
HozzászólásElküldve: 2017.02.19. 08:08 
Offline
Tag
Avatar

Csatlakozott: 2016.12.25. 20:51
Hozzászólások: 57
Megköszönték neki: 4 alkalommal
De ez pluszba adja hozza a gránátok hoz ?
Vagy esetleg kicseréli valamelyik modelljét ???

En ugy gondoltam hogy pluszba adja hozza .

_________________
razer*Csapat| Global Offensive *Statrak**197SIKIN*|Láda eventek| ip: 37.221.209.97:27302


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Molotov!
HozzászólásElküldve: 2017.02.19. 19:56 
Offline
Tag
Avatar

Csatlakozott: 2016.12.25. 20:51
Hozzászólások: 57
Megköszönték neki: 4 alkalommal
Nem jo

_________________
razer*Csapat| Global Offensive *Statrak**197SIKIN*|Láda eventek| ip: 37.221.209.97:27302


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Molotov!
HozzászólásElküldve: 2017.02.19. 20:55 
Offline
Jómunkásember
Avatar

Csatlakozott: 2016.02.10. 12:46
Hozzászólások: 429
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 157 alkalommal
skyland001100 írta:
De ez pluszba adja hozza a gránátok hoz ?
Vagy esetleg kicseréli valamelyik modelljét ???

En ugy gondoltam hogy pluszba adja hozza .


A HE (Robbanó) gránát helyett rakja be a Molotovot.


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Molotov!
HozzászólásElküldve: 2017.02.19. 21:14 
Offline
Tag
Avatar

Csatlakozott: 2016.12.25. 20:51
Hozzászólások: 57
Megköszönték neki: 4 alkalommal
Es ugy nem lehetne megoldani hogy pluszba adja a gránátok melle ?

_________________
razer*Csapat| Global Offensive *Statrak**197SIKIN*|Láda eventek| ip: 37.221.209.97:27302


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Molotov!
HozzászólásElküldve: 2017.02.19. 21:24 
Offline
Jómunkásember
Avatar

Csatlakozott: 2016.02.10. 12:46
Hozzászólások: 429
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 157 alkalommal
Sajnos azt nem tudom.
Esetleg olyan ötletem lenne, hogy a Smoke gránát helyett berakni. (Csak akkor, ha nem használunk Smoke gránátot a szerveren)


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Molotov!
HozzászólásElküldve: 2017.02.19. 21:55 
Offline
Tag
Avatar

Csatlakozott: 2016.12.25. 20:51
Hozzászólások: 57
Megköszönték neki: 4 alkalommal
Akkor meg tudnad ugy csinálni ?
Es privibe elküldeni ?

_________________
razer*Csapat| Global Offensive *Statrak**197SIKIN*|Láda eventek| ip: 37.221.209.97:27302


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Molotov!
HozzászólásElküldve: 2017.02.19. 22:23 
Offline
Tud valamit

Csatlakozott: 2016.12.25. 12:43
Hozzászólások: 129
Megköszönt másnak: 35 alkalommal
Megköszönték neki: 4 alkalommal
skyland001100 írta:
Akkor meg tudnad ugy csinálni ?
Es privibe elküldeni ?

Miért kell privátba el küldeni?


Hozzászólás jelentése
Vissza a tetejére
   
 
 Hozzászólás témája: Re: Molotov!
HozzászólásElküldve: 2017.02.20. 08:54 
Offline
Tag
Avatar

Csatlakozott: 2016.12.25. 20:51
Hozzászólások: 57
Megköszönték neki: 4 alkalommal
Miért ne ? xD

_________________
razer*Csapat| Global Offensive *Statrak**197SIKIN*|Láda eventek| ip: 37.221.209.97:27302


Hozzászólás jelentése
Vissza a tetejére
   
 
Hozzászólások megjelenítése:  Rendezés  
Lezárt fórum  A témát lezárták, nem szerkesztheted a hozzászólásaid, és nem küldhetsz új hozzászólást.  [ 11 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

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


Nem nyithatsz témákat ebben a fórumban.
Nem 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