HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <cstrike>
  5.  
  6. #define PLUGIN "R Paintball Mod"
  7. #define VERSION "5.8b"
  8. #define AUTHOR "Rul4 - WhooKid"
  9.  
  10. #define TASK_DELAY 0.1 // The delay between model changing tasks
  11. #define MODELSET_TASK 3000 // offset for the models task
  12. #define MENU_TASK 3500
  13.  
  14. new onoff, cmodel, money, strip, death, protc, pbgun, pbnade, pbsnade, randomgun, maxplayers, vendetta, vendetta_cant;
  15. new g_team_select[33], g_plyr_skin[33], g_has_kill[33];
  16. new MenuState[33]
  17. new ShowMenu[33]
  18. new g_has_custom_model[33] // whether the player is using a custom model
  19. new g_team[33]
  20. new got_killed_by[33], vendetta_bonus[33], got_killed_times[33], in_vendetta[33]
  21. new pbslauncher, got_slauncher;
  22. new Float:g_models_counter // counter used to set task durations
  23.  
  24. public plugin_init()
  25. {
  26. register_plugin(PLUGIN, VERSION, AUTHOR);
  27. register_cvar("rpaintballmod", VERSION, FCVAR_SERVER|FCVAR_UNLOGGED);
  28. set_cvar_string("rpaintballmod", VERSION)
  29. if (get_pcvar_num(onoff))
  30. {
  31.  
  32. register_logevent("new_round", 2, "0=World triggered", "1=Round_Start");
  33. register_event("ResetHUD", "ev_resethud", "be");
  34. register_event("DeathMsg", "ev_death", "a")
  35. register_event("Money", "ev_money", "be");
  36. register_clcmd("say /respawn", "say_respawn", _, "<Ujraeledes engedelyezve>");
  37.  
  38. register_clcmd("say pbguns", "enableMenu")
  39. register_clcmd("say /pbguns", "enableMenu")
  40.  
  41. register_forward(FM_GetGameDescription, "fw_gamedesc");
  42. register_forward(FM_SetModel, "fw_setmodel", 1);
  43. if (get_pcvar_num(cmodel))
  44. {
  45. register_forward(FM_ClientUserInfoChanged, "fw_clientuserinfochanged");
  46. register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
  47. //register_message(get_user_msgid("ClCorpse"), "spawn_clcorpse")
  48. //set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET);
  49. }
  50.  
  51. maxplayers = get_maxplayers();
  52.  
  53. //initialize the menu
  54. for (new a = 0; a < 33; a++)
  55. {
  56. ShowMenu[a] = 1;
  57. in_vendetta[a] = 0
  58. got_killed_by[a] = -1
  59. got_killed_times[a] = 0
  60. }
  61. //load the config
  62. new file[64]
  63. get_configsdir(file, 63)
  64. format(file, 63, "%s/rpaintball.cfg", file)
  65.  
  66. if(file_exists(file))
  67. server_cmd("exec %s", file)
  68. }
  69.  
  70. }
  71.  
  72. public plugin_precache()
  73. {
  74. onoff = register_cvar("amx_pbmod", "1");
  75. pbgun = register_cvar("amx_pbgun", "1");
  76. pbnade = register_cvar("amx_pbnade", "1");
  77. pbsnade = register_cvar("amx_pbsnade", "1");
  78. if (get_pcvar_num(onoff)){
  79. cmodel = register_cvar("amx_pbmodel", "1");
  80. money = register_cvar("amx_pbmoney", "1");
  81. strip = register_cvar("amx_pbstrip", "1");
  82. death = register_cvar("amx_pbdm", "0");
  83. protc = register_cvar("amx_pbspawnprotect", "5");
  84. randomgun = register_cvar("pbgun_selectmode", "1");
  85. vendetta = register_cvar("pbgun_vendetta_enabled", "1");
  86. vendetta_cant = register_cvar("pbgun_vendetta_cant", "3");
  87. pbslauncher = register_cvar("pbgun_pbslauncher", "1");
  88.  
  89. if (get_pcvar_num(cmodel))
  90. precache_model("models/player/paintballer/paintballer.mdl");
  91. }
  92. }
  93.  
  94. public fw_gamedesc()
  95. {
  96. if (get_pcvar_num(onoff))
  97. {
  98. forward_return(FMV_STRING, PLUGIN);
  99. return FMRES_SUPERCEDE;
  100. }
  101. return FMRES_IGNORED;
  102. }
  103.  
  104. public new_round()
  105. {
  106. if (get_pcvar_num(onoff) && get_pcvar_num(strip))
  107. {
  108. new ent;
  109. while ((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "armoury_entity")) != 0)
  110. engfunc(EngFunc_RemoveEntity, ent);
  111.  
  112. }
  113.  
  114. // Reset the models task counter
  115. g_models_counter = 0.0
  116.  
  117. select_new_slauncher()
  118.  
  119. }
  120.  
  121. public select_new_slauncher()
  122. {
  123.  
  124. new original = got_slauncher
  125.  
  126. got_slauncher++
  127.  
  128. while((!is_user_connected(got_slauncher) && !is_user_bot(got_slauncher) && got_slauncher != original))
  129. {
  130. got_slauncher++
  131.  
  132. if (got_slauncher > 32)
  133. got_slauncher = 0
  134. }
  135.  
  136. //client_print(0, print_chat, "%d got it", got_slauncher)
  137.  
  138. }
  139.  
  140. public ev_resethud(id)
  141. {
  142. if (get_pcvar_num(onoff))
  143. {
  144. if (!task_exists(id))
  145. set_task(0.3, "player_spawn", id);
  146. }
  147. }
  148. public player_spawn(id)
  149. if (is_user_alive(id))
  150. {
  151. if (get_pcvar_num(protc))
  152. {
  153. set_pev(id, pev_takedamage, DAMAGE_NO);
  154. set_task(float(get_pcvar_num(protc)), "player_godmodeoff", id+100);
  155. }
  156.  
  157. if (get_pcvar_num(strip)) //&& !user_has_mp5(id))
  158. {
  159. if (pev(id, pev_weapons) & (1 << CSW_C4))
  160. engclient_cmd(id, "drop", "weapon_c4")
  161. fm_strip_user_weapons(id);
  162. }
  163.  
  164. if (get_pcvar_num(money))
  165. {
  166. message_begin(MSG_ONE_UNRELIABLE, 94, _, id);
  167. write_byte(1 << 5);
  168. message_end();
  169. }
  170.  
  171. if (get_pcvar_num(cmodel))
  172. {
  173. set_task(0.1 + g_models_counter, "task_set_model", id+MODELSET_TASK)
  174. g_models_counter += TASK_DELAY
  175. }
  176.  
  177. remove_task(id);
  178. set_task(random_float(0.9, 1.3), "player_weapons", id);
  179. set_task(2.0, "clear_moneyhud", id + 300);
  180.  
  181. }
  182.  
  183. public client_command(id)
  184. if (get_pcvar_num(cmodel))
  185. {
  186. new command[10], speech[2];
  187. read_argv(0, command, 9);
  188. read_argv(1, speech, 1);
  189. if (containi(command, "join") != -1)
  190. if (equali(command, "jointeam"))
  191. g_team_select[id] = str_to_num(speech);
  192. else if (equali(command, "joinclass"))
  193. g_plyr_skin[id] = (g_team_select[id] == 1) ? str_to_num(speech) - 1: str_to_num(speech) + 3;
  194. }
  195.  
  196. public player_weapons(id)
  197. if (is_user_alive(id))
  198. {
  199.  
  200. menu_cancel(id)
  201.  
  202. if(in_vendetta[id])
  203. {
  204. new kname[32]; get_user_name(got_killed_by[id],kname,31);
  205. set_hudmessage(255, 255, 255, -1.0, 0.33, 0, 5.0, 5.0);
  206. show_hudmessage(id, "Elvetted %s", kname);
  207. }
  208.  
  209.  
  210. set_pdata_int(id, 386, 120, 5);
  211. fm_give_item(id, "weapon_knife");
  212. if (get_user_team(id) == 1)
  213. fm_give_item(id, "weapon_glock18");
  214. else
  215. {
  216. set_pdata_int(id, 382, 48, 5);
  217. fm_give_item(id, "weapon_usp");
  218. }
  219. if (get_pcvar_num(pbgun) && !vendetta_bonus[id]){
  220.  
  221. if (get_pcvar_num(randomgun)==1){
  222.  
  223. if(is_user_bot(id))
  224. {
  225. ShowMenu[id] = false;
  226. MenuState[id] = random(4);
  227. }
  228.  
  229. if (ShowMenu[id])
  230. launchMenu(id);
  231. else
  232. {
  233. give_menu_weapon(id, MenuState[id]);
  234. client_print(id, print_chat, "[Paintball] A menu le van tiltva. Ird be 'pbguns' az aktivalashoz.")
  235. }
  236.  
  237. }
  238. else
  239. {
  240. new choose;
  241. if (get_pcvar_num(randomgun)==2){
  242. choose = random(4);
  243.  
  244. if (random(20)==0){
  245. fm_give_item(id, "weapon_p90");
  246. cs_set_user_bpammo(id, CSW_P90, 300);
  247. set_hudmessage(255, 255, 255, -1.0, 0.33, 0, 5.0, 5.0);
  248. show_hudmessage(id, "Szerencsed van! Van egy SUPER MARKER nalad!!!!");
  249. }
  250. else
  251. switch (choose)
  252. {
  253. case 0: fm_give_item(id, "weapon_mp5navy");
  254. case 1: fm_give_item(id, "weapon_scout");
  255. case 2: fm_give_item(id, "weapon_m3");
  256. case 3: fm_give_item(id, "weapon_xm1014");
  257. default: fm_give_item(id, "weapon_mp5navy");
  258. }
  259. cs_set_user_bpammo(id, CSW_MP5NAVY, 150);
  260. cs_set_user_bpammo(id, CSW_SCOUT, 20);
  261. cs_set_user_bpammo(id, CSW_M3, 16);
  262. cs_set_user_bpammo(id, CSW_XM1014, 80);
  263. cs_set_user_bpammo(id, CSW_P90, 300);
  264. }else
  265. {
  266. //always gets a marker
  267. fm_give_item(id, "weapon_mp5navy");
  268. cs_set_user_bpammo(id, CSW_MP5NAVY, 150);
  269.  
  270. //did not kill someone, has a chance of getting a shotgun
  271. choose = random(3);
  272. if (!g_has_kill[id] && !choose){
  273. fm_give_item(id, "weapon_xm1014");
  274. cs_set_user_bpammo(id, CSW_XM1014, 80);
  275. }
  276.  
  277. //killed 2 or more, gets a sniper or a launcher
  278. choose = random(2);
  279. if (g_has_kill[id]>2)
  280. if (g_has_kill[id]>4){
  281. fm_give_item(id, "weapon_p90");
  282. cs_set_user_bpammo(id, CSW_P90, 300);
  283. set_hudmessage(255, 255, 255, -1.0, 0.33, 0, 5.0, 5.0);
  284. show_hudmessage(id, "Szent szar! Nalad van a SUPER MARKER!!!!");
  285. }
  286. else
  287. if (choose){
  288. fm_give_item(id, "weapon_scout");
  289. cs_set_user_bpammo(id, CSW_SCOUT, 20);
  290. }else
  291. {
  292. fm_give_item(id, "weapon_m3");
  293. cs_set_user_bpammo(id, CSW_M3, 16);
  294. }
  295. g_has_kill[id] = 0;
  296. }
  297. }
  298. }
  299.  
  300. if(vendetta_bonus[id] == 1)
  301. {
  302. fm_give_item(id, "weapon_p90");
  303. cs_set_user_bpammo(id, CSW_P90, 300);
  304. set_hudmessage(255, 255, 255, -1.0, 0.33, 0, 5.0, 5.0);
  305. show_hudmessage(id, "Verbosszu! Nalad van a SUPER MARKER!!!!");
  306. }
  307.  
  308. if(vendetta_bonus[id] == -1)
  309. {
  310. vendetta_bonus[id] = 0
  311. set_hudmessage(255, 255, 255, -1.0, 0.33, 0, 5.0, 5.0);
  312. show_hudmessage(id, "Haha! Nem kapsz tobb fegyert ebben a korben!!!!");
  313. }
  314.  
  315.  
  316. if (get_pcvar_num(pbnade))
  317. fm_give_item(id, "weapon_hegrenade");
  318.  
  319. if (get_pcvar_num(pbsnade))
  320. fm_give_item(id, "weapon_smokegrenade");
  321.  
  322. if (get_pcvar_num(pbslauncher) && id == got_slauncher)
  323. {
  324. new kname[32]; get_user_name(id,kname,31);
  325. new teamname[3][] = {"Egyik sem", "Piros Csapat", "Kek Csapat"};
  326. set_hudmessage(255, 255, 255, -1.0, 0.7, 0, 5.0, 5.0);
  327. show_hudmessage(0, "%s: %s nal van a super launcher!!!", teamname[get_user_team(id)], kname);
  328. //client_print(0, print_chat, "%s: %s nal van a super launcher!!!", teamname[get_user_team(id)], kname)
  329. fm_give_item(id, "weapon_flashbang");
  330. //fm_give_item(id, "weapon_flashbang");
  331.  
  332. if (get_pcvar_num(death))
  333. select_new_slauncher()
  334.  
  335. }
  336.  
  337. remove_task(id);
  338. }
  339.  
  340. public clear_moneyhud(id)
  341. if (get_pcvar_num(money))
  342. {
  343. message_begin(MSG_ONE_UNRELIABLE, 94, _, id - 300); //HideWeapon
  344. write_byte(1 << 5);
  345. message_end();
  346. }
  347.  
  348. public ev_death()
  349. {
  350.  
  351. new killer = read_data(1);
  352. new victim = read_data(2);
  353.  
  354. g_has_kill[killer] += 1;
  355. if (get_pcvar_num(death))
  356. {
  357. new id = victim + 200;
  358. set_task(3.0, "player_spawner", id);
  359. set_task(3.2, "player_spawner", id);
  360. }
  361.  
  362. if (get_pcvar_num(vendetta) && killer != victim)
  363. {
  364.  
  365. vendetta_bonus[victim] = 0
  366.  
  367. if (got_killed_by[victim] == killer)
  368. {
  369. got_killed_times[victim] += 1;
  370. }
  371. else
  372. {
  373. got_killed_by[victim] = killer;
  374. got_killed_times[victim] = 1;
  375. }
  376.  
  377. if (got_killed_times[victim] < get_pcvar_num(vendetta_cant))
  378. in_vendetta[victim] = 0;
  379. else
  380. in_vendetta[victim] = 1;
  381.  
  382. if (got_killed_by[killer] == victim)
  383. if (in_vendetta[killer])
  384. {
  385. in_vendetta[killer] = 0
  386. vendetta_bonus[killer] = 1
  387. vendetta_bonus[victim] = -1
  388. got_killed_times[killer] = 0
  389. got_killed_by[killer] = -1
  390.  
  391. new kname[32]; get_user_name(killer,kname,31);
  392.  
  393. set_hudmessage(255, 255, 255, -1.0, 0.4, 0, 5.0, 5.0);
  394. show_hudmessage(0, "%s Verbosszu!!!!", kname);
  395. }
  396. else
  397. got_killed_times[killer] = 0
  398.  
  399. }
  400.  
  401. }
  402.  
  403. public ev_money(id)
  404. if (get_pcvar_num(money))
  405. if (get_pdata_int(id, 115, 5) > 0)
  406. set_pdata_int(id, 115, 0, 5);
  407.  
  408. public say_respawn(id)
  409. if (get_pcvar_num(death))
  410. if (!is_user_alive(id))
  411. if (get_user_team(id) == 1 || get_user_team(id) == 2)
  412. {
  413. set_task(1.5, "player_spawner", id + 200);
  414. set_task(1.7, "player_spawner", id + 200);
  415. }
  416.  
  417. public player_godmodeoff(id)
  418. set_pev(id-100, pev_takedamage, DAMAGE_AIM);
  419.  
  420. public player_spawner(id)
  421. if (is_user_connected(id - 200))
  422. if (get_user_team(id - 200) == 1 || get_user_team(id - 200) == 2)
  423. dllfunc(DLLFunc_Spawn, id - 200);
  424.  
  425. stock user_has_mp5(id)
  426. {
  427. new weapons[32], num;
  428. get_user_weapons(id, weapons, num);
  429. for (new i = 0; i < num; i++)
  430. if (weapons[i] == CSW_MP5NAVY)
  431. return 1;
  432. return 0;
  433. }
  434.  
  435. public fw_setmodel(ent, model[])
  436. {
  437. if (get_pcvar_num(death) && pev_valid(ent))
  438. {
  439. new id = pev(ent, pev_owner);
  440. if ((!is_user_alive(id) || task_exists(id + 200)) && equali(model, "models/w_", 9) && !equali(model, "models/w_weaponbox.mdl"))
  441. {
  442. new classname[16];
  443. pev(ent, pev_classname, classname, 15);
  444. if (equal(classname, "weaponbox") && !equal(model, "models/w_backpack.mdl"))
  445. for (new i = maxplayers + 1; i < engfunc(EngFunc_NumberOfEntities) + 5; i++)
  446. if (pev_valid(i))
  447. if (ent == pev(i, pev_owner))
  448. {
  449. dllfunc(DLLFunc_Think, ent);
  450. return FMRES_IGNORED;
  451. }
  452. }
  453. }
  454. return FMRES_IGNORED;
  455. }
  456.  
  457. public fw_clientuserinfochanged(id, infobuffer)
  458. {
  459.  
  460. // return (get_pcvar_num(cmodel) && pev(id, pev_deadflag) == DEAD_NO) ? FMRES_SUPERCEDE : FMRES_IGNORED;
  461.  
  462. if (get_pcvar_num(cmodel) && (g_has_custom_model[id]))
  463. {
  464.  
  465. if (g_team[id] != get_user_team(id))
  466. g_has_custom_model[id] = 0;
  467.  
  468. // Get current model
  469. static currentmodel[32]
  470.  
  471. engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", currentmodel, 31)
  472.  
  473. // Check whether it matches the custom model - if not, set it again
  474. if (!equal(currentmodel, "paintballer") || g_has_custom_model[id] == 0)
  475. {
  476. set_task(0.1 + g_models_counter, "task_set_model", id+MODELSET_TASK)
  477. g_models_counter += TASK_DELAY
  478. }
  479.  
  480. return FMRES_SUPERCEDE;
  481. }
  482. return FMRES_IGNORED
  483. }
  484.  
  485. public fw_SetClientKeyValue(id, const infobuffer[], const key[])
  486. {
  487. // Block CS model changes
  488. if (g_has_custom_model[id] && equal(key, "model"))
  489. return FMRES_SUPERCEDE;
  490.  
  491. return FMRES_IGNORED;
  492. }
  493.  
  494. ////////*****************VEN STOCKS START*****************////////
  495. stock fm_strip_user_weapons(index)
  496. {
  497. new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "player_weaponstrip"));
  498. if (!pev_valid(ent))
  499. return 0;
  500. dllfunc(DLLFunc_Spawn, ent);
  501. dllfunc(DLLFunc_Use, ent, index);
  502. engfunc(EngFunc_RemoveEntity, ent);
  503. return 1;
  504. }
  505.  
  506. stock fm_give_item(index, const item[])
  507. {
  508. new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item));
  509. if (!pev_valid(ent))
  510. return 0;
  511. new Float:origin[3];
  512. pev(index, pev_origin, origin);
  513. engfunc(EngFunc_SetOrigin, ent, origin);
  514. set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
  515. dllfunc(DLLFunc_Spawn, ent);
  516. new save = pev(ent, pev_solid);
  517. dllfunc(DLLFunc_Touch, ent, index);
  518. if (pev(ent, pev_solid) != save)
  519. return ent;
  520. engfunc(EngFunc_RemoveEntity, ent);
  521. return -1;
  522. }
  523. ////////*****************VEN STOCKS END*****************////////
  524.  
  525. public enableMenu(id)
  526. {
  527. ShowMenu[id] = 1
  528. client_print(id, print_chat, "[Paintball] A menu ujra engedelyezve lett.")
  529. return PLUGIN_HANDLED
  530.  
  531. }
  532.  
  533. public launchMenu(id)
  534. {
  535. new menu = menu_create("\rValassz Paintball Fegyvert:", "menu_handler")
  536.  
  537. menu_additem(menu, "\wAlap fegyver", "0", 0)
  538. menu_additem(menu, "\wShotgun", "1", 0)
  539. menu_additem(menu, "\wPaintballveto", "2", 0)
  540. menu_additem(menu, "\wMesterlovesz", "3", 0)
  541. menu_additem(menu, "Maradjon csak a pisztoly", "4", 0, -1)
  542. menu_additem(menu, "Elozo Fegyver = Ne mutassa tobbet a menut", "5", 0, -1)
  543.  
  544. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  545.  
  546. menu_display(id, menu, 0)
  547.  
  548. }
  549.  
  550. public menu_handler(id, menu, item)
  551. {
  552.  
  553. if (item == MENU_EXIT)
  554. {
  555. menu_destroy(menu)
  556. return PLUGIN_HANDLED
  557. }
  558.  
  559. new data[6], iName[64]
  560. new access, callback
  561. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
  562.  
  563. new key = str_to_num(data);
  564.  
  565. if (key==4)
  566. key = MenuState[id]
  567.  
  568. if(key == 5)
  569. {
  570. ShowMenu[id] = 0;
  571. client_print(id, print_chat, "[Paintball] A menu le van tiltva. Ird be 'pbguns' az aktivalashoz.")
  572. key = MenuState[id]
  573. }
  574.  
  575. MenuState[id] = key
  576.  
  577. give_menu_weapon(id, MenuState[id]);
  578.  
  579. menu_destroy(menu)
  580. return PLUGIN_HANDLED
  581. }
  582.  
  583. public give_menu_weapon(id,key)
  584. {
  585. switch (key)
  586. {
  587. case 0: fm_give_item(id, "weapon_mp5navy");
  588. case 1: fm_give_item(id, "weapon_xm1014");
  589. case 2: fm_give_item(id, "weapon_m3");
  590. case 3: fm_give_item(id, "weapon_scout");
  591. default: fm_give_item(id, "weapon_mp5navy");
  592. }
  593.  
  594. cs_set_user_bpammo(id, CSW_MP5NAVY, 150);
  595. cs_set_user_bpammo(id, CSW_SCOUT, 20);
  596. cs_set_user_bpammo(id, CSW_M3, 16);
  597. cs_set_user_bpammo(id, CSW_XM1014, 80);
  598.  
  599. }
  600.  
  601. public task_set_model(id)
  602. {
  603. remove_task(id)
  604.  
  605. // Get player id
  606. id -= MODELSET_TASK
  607.  
  608. // Actually set the player's model
  609. set_user_model(id, "paintballer")
  610. }
  611.  
  612. public set_user_model(player, const modelname[])
  613. {
  614. // Set new model
  615. engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname)
  616.  
  617. g_team[player] = get_user_team(player)
  618.  
  619. //if (!g_has_custom_model[player])
  620. if (g_team[player] == 1)
  621. {
  622. g_plyr_skin[player] = 0//random(4);
  623. }
  624. else
  625. {
  626. g_plyr_skin[player] = 4 // + random(4);
  627. }
  628.  
  629.  
  630. set_pev(player, pev_skin, g_plyr_skin[player]);
  631.  
  632. g_has_custom_model[player] = 1
  633. }
  634.  
  635. public spawn_clcorpse()
  636. {
  637. // Get player id
  638. static id
  639. id = get_msg_arg_int(12)
  640.  
  641. new entCorpse = read_data(2);
  642. set_pev(entCorpse, pev_skin, g_plyr_skin[id]);
  643.  
  644.  
  645. // Check if the player is using a custom player model
  646. if (false && g_has_custom_model[id])
  647. {
  648. //client_print(0, print_chat, "%d", id);
  649.  
  650. set_msg_arg_string(1, "")
  651.  
  652. new entCorpse = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  653. if(entCorpse > 0)
  654. {
  655. new Float:modelOrigin[3], Float:modelAngle[3]
  656. pev(id, pev_origin, modelOrigin)
  657. pev(id, pev_angles, modelAngle)
  658.  
  659. client_print(0, print_chat, "corpse coords %f %f %f", float(get_msg_arg_int(2)), float(get_msg_arg_int(3)), float(get_msg_arg_int(4)));
  660. client_print(0, print_chat, "corpse coords %i %i %i", get_msg_arg_int(2), get_msg_arg_int(3), get_msg_arg_int(4));
  661. //client_print(0, print_chat, "corpse string %f %f %f", float(get_msg_arg_string(2)), float(get_msg_arg_string(3)), float(get_msg_arg_string(4)));
  662. client_print(0, print_chat, "player coords %f %f %f", modelOrigin[0], modelOrigin[1], modelOrigin[2]);
  663. // client_print(0, print_chat, "player %f %f %f", modelAngle[0], modelAngle[1], modelAngle[2]);
  664.  
  665. modelAngle[0] += 90.0
  666.  
  667. modelOrigin[2] -= 35.0
  668.  
  669. set_pev(entCorpse, pev_owner, id)
  670. set_pev(entCorpse, pev_classname, "clcorpse")
  671. engfunc(EngFunc_SetSize, entCorpse, Float:{-6.0,-12.0,-6.0},Float:{6.0,12.0,6.0})
  672. engfunc(EngFunc_SetModel, entCorpse, "models/player/paintballer/paintballer.mdl");
  673. set_pev(entCorpse, pev_skin, g_plyr_skin[id]);
  674. set_pev(entCorpse, pev_solid, SOLID_NOT)
  675. set_pev(entCorpse, pev_movetype, MOVETYPE_TOSS)
  676. set_pev(entCorpse, pev_sequence, 103)
  677. set_pev(entCorpse, pev_origin, modelOrigin)
  678. set_pev(entCorpse, pev_angles, modelAngle)
  679. set_pev(entCorpse, pev_v_angle, pev(id, pev_v_angle))
  680. set_pev(entCorpse, pev_nextthink, 1.0)
  681.  
  682. }
  683.  
  684. return PLUGIN_HANDLED;
  685. }
  686. return PLUGIN_CONTINUE;
  687. }
  688.  
  689. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  690. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang11274\\ f0\\ fs16 \n\\ par }
  691. */
  692.