hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 547 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 547 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  [ 11 hozzászólás ]  Oldal Előző 1 2
Szerző Üzenet
 Hozzászólás témája: Re: Dobozok Mentése
HozzászólásElküldve: 2015.04.23. 19:04 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Nem tudom, mit csináltam, de már jó a /raktar parancs. :) Ám van egy kis probléma: az ölések száma helyett csak egy %d-t ír. :( próbáltam %s-sel, és %i-vel is, úgy sem jó. Ezen kívül pedig a raktárból a végtelenségig nyitogathatunk ládákat. Mi lehet a gond? :(
SMA Forráskód: [ Mindet kijelol ]
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include < amxmodx >
  4. #include < engine >
  5. #include < fakemeta_util >
  6. #include < cstrike >
  7. #include < fun >
  8. #include < hamsandwich >
  9. #include < nvault >
  10.  
  11. #define PLUGIN "Bonus Box"
  12. #define VERSION "1.5"
  13. #define AUTHOR "MegastorM Edit:LyleChriss"
  14.  
  15. #define TASK_BONUS 1234
  16.  
  17. new modell[] = { "models/box/w_bonus.mdl" }
  18. new const szPrefix[15] = "[Bonus Box]"
  19. new g_sprite
  20. new Float:OriginZrtve[3], Float:Uglovi[3]
  21. new fegyver[33]
  22. new dobozok[33]
  23.  
  24. new bool:sebesseg[33]
  25. new bool:duplasebzes[33]
  26. new bool:norecoil[33]
  27.  
  28. new vault
  29.  
  30. new Sebesseg, Gravity, LathatatlansagIdo
  31.  
  32. enum Color
  33. {
  34. NORMAL = 1,
  35. GREEN,
  36. TEAM_COLOR,
  37. GREY,
  38. RED,
  39. BLUE,
  40. }
  41.  
  42. new TeamName[][] =
  43. {
  44. "",
  45. "TERRORIST",
  46. "CT",
  47. "SPECTATOR"
  48. }
  49.  
  50. new const g_playerModels[][] = {
  51. "artic",
  52. "guerilla",
  53. "leet",
  54. "terror",
  55. "gign",
  56. "gsg9",
  57. "sas",
  58. "urban"
  59. }
  60.  
  61. public plugin_init() {
  62. register_plugin(PLUGIN, VERSION, AUTHOR)
  63. register_event("DeathMsg", "event_death", "ade");
  64. register_touch("BonusBox", "player", "touchbox");
  65. RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
  66. RegisterHam(Ham_TakeDamage, "player", "sebzes")
  67. register_forward(FM_PlayerPreThink, "prethink")
  68. register_event("CurWeapon", "fegyvervaltas", "be", "1=1")
  69. register_clcmd("say /raktar", "raktar")
  70. Sebesseg = register_cvar("bbox_sebesseg", "425")
  71. Gravity = register_cvar("bbox_gravity", "0.4")
  72. LathatatlansagIdo = register_cvar("bbox_lathatatlan", "5")
  73. vault = nvault_open("doboz")
  74. }
  75.  
  76. public player_spawn(id)
  77. {
  78. sebesseg[id] = false
  79. duplasebzes[id] = false
  80. norecoil[id] = false
  81. if(is_user_alive(id))
  82. {
  83. set_user_footsteps(id, 0)
  84. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)
  85. }
  86. if(is_user_connected(id)) cs_reset_user_model(id)
  87. }
  88.  
  89. public mentes(id)
  90. {
  91. new name[32]
  92. get_user_name(id, name, 31)
  93. new vaultkey[64],vaultdata[256]
  94. format(vaultkey,63,"%s", name)
  95. format(vaultdata,255,"%i",dobozok[id])
  96. nvault_set(vault,vaultkey,vaultdata)
  97. return PLUGIN_CONTINUE
  98. }
  99.  
  100. public betoltes(id)
  101. {
  102. new name[32]
  103. get_user_name(id, name, 31)
  104. new vaultkey[64],vaultdata[256]
  105. format(vaultkey,63,"%s", name)
  106. format(vaultdata,255,"%i",dobozok[id])
  107. nvault_get(vault,vaultkey,vaultdata,255)
  108. replace_all(vaultdata, 255, "#", " ")
  109. new box[32]
  110. parse(vaultdata, box, 31)
  111. dobozok[id] = str_to_num(box)
  112. return PLUGIN_CONTINUE
  113. }
  114.  
  115. public client_connect(id)
  116. {
  117. betoltes(id)
  118. }
  119. public client_disconnect(id)
  120. {
  121. mentes(id)
  122. }
  123.  
  124. public fegyvervaltas(id)
  125. {
  126. fegyver[id] = get_user_weapon(id)
  127. if(sebesseg[id]) set_user_maxspeed(id, get_pcvar_float(Sebesseg))
  128. }
  129.  
  130.  
  131.  
  132. public plugin_precache()
  133. {
  134. precache_model(modell)
  135. g_sprite = precache_model("sprites/box/box_sprite.spr")
  136. //precache_sound("box/supplybox.wav")
  137. precache_sound("box/touched.wav")
  138. }
  139.  
  140. public event_death()
  141. {
  142. new victim = read_data(2)
  143. if(is_user_connected(victim))
  144. {
  145. get_origin(victim)
  146.  
  147. set_task(0.1,"create_bonusbox",TASK_BONUS)
  148. }
  149. }
  150.  
  151. public get_origin(id)
  152. {
  153. pev(id, pev_origin, OriginZrtve)
  154. pev(id, pev_angles, Uglovi)
  155. Uglovi[0] = 0.0
  156. }
  157.  
  158. public create_bonusbox()
  159. {
  160. new ent = create_entity("info_target")
  161.  
  162. entity_set_origin(ent, OriginZrtve)
  163. entity_set_string(ent, EV_SZ_classname, "BonusBox")
  164. entity_set_model(ent, modell)
  165. set_rendering ( ent, kRenderFxGlowShell, random_num(128,255),random_num(128,255),random_num(128,255), kRenderFxNone, 255 )
  166. //emit_sound(ent, CHAN_ITEM, "box/supplybox.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
  167. entity_set_int(ent, EV_INT_solid, SOLID_BBOX)
  168. entity_set_int(ent, EV_INT_movetype, MOVETYPE_PUSHSTEP)
  169.  
  170. entity_set_size(ent,Float:{-2.0,-2.0,-2.0},Float:{5.0,5.0,5.0})
  171.  
  172. drop_to_floor(ent)
  173.  
  174. engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, OriginZrtve, 0)
  175. write_byte(TE_BEAMCYLINDER) // TE id
  176. engfunc(EngFunc_WriteCoord, OriginZrtve[0]) // x
  177. engfunc(EngFunc_WriteCoord, OriginZrtve[1]) // y
  178. engfunc(EngFunc_WriteCoord, OriginZrtve[2]) // z
  179. engfunc(EngFunc_WriteCoord, OriginZrtve[0]) // x axis
  180. engfunc(EngFunc_WriteCoord, OriginZrtve[1]) // y axis
  181. engfunc(EngFunc_WriteCoord, OriginZrtve[2]+385.0) // z axis
  182. write_short(g_sprite) // sprite
  183. write_byte(0) // startframe
  184. write_byte(0) // framerate
  185. write_byte(4) // life
  186. write_byte(30) // width
  187. write_byte(0) // noise
  188. write_byte(250) // red
  189. write_byte(0) // green
  190. write_byte(0) // blue
  191. write_byte(200) // brightness
  192. write_byte(0) // speed
  193. message_end()
  194. }
  195.  
  196. public touchbox(ent, toucher)
  197. {
  198. if (!is_user_alive(toucher) || !pev_valid(ent))
  199. return FMRES_IGNORED
  200.  
  201. new classname[32]
  202. pev(ent, pev_classname, classname, 31)
  203. if (!equal(classname, "BonusBox"))
  204. return FMRES_IGNORED
  205.  
  206. meni_za_potvrdu(toucher)
  207.  
  208. emit_sound(toucher, CHAN_ITEM, "box/touched.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
  209.  
  210. set_pev(ent, pev_effects, EF_NODRAW)
  211. set_pev(ent, pev_solid, SOLID_NOT)
  212. remove_ent(ent)
  213. return FMRES_IGNORED
  214.  
  215. }
  216.  
  217. public meni_za_potvrdu(id)
  218. {
  219. new szItem[32]
  220. new menu = menu_create("Szeretnéd kinyitni a dobozt?","Box_H");
  221.  
  222. formatex(szItem,charsmax(szItem),"\yIgen, szeretném!")
  223. menu_additem(menu, szItem)
  224.  
  225. formatex(szItem,charsmax(szItem),"\dNem, inkább elrakom későbbre!")
  226. menu_additem(menu,szItem)
  227. menu_display(id,menu);
  228. }
  229.  
  230. public raktar(id)
  231. {
  232. new szItem[32]
  233. new rmenu = menu_create("Raktár menü. Dobozaid: \r%d ^nKinyitsz egyet?", "Box_R", dobozok[id])
  234.  
  235. formatex(szItem, charsmax(szItem),"\yIgen")
  236. menu_additem(rmenu, szItem)
  237.  
  238. formatex(szItem, charsmax(szItem),"\dNem")
  239. menu_additem(rmenu, szItem)
  240. menu_display(id, rmenu);
  241. }
  242.  
  243.  
  244.  
  245. public Box_H(id, menu, item)
  246. {
  247. switch(item)
  248. {
  249. case 0:
  250. {
  251. switch(random_num(1, 13))
  252. {
  253. case 1:
  254. {
  255. set_user_health(id,get_user_health(id)+100)
  256. ColorChat(id, TEAM_COLOR, "^4%s^1 Wow! +100 HP volt a dobozban!",szPrefix)
  257. }
  258. case 2:
  259. {
  260. set_user_health(id,get_user_health(id)-100)
  261. ColorChat(id, TEAM_COLOR, "^4%s^1 Hehe! -100 HP volt a dobozban!",szPrefix)
  262. }
  263. case 3:
  264. {
  265. give_item(id, "weapon_hegrenade")
  266. give_item(id, "weapon_flashbang")
  267. give_item(id, "weapon_flashbang")
  268. give_item(id, "weapon_smokegrenade")
  269. ColorChat(id, TEAM_COLOR, "^4%s^1 Azta! Gránátcsomagot találtál!",szPrefix)
  270. }
  271. case 4:
  272. {
  273. ColorChat(id, TEAM_COLOR, "^4%s^1 Hát ez üres volt...",szPrefix)
  274. }
  275. case 5:
  276. {
  277. set_user_footsteps(id, 1)
  278. ColorChat(id, TEAM_COLOR, "^4%s^1 Surranót kaptál!Mostmár senki sem hallja a trappod!",szPrefix)
  279. }
  280. case 6:
  281. {
  282. sebesseg[id] = true
  283. set_user_maxspeed(id, get_pcvar_float(Sebesseg))
  284. ColorChat(id, TEAM_COLOR, "^4%s^1 Te aztán felgyorsultál!Vajon mi volt abban a ládában?",szPrefix)
  285. }
  286. case 7:
  287. {
  288. ColorChat(id, TEAM_COLOR, "^4%s^1 Hát ezt üres volt...",szPrefix)
  289. }
  290. case 8:
  291. {
  292. set_user_gravity(id, get_pcvar_float(Gravity))
  293. ColorChat(id, TEAM_COLOR, "^4%s^1 Ez meg mi?Antigraviációs öv?!",szPrefix)
  294. }
  295. case 9:
  296. {
  297. switch(get_user_team(id))
  298. {
  299. case 1: cs_set_user_model(id, g_playerModels[random_num(4, 7)])
  300. case 2: cs_set_user_model(id, g_playerModels[random_num(0, 3)])
  301. }
  302. ColorChat(id, TEAM_COLOR, "^4%s^1 Egy koszos ruha?Hmmm, ebben úgy nézel ki, mint az ellenség!",szPrefix)
  303. }
  304. case 10:
  305. {
  306. ColorChat(id, TEAM_COLOR, "^4%s^1 Hát ez üres volt...",szPrefix)
  307. }
  308. case 11:
  309. {
  310. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
  311. set_task(get_pcvar_float(LathatatlansagIdo), "NoMoreInvis", id)
  312. ColorChat(id, TEAM_COLOR, "^4%s^1 Egy köpeny?Várjunk csak, hisz ez láthatatlanná tesz!",szPrefix)
  313. }
  314. case 12:
  315. {
  316. duplasebzes[id] = true
  317. ColorChat(id, TEAM_COLOR, "^4%s^1 Keménymagvú lövedéééék??!!Dehát ez növeli a sebzést!Legális ez?",szPrefix)
  318. }
  319. case 13:
  320. {
  321. norecoil[id] = true
  322. ColorChat(id, TEAM_COLOR, "^4%s^1 Célzókészüléket találtál!Mostmár úgy lő˜sz, mintha no recoil cfg-d lenne!",szPrefix)
  323. }
  324. }
  325. }
  326. case 1:
  327. {
  328. switch(random_num(1,3))
  329. {
  330. case 1:
  331. {
  332. ColorChat(id, TEAM_COLOR, "^4%s^1 Eltéve a raktáradba!",szPrefix)
  333. dobozok[id] = dobozok[id]+1
  334. }
  335. case 2:
  336. {
  337. ColorChat(id, TEAM_COLOR, "^4%s^1 Eltéve a raktáradba!",szPrefix)
  338. dobozok[id] = dobozok[id]+1
  339. }
  340. case 3:
  341. {
  342. ColorChat(id, TEAM_COLOR, "^4%s^1 Eltéve a raktáradba!",szPrefix)
  343. dobozok[id] = dobozok[id]+1
  344. }
  345.  
  346. }
  347. }
  348.  
  349. }
  350. return PLUGIN_CONTINUE;
  351. }
  352.  
  353. public Box_R(id, rmenu, item)
  354. {
  355. if(dobozok[id]>0){
  356. switch(item)
  357. {
  358. case 0:
  359. {
  360. switch(random_num(1, 13))
  361. {
  362. case 1:
  363. {
  364. set_user_health(id,get_user_health(id)+100)
  365. ColorChat(id, TEAM_COLOR, "^4%s^1 Wow! +100 HP volt a dobozban!",szPrefix)
  366. }
  367. case 2:
  368. {
  369. set_user_health(id,get_user_health(id)-100)
  370. ColorChat(id, TEAM_COLOR, "^4%s^1 Hehe! -100 HP volt a dobozban!",szPrefix)
  371. }
  372. case 3:
  373. {
  374. give_item(id, "weapon_hegrenade")
  375. give_item(id, "weapon_flashbang")
  376. give_item(id, "weapon_flashbang")
  377. give_item(id, "weapon_smokegrenade")
  378. ColorChat(id, TEAM_COLOR, "^4%s^1 Azta! Gránátcsomagot találtál!",szPrefix)
  379. }
  380. case 4:
  381. {
  382. ColorChat(id, TEAM_COLOR, "^4%s^1 Hát ez üres volt...",szPrefix)
  383. }
  384. case 5:
  385. {
  386. set_user_footsteps(id, 1)
  387. ColorChat(id, TEAM_COLOR, "^4%s^1 Surranót kaptál!Mostmár senki sem hallja a trappod!",szPrefix)
  388. }
  389. case 6:
  390. {
  391. sebesseg[id] = true
  392. set_user_maxspeed(id, get_pcvar_float(Sebesseg))
  393. ColorChat(id, TEAM_COLOR, "^4%s^1 Te aztán felgyorsultál!Vajon mi volt abban a ládában?",szPrefix)
  394. }
  395. case 7:
  396. {
  397. ColorChat(id, TEAM_COLOR, "^4%s^1 Hát ezt üres volt...",szPrefix)
  398. }
  399. case 8:
  400. {
  401. set_user_gravity(id, get_pcvar_float(Gravity))
  402. ColorChat(id, TEAM_COLOR, "^4%s^1 Ez meg mi?Antigraviációs öv?!",szPrefix)
  403. }
  404. case 9:
  405. {
  406. switch(get_user_team(id))
  407. {
  408. case 1: cs_set_user_model(id, g_playerModels[random_num(4, 7)])
  409. case 2: cs_set_user_model(id, g_playerModels[random_num(0, 3)])
  410. }
  411. ColorChat(id, TEAM_COLOR, "^4%s^1 Egy koszos ruha?Hmmm, ebben úgy nézel ki, mint az ellenség!",szPrefix)
  412. }
  413. case 10:
  414. {
  415. ColorChat(id, TEAM_COLOR, "^4%s^1 Hát ez üres volt...",szPrefix)
  416. }
  417. case 11:
  418. {
  419. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
  420. set_task(get_pcvar_float(LathatatlansagIdo), "NoMoreInvis", id)
  421. ColorChat(id, TEAM_COLOR, "^4%s^1 Egy köpeny?Várjunk csak, hisz ez láthatatlanná tesz!",szPrefix)
  422. }
  423. case 12:
  424. {
  425. duplasebzes[id] = true
  426. ColorChat(id, TEAM_COLOR, "^4%s^1 Keménymagvú lövedéééék??!!Dehát ez növeli a sebzést!Legális ez?",szPrefix)
  427. }
  428. case 13:
  429. {
  430. norecoil[id] = true
  431. ColorChat(id, TEAM_COLOR, "^4%s^1 Célzókészüléket találtál!Mostmár úgy lő˜sz, mintha no recoil cfg-d lenne!",szPrefix)
  432. }
  433. }
  434. }
  435. case 1:
  436. {
  437. menu_cancel(id)
  438. }
  439. }
  440. }
  441. else
  442. {
  443. ColorChat(id, TEAM_COLOR, "^4%s^1 Sajnálom, nincs elég dobozod!",szPrefix)
  444. }
  445. return PLUGIN_CONTINUE;
  446. }
  447.  
  448. public remove_ent(ent)
  449. {
  450. if (pev_valid(ent))
  451. engfunc(EngFunc_RemoveEntity, ent)
  452. }
  453.  
  454. public NoMoreInvis(id)
  455. {
  456. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)
  457. ColorChat(id, TEAM_COLOR, "%s ^1%L", szPrefix, "Szerintem elszakadt a köpeny... Már nem vagyok láthatatlan.")
  458. }
  459.  
  460. public sebzes(victim, inflictor, attacker, Float:damage, damage_bits)
  461. {
  462. if(is_user_alive(attacker) && duplasebzes[attacker] && attacker != victim)
  463. SetHamParamFloat(4, damage * 2)
  464. }
  465.  
  466. public prethink(id)
  467. {
  468. if(!is_user_alive(id) || !norecoil[id])
  469. return
  470.  
  471. set_pev(id, pev_punchangle, {0.0, 0.0, 0.0})
  472. }
  473.  
  474.  
  475.  
  476. ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
  477. {
  478. if( !get_playersnum() ) return;
  479.  
  480. new message[256];
  481.  
  482. switch(type)
  483. {
  484. case NORMAL:
  485. {
  486. message[0] = 0x01;
  487. }
  488. case GREEN: // Zöld
  489. {
  490. message[0] = 0x04;
  491. }
  492. default: // SzĂĽrke, Piros, KĂ©k
  493. {
  494. message[0] = 0x03;
  495. }
  496. }
  497.  
  498. vformat(message[1], 251, msg, 4);
  499.  
  500. replace_all(message, 191, "!n", "^x01")
  501. replace_all(message, 191, "!t", "^x03")
  502. replace_all(message, 191, "!g", "^x04")
  503.  
  504. message[192] = '^0';
  505.  
  506. new team, ColorChange, index, MSG_Type;
  507.  
  508. if(id)
  509. {
  510. MSG_Type = MSG_ONE;
  511. index = id;
  512. } else {
  513. index = FindPlayer();
  514. MSG_Type = MSG_ALL;
  515. }
  516.  
  517. team = get_user_team(index);
  518. ColorChange = ColorSelection(index, MSG_Type, type);
  519.  
  520. ShowColorMessage(index, MSG_Type, message);
  521.  
  522. if(ColorChange)
  523. {
  524. Team_Info(index, MSG_Type, TeamName[team]);
  525. }
  526. }
  527.  
  528. ShowColorMessage(id, type, message[])
  529. {
  530. static bool:saytext_used;
  531. static get_user_msgid_saytext;
  532. if(!saytext_used)
  533. {
  534. get_user_msgid_saytext = get_user_msgid("SayText");
  535. saytext_used = true;
  536. }
  537. message_begin(type, get_user_msgid_saytext, _, id);
  538. write_byte(id)
  539. write_string(message);
  540. message_end();
  541. }
  542.  
  543. Team_Info(id, type, team[])
  544. {
  545. static bool:teaminfo_used;
  546. static get_user_msgid_teaminfo;
  547. if(!teaminfo_used)
  548. {
  549. get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
  550. teaminfo_used = true;
  551. }
  552. message_begin(type, get_user_msgid_teaminfo, _, id);
  553. write_byte(id);
  554. write_string(team);
  555. message_end();
  556.  
  557. return 1;
  558. }
  559.  
  560. ColorSelection(index, type, Color:Type)
  561. {
  562. switch(Type)
  563. {
  564. case RED:
  565. {
  566. return Team_Info(index, type, TeamName[1]);
  567. }
  568. case BLUE:
  569. {
  570. return Team_Info(index, type, TeamName[2]);
  571. }
  572. case GREY:
  573. {
  574. return Team_Info(index, type, TeamName[0]);
  575. }
  576. }
  577.  
  578. return 0;
  579. }
  580.  
  581. FindPlayer()
  582. {
  583. new i = -1;
  584.  
  585. while(i <= get_maxplayers())
  586. {
  587. if(is_user_connected(++i))
  588. return i;
  589. }
  590.  
  591. return -1;
  592. }
  593.  
  594.  


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  [ 11 hozzászólás ]  Oldal Előző 1 2


Ki van itt

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