hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.06. 23:19



Jelenlévő felhasználók

Jelenleg 418 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 418 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  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: molotov koktél
HozzászólásElküldve: 2015.07.21. 22:56 
Offline
Újonc

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


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: molotov koktél
HozzászólásElküldve: 2015.07.23. 03:30 
Offline
Fanatikus

Csatlakozott: 2009.09.26. 10:29
Hozzászólások: 171
Megköszönték neki: 54 alkalommal
82. sorban írd át 0 -ra.

SMA Forráskód: [ Mindet kijelol ]
  1. pprice = register_cvar("molotov_price","0");


Majd nyisd meg a server.cfg -t, és írd bele ezt: molotov_price "0"

Good Luck, and Have Fun! :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: molotov koktél
HozzászólásElküldve: 2015.07.23. 10:00 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2015.04.10. 19:49
Hozzászólások: 610
Megköszönt másnak: 53 alkalommal
Megköszönték neki: 147 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. public plugin_init()
  2. {
  3. RegisterHam(Ham_Spawn, "player", "fwSpawnPost", 1);
  4. }
  5.  
  6. public fwSpawnPost(id)
  7. {
  8. g_hasMolotov[id]++;
  9.  
  10. give_item(id, "weapon_hegrenade");
  11. }


Próbáld.

_________________
Néha itt, de többször nem.


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


Ki van itt

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