hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.16. 12:54



Jelenlévő felhasználók

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

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-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ő


Új téma nyitása Hozzászólás a témához  [2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Küldi MYSQL-re
HozzászólásElküldve:2013.04.19. 21:20 
Offline
Veterán
Avatar

Csatlakozott:2013.03.26. 20:20
Hozzászólások:1846
Megköszönt másnak: 27 alkalommal
Megköszönték neki: 120 alkalommal
Vki megtudná csinálni, hogy mysql-re mentse a küldit és a vhp-t, és /reg parancssal lehessen bejelnetkezni?

Előre is köszönöm.

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <fun>
  5. #include <cstrike>
  6. #include <hamsandwich>
  7. #include <nvault>
  8. #include <dhudmessage>
  9.  
  10. #define VERSION "0.7.0"
  11.  
  12. //Maxplayers
  13. #define MAXPLAYERS 32 + 1
  14.  
  15. //Mission Types
  16. #define MISSIONS 6
  17.  
  18. //Weapons
  19. #define WEAPONS 30
  20.  
  21. //Sounds
  22. #define SOUNDS 3
  23.  
  24. //Param count
  25. #define MAXPARAMS 10
  26.  
  27. //Player tasks
  28. #define TASK_TUTOR 1111
  29. #define TASK_MISSION 2222
  30.  
  31. //Global Tasks
  32. #define TASK_CHECKTIME 999990
  33.  
  34. //Map Types
  35. #define MAP_DE (1<<1)
  36. #define MAP_CS (1<<2)
  37.  
  38. //Difficulty
  39. #define DIFFICULTY_VERYEASY 0.25
  40. #define DIFFICULTY_EASY 0.5
  41. #define DIFFICULTY_EASYNORMAL 0.75
  42. #define DIFFICULTY_NORMAL 1.0
  43. #define DIFFICULTY_HARDNORMAL 1.5
  44. #define DIFFICULTY_HARD 2.0
  45.  
  46. //Cs Teams
  47. enum
  48. {
  49. TEAM_UNASS,
  50. TEAM_T,
  51. TEAM_CT,
  52. TEAM_SPEC
  53. }
  54.  
  55. //Mission Types
  56. enum
  57. {
  58. KILL_NORMAL,
  59. KILL_WEAPON,
  60. PLANT,
  61. DEFUSE,
  62. WIN,
  63. HOSTAGE
  64. }
  65.  
  66. //Params
  67. enum
  68. {
  69. PARAM_PLAYER,
  70. PARAM_CONST,
  71. PARAM_WEAPON,
  72. PARAM_HS,
  73. PARAM_ROUND,
  74. PARAM_SURVIVE,
  75. PARAM_TIME,
  76. PARAM_TIMEAMT,
  77. PARAM_ROUNDTIMES,
  78. PARAM_ROUNDTIME_COUNT
  79. }
  80.  
  81. //Min & Max param
  82. enum
  83. {
  84. Float:PARAM_MIN,
  85. Float:PARAM_MAX
  86. }
  87.  
  88. //Tutor color
  89. enum
  90. {
  91. RED = 1,
  92. BLUE,
  93. YELLOW,
  94. GREEN
  95. }
  96.  
  97. //Mission status
  98. enum
  99. {
  100. STATUS_NORMAL,
  101. STATUS_FAILED
  102. }
  103.  
  104. //Sounds
  105. enum
  106. {
  107. SOUND_LVLUP,
  108. SOUND_OBJ,
  109. SOUND_FAILED
  110. }
  111.  
  112. //Mission description. Used to make missions TutorMsg/Chat Msg
  113. new const g_MissionDesc[MISSIONS][] = {
  114. "Ölj embereket",
  115. "Ölj embereket ezzel:",
  116. "Rakj le C4-et",
  117. "Hatástalaníts C4-et",
  118. "Nyerj köröket",
  119. "Ments túszokat"
  120. }
  121.  
  122. //Mission param Multipliers
  123. new const Float:g_MissionParams[MISSIONS][2] = {
  124. {DIFFICULTY_NORMAL , DIFFICULTY_HARD }, //Kill
  125. {DIFFICULTY_NORMAL , DIFFICULTY_NORMAL }, //Kill Weapon
  126. {DIFFICULTY_NORMAL , DIFFICULTY_HARDNORMAL }, //Plant
  127. {DIFFICULTY_NORMAL , DIFFICULTY_HARDNORMAL }, //Defuse
  128. {DIFFICULTY_VERYEASY , DIFFICULTY_EASYNORMAL }, //Win
  129. {DIFFICULTY_VERYEASY , DIFFICULTY_EASYNORMAL } //Hostage
  130. }
  131.  
  132. //Weapon names
  133. new g_WeaponNames[WEAPONS][] = {
  134. "weapon_p228",
  135. 0,
  136. "weapon_scout",
  137. "weapon_hegrenade",
  138. "weapon_xm1014",
  139. 0,
  140. "weapon_mac10",
  141. "weapon_aug",
  142. 0,
  143. "weapon_elite",
  144. "weapon_fiveseven",
  145. "weapon_ump45",
  146. "weapon_sg550",
  147. "weapon_galil",
  148. "weapon_famas",
  149. "weapon_usp",
  150. "weapon_glock18",
  151. "weapon_awp",
  152. "weapon_mp5navy",
  153. "weapon_m249",
  154. "weapon_m3",
  155. "weapon_m4a1",
  156. "weapon_tmp",
  157. "weapon_g3sg1",
  158. 0,
  159. "weapon_deagle",
  160. "weapon_sg552",
  161. "weapon_ak47",
  162. "weapon_knife",
  163. "weapon_p90"
  164. }
  165.  
  166. //Sounds
  167. new const g_Sounds[SOUNDS][] = {
  168. "r3load-zon3_sounds/levelup.wav",
  169. "plats/elevbell1.wav",
  170. "buttons/bell1.wav"
  171. }
  172.  
  173. //Resources needed to precache for Tutors.
  174. new const g_TutorPrecache[][] = {
  175. "gfx/career/icon_!.tga",
  176. "gfx/career/icon_!-bigger.tga",
  177. "gfx/career/icon_i.tga",
  178. "gfx/career/icon_i-bigger.tga",
  179. "gfx/career/icon_skulls.tga",
  180. "gfx/career/round_corner_ne.tga",
  181. "gfx/career/round_corner_nw.tga",
  182. "gfx/career/round_corner_se.tga",
  183. "gfx/career/round_corner_sw.tga",
  184. "resource/TutorScheme.res",
  185. "resource/UI/TutorTextWindow.res"
  186. }
  187.  
  188. //Map parameters(MAP_DE,MAP_CS).
  189. new g_MapParams
  190.  
  191. //Holds Hostage_Entity count(max hostages).
  192. new g_MapParamsCount
  193.  
  194. //Hostages alive in game.
  195. new g_GameHostages
  196.  
  197. //Handler entity ID.
  198. new g_HandlerEnt
  199.  
  200. //Has anyone got a time mission?
  201. new bool:g_TimerOn
  202.  
  203. //Server maxplayers
  204. new g_MaxPlayers
  205.  
  206. //Roundtime in seconds. Used in time missions.
  207. new g_RoundTimerStart
  208.  
  209. //Roundtime left(in seconds). Used in time missions.
  210. new g_RoundTimer
  211.  
  212. //RoundTime Amount Checked every round. Used for Time missions.
  213. new g_MaxRoundTimeAmt
  214.  
  215. //There variables hold the message id's.
  216. new g_MsgSay,g_MsgTutor,g_MsgTutorClose
  217. new g_MsgStatusText,g_MsgStatusValue
  218.  
  219. //Vault ID & Other
  220. new g_Vault
  221. new hp[33] = 0
  222.  
  223. //Player level
  224. new g_PlayerLevel[MAXPLAYERS]
  225.  
  226. //Player mission type(ex. Kill, plant bomb, defuse bomb e.c)
  227. new g_PlayerMissionType[MAXPLAYERS]
  228.  
  229. //Mission Time status
  230. new g_PlayerMissionTimeStatus[MAXPLAYERS]
  231.  
  232. //Can player complete his mission in the current round(for kills in round u.c?
  233. new g_PlayerMissionStatus[MAXPLAYERS]
  234.  
  235. //Specific Mission params(like Hs/Survive round,Kill e.c).
  236. new g_PlayerMissionParams[MAXPLAYERS][MAXPARAMS]
  237.  
  238. //Buttons player was holding last cmdstart frame.
  239. new g_PlayerOldButtons[MAXPLAYERS]
  240.  
  241. //Player Holding IN_SCORE(TAB) button.
  242. new g_PlayerInScore[MAXPLAYERS]
  243.  
  244. //Can show mission objectives through StatusText.
  245. new bool:g_PlayerCanShow[MAXPLAYERS]
  246.  
  247. //Is an info message currently displayed to player?
  248. new bool:g_PlayerInfoMsg[MAXPLAYERS]
  249.  
  250. //Tutur On for player | Player has tutor available.
  251. new bool:g_PlayerHasTutor[MAXPLAYERS],bool:g_PlayerHasTutor2[MAXPLAYERS]
  252.  
  253. //Is true if player just connected and hasn't spawned.
  254. new bool:g_PlayerJustConnected[MAXPLAYERS]
  255.  
  256. //Cvars
  257. new /*c_save_type,*/c_use_tutor
  258.  
  259. new c_roundtime_step
  260.  
  261. new c_min_level[MISSIONS]
  262.  
  263. new c_min_hs_level,c_min_round_level,c_min_survive_level,c_min_time_level
  264.  
  265. new c_max_in_round
  266.  
  267. new c_autocorrect_missions
  268.  
  269. //Cvar Pointers
  270. new cp_roundtime,cp_freezetime
  271.  
  272. public plugin_init() {
  273.  
  274. register_plugin("Advanced Condition Zero Style Career Missions",VERSION,"shine")
  275.  
  276. register_cvar("czscm",VERSION,FCVAR_SERVER|FCVAR_SPONLY)
  277.  
  278. //Debug
  279. register_clcmd("say /resetstats","CmdReset")
  280. //Cvars
  281. //In future releases
  282. //c_save_type = register_cvar("amx_czsm_save_type","1") //1 - nVault, 2 - MySQL
  283. c_use_tutor = register_cvar("amx_czsm_use_tutor","1")
  284.  
  285. c_roundtime_step = register_cvar("amx_czsm_roundtime_step","60") //Sec
  286.  
  287. c_min_level[KILL_NORMAL] = register_cvar("amx_czsm_min_kill_level","1")
  288. c_min_level[KILL_WEAPON] = register_cvar("amx_czsm_min_killweapon_level","5")
  289. c_min_level[PLANT] = register_cvar("amx_czsm_min_plant_level","3")
  290. c_min_level[DEFUSE] = register_cvar("amx_czsm_min_defuse_level","3")
  291. c_min_level[WIN] = register_cvar("amx_czsm_min_win_level","7")
  292. c_min_level[HOSTAGE] = register_cvar("amx_czsm_min_hostage_level","10")
  293.  
  294. c_min_hs_level = register_cvar("amx_czsm_min_hs_level","5")
  295. c_min_round_level = register_cvar("amx_czsm_min_round_level","10")
  296. c_min_survive_level = register_cvar("amx_czsm_min_survive_level","15")
  297. c_min_time_level = register_cvar("amx_czsm_min_time_level","20")
  298.  
  299. c_max_in_round = register_cvar("amx_czsm_max_in_round","5") //0 - maxplayers / 2
  300.  
  301. c_autocorrect_missions = register_cvar("amx_czsm_autocorrect_missions","1")
  302.  
  303. //Cvar Pointers
  304. cp_roundtime = get_cvar_pointer("mp_roundtime")
  305. cp_freezetime = get_cvar_pointer("mp_freezetime")
  306.  
  307. //Events
  308. register_event("DeathMsg","PlayerDeath","a")
  309. register_event("HLTV","RoundStart","a","1=0","2=0")
  310. register_event("TextMsg","HostageAliveCheck","b","1=4","2=#Killed_Hostage")
  311.  
  312. register_logevent("RoundEnd",2,"1=Round_End")
  313. register_logevent("PlayerRescueHostage",3,"1=triggered","2=Rescued_A_Hostage")
  314.  
  315. register_logevent("PlayerPlantedBomb",3,"2=Planted_The_Bomb")
  316. register_logevent("PlayerDefusedBomb",3,"2=Defused_The_Bomb")
  317.  
  318. //Audio Events
  319. register_event("SendAudio","TerroristsWin","a","2=%!MRAD_terwin")
  320. register_event("SendAudio","CTWin","a","2=%!MRAD_ctwin")
  321.  
  322. //Fakemeta Forwards
  323. register_forward(FM_CmdStart,"PlayerCmdStart")
  324.  
  325. //Ham Forwards
  326. RegisterHam(Ham_Spawn,"player","PlayerSpawn",1)
  327. RegisterHam(Ham_Think,"info_target","HandlerThink")
  328.  
  329. //Messages
  330. g_MsgSay = get_user_msgid("SayText")
  331. g_MsgTutor = get_user_msgid("TutorText")
  332. g_MsgTutorClose = get_user_msgid("TutorClose")
  333.  
  334. g_MsgStatusText = get_user_msgid("StatusText")
  335. g_MsgStatusValue = get_user_msgid("StatusValue")
  336.  
  337. //Hook Messages
  338. register_message(g_MsgStatusText,"BlockMessage")
  339. register_message(g_MsgStatusValue,"BlockMessage")
  340.  
  341. //Open nVault
  342. g_Vault = nvault_open("czstyle_missions")
  343. register_clcmd("say /vhp", "VHP_Menu")
  344.  
  345. //Get maxplayers
  346. g_MaxPlayers = get_maxplayers()
  347.  
  348. //Make the time mission handler
  349. MakeHandler()
  350.  
  351. //Check Map Params
  352. CheckMap()
  353.  
  354. //Start Configs
  355. StartCfg()
  356. }
  357.  
  358. public client_PreThink(id)
  359. {
  360. if(pev(id, pev_button) & IN_SCORE)
  361. {
  362. set_dhudmessage(0, 160, 0, -1.0, 0.80, 0, 0.2, 0.2, 0.1, 0.2)
  363. show_dhudmessage(id, "Virtualis HP-jaid: %d", hp[id])
  364. }
  365. }
  366.  
  367. public VHP_Menu(id)
  368. {
  369. new menu = menu_create("\rExtra HP-k:", "menu_handler")
  370. menu_additem(menu, "\w10 HP \r[10 VHP]", "1", 0)
  371. menu_additem(menu, "\w20 HP \r[20 VHP]", "2", 0)
  372. menu_additem(menu, "\w30 HP \r[30 VHP]", "3", 0)
  373. menu_additem(menu, "\w40 HP \r[40 VHP]", "4", 0)
  374. menu_additem(menu, "\w50 HP \r[50 VHP]", "5", 0)
  375. menu_display(id, menu, 0)
  376. }
  377. public menu_handler(id, menu, item)
  378. {
  379. if(item == MENU_EXIT)
  380. {
  381. menu_destroy(menu)
  382. return PLUGIN_HANDLED
  383. }
  384.  
  385. new data[6], szName[64]
  386. new access, callback
  387. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  388. new key = str_to_num(data)
  389.  
  390. switch(key)
  391. {
  392. case 1:
  393. {
  394. if(hp[id] < 10)
  395. {
  396. ClientPrintColor(id, "!g[R3load-Zon3] !nNincs eleg VHP-d")
  397. }
  398. else
  399. {
  400. hp[id] = hp[id] - 10
  401. set_user_health(id, get_user_health(id) + 10)
  402. ClientPrintColor(id, "!g[R3load-Zon3] !nVettel !g10 VHP!n-ert !g10 HP!n-t")
  403. }
  404. }
  405. case 2:
  406. {
  407. if(hp[id] < 20)
  408. {
  409. ClientPrintColor(id, "!g[R3load-Zon3] !nNincs eleg VHP-d")
  410. }
  411. else
  412. {
  413. hp[id] = hp[id] - 20
  414. set_user_health(id, get_user_health(id) + 20)
  415. ClientPrintColor(id, "!g[R3load-Zon3] !nVettel !g20 VHP!n-ert !g20 HP!n-t")
  416. }
  417. }
  418. case 3:
  419. {
  420. if(hp[id] < 30)
  421. {
  422. ClientPrintColor(id, "!g[R3load-Zon3] !nNincs eleg VHP-d")
  423. }
  424. else
  425. {
  426. hp[id] = hp[id] - 30
  427. set_user_health(id, get_user_health(id) + 30)
  428. ClientPrintColor(id, "!g[R3load-Zon3] !nVettel !g30 VHP!n-ert !g30 HP!n-t")
  429. }
  430. }
  431. case 4:
  432. {
  433. if(hp[id] < 40)
  434. {
  435. ClientPrintColor(id, "!g[R3load-Zon3] !nNincs eleg VHP-d")
  436. }
  437. else
  438. {
  439. hp[id] = hp[id] - 40
  440. set_user_health(id, get_user_health(id) + 40)
  441. ClientPrintColor(id, "!g[R3load-Zon3] !nVettel !g40 VHP!n-ert !g40 HP!n-t")
  442. }
  443. }
  444. case 5:
  445. {
  446. if(hp[id] < 50)
  447. {
  448. ClientPrintColor(id, "!g[R3load-Zon3] !nNincs eleg VHP-d")
  449. }
  450. else
  451. {
  452. hp[id] = hp[id] - 50
  453. set_user_health(id, get_user_health(id) + 50)
  454. ClientPrintColor(id, "!g[R3load-Zon3] !nVettel !g50 VHP!n-ert !g50 HP!n-t")
  455. }
  456. }
  457. }
  458.  
  459. menu_destroy(menu)
  460. return PLUGIN_HANDLED
  461. }
  462.  
  463. public MakeHandler() {
  464.  
  465. g_HandlerEnt = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"))
  466.  
  467. set_pev(g_HandlerEnt,pev_classname,"CZSMHandler")
  468.  
  469. set_pev(g_HandlerEnt,pev_nextthink,get_gametime() + 1.0)
  470. }
  471.  
  472. public CheckMap() {
  473.  
  474. new tVar = -1
  475.  
  476. if
  477. (
  478. engfunc(EngFunc_FindEntityByString,-1,"classname","info_bomb_target")
  479. ||
  480. engfunc(EngFunc_FindEntityByString,-1,"classname","func_bomb_target")
  481. ) {
  482. g_MapParams |= MAP_DE
  483. }
  484.  
  485. while((tVar = engfunc(EngFunc_FindEntityByString,tVar,"classname","hostage_entity")) != 0) {
  486.  
  487. if(!g_MapParamsCount) g_MapParams |= MAP_CS
  488.  
  489. g_MapParamsCount++
  490. }
  491. }
  492.  
  493. public StartCfg() {
  494.  
  495. g_RoundTimerStart = floatround(get_pcvar_float(cp_roundtime) * 60.0)
  496. g_RoundTimer = g_RoundTimerStart
  497.  
  498. g_GameHostages = g_MapParamsCount
  499.  
  500. g_MaxRoundTimeAmt = floatround(get_pcvar_float(cp_roundtime) * 60) / get_pcvar_num(c_roundtime_step)
  501. }
  502.  
  503. //Debug
  504. public CmdReset(id) {
  505.  
  506. new i
  507.  
  508. g_PlayerLevel[id] = 0
  509.  
  510. g_PlayerMissionType[id] = 0
  511.  
  512. for(i = 0; i < 4; i++) g_PlayerMissionParams[id][i] = 0
  513.  
  514. SaveMission(id)
  515. }
  516.  
  517. public plugin_precache() {
  518.  
  519. new i
  520.  
  521. for(i = 0; i < sizeof g_TutorPrecache; i++) precache_generic(g_TutorPrecache[i])
  522.  
  523. for(i = 0; i < sizeof g_Sounds; i++) precache_sound(g_Sounds[i])
  524. }
  525.  
  526. public client_putinserver(id) {
  527.  
  528. if(!is_user_bot(id)) {
  529.  
  530. g_PlayerJustConnected[id] = true
  531.  
  532. if(!get_pcvar_num(c_use_tutor)) g_PlayerHasTutor[id] = false
  533.  
  534. set_task(0.3,"CheckPlayerInfo",id)
  535.  
  536. LoadMission(id)
  537.  
  538. loadvhp(id)
  539. }
  540. }
  541.  
  542. public client_disconnect(id) {
  543.  
  544. if(!is_user_bot(id)) {
  545.  
  546. new i
  547.  
  548. if(g_PlayerMissionParams[id][PARAM_ROUND]) {
  549.  
  550. g_PlayerMissionParams[id][PARAM_PLAYER] = 0
  551. }
  552.  
  553. SaveMission(id)
  554.  
  555. savevhp(id)
  556.  
  557. g_PlayerLevel[id] = 0
  558.  
  559. g_PlayerMissionType[id] = 0
  560.  
  561. g_PlayerMissionStatus[id] = STATUS_NORMAL
  562.  
  563. g_PlayerMissionTimeStatus[id] = STATUS_NORMAL
  564.  
  565. g_PlayerInfoMsg[id] = false
  566.  
  567. g_PlayerInScore[id] = false
  568.  
  569. g_PlayerCanShow[id] = true
  570.  
  571. for(i = 0; i < MAXPARAMS; i++) g_PlayerMissionParams[id][i] = 0
  572.  
  573. remove_task(id + TASK_TUTOR)
  574. remove_task(id + TASK_MISSION)
  575. }
  576.  
  577. CheckStatus()
  578. }
  579.  
  580. public CheckPlayerInfo(id) {
  581.  
  582. new Info[33]
  583. get_user_info(id,"cl_tutor",Info,32)
  584.  
  585. if(Info[0] != '1') {
  586.  
  587. client_cmd(id,"setinfo cl_tutor 1")
  588.  
  589. g_PlayerHasTutor2[id] = false
  590. }
  591. else {
  592.  
  593. g_PlayerHasTutor2[id] = true
  594. }
  595.  
  596. if(get_pcvar_num(c_use_tutor) && g_PlayerHasTutor2[id]) {
  597.  
  598. g_PlayerHasTutor[id] = true
  599. }
  600. else {
  601.  
  602. g_PlayerHasTutor[id] = false
  603. }
  604. }
  605.  
  606. public PlayerDeath() {
  607.  
  608. new Killer = read_data(1)
  609. new Victim = read_data(2)
  610.  
  611. RemoveTutor(Victim + TASK_TUTOR)
  612.  
  613. if(g_PlayerMissionParams[Killer][PARAM_ROUND]) CheckPlayerMission(Killer,1)
  614.  
  615. if(g_PlayerMissionTimeStatus[Killer] == STATUS_FAILED) return PLUGIN_CONTINUE
  616.  
  617. if
  618. (
  619. Killer != Victim
  620. &&
  621. get_user_team(Killer) != get_user_team(Victim)
  622. &&
  623. (
  624. g_PlayerMissionType[Killer] == KILL_NORMAL
  625. ||
  626. g_PlayerMissionType[Killer] == KILL_WEAPON
  627. )
  628. &&
  629. !is_user_bot(Killer)
  630. &&
  631. is_user_alive(Killer)
  632. ) {
  633.  
  634. if(g_PlayerMissionType[Killer] == KILL_NORMAL) {
  635.  
  636. new HeadShot = read_data(3)
  637.  
  638. if(g_PlayerMissionParams[Killer][PARAM_HS] && HeadShot || !g_PlayerMissionParams[Killer][PARAM_HS]) {
  639.  
  640. g_PlayerMissionParams[Killer][PARAM_PLAYER]++
  641.  
  642. client_cmd(Killer,"spk ^"%s^"",g_Sounds[SOUND_OBJ])
  643.  
  644. if(!g_PlayerMissionParams[Killer][PARAM_SURVIVE]) {
  645.  
  646. CheckPlayerMission(Killer,1)
  647. }
  648. else {
  649.  
  650. CheckPlayerMission(Killer,0)
  651. }
  652. }
  653. }
  654.  
  655. else if(g_PlayerMissionType[Killer] == KILL_WEAPON) {
  656.  
  657. new Weapon[16],wWeapon[16],HeadShot
  658.  
  659. read_data(4,Weapon,15)
  660.  
  661. HeadShot = read_data(3)
  662.  
  663. if(equal(Weapon,"grenade")) {
  664.  
  665. formatex(wWeapon,15,"%s",g_WeaponNames[g_PlayerMissionParams[Killer][PARAM_WEAPON]][9])
  666. }
  667. else {
  668.  
  669. formatex(wWeapon,15,"%s",g_WeaponNames[g_PlayerMissionParams[Killer][PARAM_WEAPON]][7])
  670. }
  671.  
  672. if(equal(Weapon,wWeapon)) {
  673.  
  674. if(g_PlayerMissionParams[Killer][PARAM_HS] && HeadShot || !g_PlayerMissionParams[Killer][PARAM_HS]) {
  675.  
  676. g_PlayerMissionParams[Killer][PARAM_PLAYER]++
  677.  
  678. client_cmd(Killer,"spk ^"%s^"",g_Sounds[SOUND_OBJ])
  679.  
  680. if(!g_PlayerMissionParams[Killer][PARAM_SURVIVE]) {
  681.  
  682. CheckPlayerMission(Killer,1)
  683. }
  684. else {
  685.  
  686. CheckPlayerMission(Killer,0)
  687. }
  688. }
  689. }
  690. }
  691. }
  692.  
  693. CheckStatus()
  694.  
  695. return PLUGIN_CONTINUE
  696. }
  697.  
  698. public RoundEnd() {
  699.  
  700. new i,TutorOn = get_pcvar_num(c_use_tutor)
  701.  
  702. for(i = 0; i < MAXPLAYERS; i++) {
  703.  
  704. if(is_user_connected(i)) {
  705.  
  706. if(TutorOn && g_PlayerHasTutor2[i]) g_PlayerHasTutor[i] = true
  707. else g_PlayerHasTutor[i] = false
  708.  
  709. if(g_PlayerMissionParams[i][PARAM_SURVIVE] && is_user_alive(i)) CheckPlayerMission(i,1)
  710.  
  711. if(g_PlayerMissionParams[i][PARAM_ROUND] || g_PlayerMissionParams[i][PARAM_SURVIVE]) {
  712.  
  713. g_PlayerMissionParams[i][PARAM_PLAYER] = 0
  714. }
  715.  
  716. g_PlayerMissionStatus[i] = STATUS_NORMAL
  717.  
  718. g_PlayerMissionTimeStatus[i] = STATUS_NORMAL
  719. }
  720. }
  721. }
  722.  
  723. public PlayerRescueHostage() {
  724.  
  725. new LogArgs[128],Name[33],i
  726.  
  727. read_logargv(0,LogArgs,127)
  728.  
  729. parse_loguser(LogArgs,Name,32)
  730.  
  731. new id = get_user_index(Name)
  732.  
  733. if(g_PlayerMissionType[id] == HOSTAGE && !is_user_bot(id) && g_PlayerMissionTimeStatus[id] == STATUS_NORMAL) {
  734.  
  735. g_PlayerMissionParams[id][PARAM_PLAYER]++
  736.  
  737. client_cmd(id,"spk ^"%s^"",g_Sounds[SOUND_OBJ])
  738.  
  739. if(!g_PlayerMissionParams[id][PARAM_SURVIVE]) {
  740.  
  741. CheckPlayerMission(id,1)
  742. }
  743. else {
  744.  
  745. CheckPlayerMission(id,0)
  746. }
  747. }
  748.  
  749. g_GameHostages--
  750.  
  751. for(i = 0; i < MAXPLAYERS; i++) {
  752.  
  753. if(
  754. is_user_alive(i) &&
  755. !is_user_bot(i) &&
  756. g_PlayerMissionType[i] == HOSTAGE &&
  757. i != id &&
  758. g_GameHostages > g_PlayerMissionParams[i][PARAM_PLAYER] &&
  759. g_PlayerMissionParams[i][PARAM_ROUND]
  760. ) {
  761.  
  762. if(g_PlayerMissionTimeStatus[i] == STATUS_NORMAL) client_cmd(i,"spk ^"%s^"",g_Sounds[SOUND_FAILED])
  763.  
  764. g_PlayerMissionStatus[i] = STATUS_FAILED
  765.  
  766. CheckPlayerMission(i,0)
  767. }
  768. }
  769. }
  770.  
  771. public RoundStart() {
  772.  
  773. g_TimerOn = false
  774.  
  775. remove_task(TASK_CHECKTIME)
  776.  
  777. set_task(get_pcvar_float(cp_freezetime),"CheckTimer",TASK_CHECKTIME)
  778. }
  779.  
  780. public HostageAliveCheck() {
  781.  
  782. new i
  783.  
  784. g_GameHostages--
  785.  
  786. for(i = 0; i < MAXPLAYERS; i++) {
  787.  
  788. if(is_user_alive(i) && !is_user_bot(i) && g_PlayerMissionType[i] == HOSTAGE && g_GameHostages > g_PlayerMissionParams[i][PARAM_PLAYER] && g_PlayerMissionParams[i][PARAM_ROUND]) {
  789.  
  790. if(g_PlayerMissionTimeStatus[i] == STATUS_NORMAL) client_cmd(i,"spk ^"%s^"",g_Sounds[SOUND_FAILED])
  791.  
  792. g_PlayerMissionStatus[i] = STATUS_FAILED
  793.  
  794. CheckPlayerMission(i,0)
  795. }
  796. }
  797. }
  798.  
  799. public CheckTimer() {
  800.  
  801. new bool:AnyoneHasTimer,i
  802.  
  803. for(i = 0; i < MAXPLAYERS; i++) {
  804.  
  805. if(is_user_alive(i) && g_PlayerMissionParams[i][PARAM_TIME]) {
  806.  
  807. AnyoneHasTimer = true
  808.  
  809. break
  810. }
  811. }
  812.  
  813. if(AnyoneHasTimer) {
  814.  
  815. g_RoundTimerStart = floatround(get_pcvar_float(cp_roundtime) * 60.0)
  816. g_RoundTimer = g_RoundTimerStart
  817.  
  818. g_TimerOn = true
  819. }
  820. else {
  821.  
  822. g_TimerOn = false
  823. }
  824. }
  825.  
  826.  
  827. public PlayerPlantedBomb() {
  828.  
  829. new LogArgs[128],Name[33],i
  830.  
  831. read_logargv(0,LogArgs,127)
  832.  
  833. parse_loguser(LogArgs,Name,32)
  834.  
  835. new id = get_user_index(Name)
  836.  
  837. if(g_PlayerMissionType[id] == PLANT && !is_user_bot(id) && g_PlayerMissionTimeStatus[id] == STATUS_NORMAL) {
  838.  
  839. g_PlayerMissionParams[id][PARAM_PLAYER]++
  840.  
  841. client_cmd(id,"spk ^"%s^"",g_Sounds[SOUND_OBJ])
  842.  
  843. if(!g_PlayerMissionParams[id][PARAM_SURVIVE]) {
  844.  
  845. CheckPlayerMission(id,1)
  846. }
  847. else {
  848.  
  849. CheckPlayerMission(id,0)
  850. }
  851. }
  852.  
  853. for(i = 0; i < MAXPLAYERS; i++) {
  854.  
  855. if(is_user_alive(i) && !is_user_bot(i) && g_PlayerMissionType[i] == PLANT && i != id) {
  856.  
  857. if(g_PlayerMissionTimeStatus[i] == STATUS_NORMAL) client_cmd(i,"spk ^"%s^"",g_Sounds[SOUND_FAILED])
  858.  
  859. g_PlayerMissionStatus[i] = STATUS_FAILED
  860.  
  861. CheckPlayerMission(i,0)
  862. }
  863. }
  864. }
  865.  
  866. public PlayerDefusedBomb() {
  867.  
  868. new LogArgs[128],Name[33],i
  869.  
  870. read_logargv(0,LogArgs,127)
  871.  
  872. parse_loguser(LogArgs,Name,32)
  873.  
  874. new id = get_user_index(Name)
  875.  
  876. if(g_PlayerMissionType[id] == DEFUSE && !is_user_bot(id) && g_PlayerMissionTimeStatus[id] == STATUS_NORMAL) {
  877.  
  878. g_PlayerMissionParams[id][PARAM_PLAYER]++
  879.  
  880. client_cmd(id,"spk ^"%s^"",g_Sounds[SOUND_OBJ])
  881.  
  882. if(!g_PlayerMissionParams[id][PARAM_SURVIVE]) {
  883.  
  884. CheckPlayerMission(id,1)
  885. }
  886. else {
  887.  
  888. CheckPlayerMission(id,0)
  889. }
  890. }
  891.  
  892. for(i = 0; i < MAXPLAYERS; i++) {
  893.  
  894. if(is_user_alive(i) && !is_user_bot(i) && g_PlayerMissionType[i] == DEFUSE && i != id) {
  895.  
  896. if(g_PlayerMissionTimeStatus[i] == STATUS_NORMAL) client_cmd(i,"spk ^"%s^"",g_Sounds[SOUND_FAILED])
  897.  
  898. g_PlayerMissionStatus[i] = STATUS_FAILED
  899.  
  900. CheckPlayerMission(i,0)
  901. }
  902. }
  903. }
  904.  
  905. public TerroristsWin() {
  906.  
  907. new i
  908.  
  909. for(i = 0; i < MAXPLAYERS; i++) {
  910.  
  911. if(is_user_alive(i) && get_user_team(i) == TEAM_T && !is_user_bot(i) && g_PlayerMissionType[i] == WIN && g_PlayerMissionTimeStatus[i] == STATUS_NORMAL) {
  912.  
  913. g_PlayerMissionParams[i][PARAM_PLAYER]++
  914.  
  915. client_cmd(i,"spk ^"%s^"",g_Sounds[SOUND_OBJ])
  916.  
  917. CheckPlayerMission(i,1)
  918. }
  919. }
  920. }
  921.  
  922. public CTWin() {
  923.  
  924. new i
  925.  
  926. for(i = 0; i < MAXPLAYERS; i++) {
  927.  
  928. if(is_user_alive(i) && get_user_team(i) == TEAM_CT && !is_user_bot(i) && g_PlayerMissionType[i] == WIN && g_PlayerMissionTimeStatus[i] == STATUS_NORMAL) {
  929.  
  930. g_PlayerMissionParams[i][PARAM_PLAYER]++
  931.  
  932. client_cmd(i,"spk ^"%s^"",g_Sounds[SOUND_OBJ])
  933.  
  934. CheckPlayerMission(i,1)
  935. }
  936. }
  937. }
  938.  
  939. public PlayerCmdStart(id,Uc_Handle,Seed) {
  940.  
  941. static Buttons
  942.  
  943. Buttons = get_uc(Uc_Handle,UC_Buttons)
  944.  
  945. if(Buttons & IN_SCORE && !(g_PlayerOldButtons[id] & IN_SCORE)) {
  946.  
  947. g_PlayerInScore[id] = true
  948.  
  949. if(!g_PlayerInfoMsg[id]) {
  950.  
  951. CheckPlayerMission(id,0)
  952. }
  953. }
  954. else if(!(Buttons & IN_SCORE) && g_PlayerOldButtons[id] & IN_SCORE) {
  955.  
  956. g_PlayerInScore[id] = false
  957.  
  958. if(!g_PlayerInfoMsg[id]) {
  959.  
  960. if(g_PlayerHasTutor[id]) {
  961.  
  962. RemoveTutor(id + TASK_TUTOR)
  963. }
  964. else {
  965.  
  966. HideStatusText(id)
  967. }
  968. }
  969. }
  970.  
  971. g_PlayerOldButtons[id] = Buttons
  972.  
  973. return FMRES_IGNORED
  974. }
  975.  
  976. public PlayerSpawn(id) {
  977.  
  978. if(!is_user_alive(id) || is_user_bot(id)) return HAM_IGNORED
  979.  
  980. CheckStatus()
  981.  
  982. //RemoveTutor(id +TASK_TUTOR)
  983.  
  984. if(g_PlayerJustConnected[id]) {
  985.  
  986. g_PlayerJustConnected[id] = false
  987.  
  988. new Text[192],Level[4]
  989.  
  990. formatex(Level,3,"%d",g_PlayerLevel[id])
  991.  
  992. if(g_PlayerHasTutor[id]) {
  993.  
  994. formatex(Text,191,"Üdv a karrier módban!^n^n%s%s.",g_PlayerLevel[id] == 0 ?
  995. "Üdv újonc! Első alkalommal játszol itt?^nNe aggódj, ezek az üzenetek végigvezetnek a karriered során!" :
  996. "Üdv újra! Ezen a szinten vagy: ",
  997. g_PlayerLevel[id] == 0 ? "" : Level
  998.  
  999. )
  1000.  
  1001. g_PlayerInfoMsg[id] = true
  1002.  
  1003. MakeTutor(id,Text,YELLOW,10.0)
  1004. }
  1005. else {
  1006.  
  1007. formatex(Text,191,"^x04[AMXX]^x01 Welcome to CZ Style Missions Mod!")
  1008.  
  1009. ColorPrint(id,Text)
  1010.  
  1011. formatex(Text,191,"^x04[AMXX]^x01 %s%s.",g_PlayerLevel[id] == 0 ?
  1012. "Hello there Newb. Is this the first time you play here?^nDon't worry! Just complete missions displayed in chat to level up" :
  1013. "Welcome back! You're on level ",
  1014. g_PlayerLevel[id] == 0 ? "" : Level
  1015. )
  1016.  
  1017. g_PlayerInfoMsg[id] = false
  1018.  
  1019. ColorPrint(id,Text)
  1020. }
  1021.  
  1022. if(!g_PlayerLevel[id]) {
  1023.  
  1024. g_PlayerLevel[id] = 1
  1025.  
  1026. MakeMission(id,g_PlayerLevel[id],0)
  1027. }
  1028. else {
  1029.  
  1030. if
  1031. (
  1032. (
  1033. (
  1034. (
  1035. g_PlayerMissionType[id] == PLANT || g_PlayerMissionType[id] == DEFUSE
  1036. )
  1037. &&
  1038. !(g_MapParams & MAP_DE)
  1039. )
  1040. ||
  1041. (
  1042. g_PlayerMissionType[id] == HOSTAGE
  1043. &&
  1044. !(g_MapParams & MAP_CS)
  1045. )
  1046. )
  1047. &&
  1048. get_pcvar_num(c_autocorrect_missions)
  1049. ) {
  1050.  
  1051. MakeMission(id,g_PlayerLevel[id])
  1052. }
  1053.  
  1054. if(g_PlayerMissionType[id] == HOSTAGE && g_PlayerMissionParams[id][PARAM_ROUND] && g_PlayerMissionParams[id][PARAM_CONST] > g_MapParamsCount && get_pcvar_num(c_autocorrect_missions)) {
  1055.  
  1056. g_PlayerMissionParams[id][PARAM_CONST] = g_MapParamsCount
  1057. }
  1058.  
  1059. if(g_PlayerMissionParams[id][PARAM_TIMEAMT] > g_MaxRoundTimeAmt) g_PlayerMissionParams[id][PARAM_TIMEAMT] = g_MaxRoundTimeAmt
  1060. }
  1061.  
  1062. set_task(10.1,"CheckPlayerMissionT",id + TASK_MISSION)
  1063.  
  1064. return HAM_IGNORED
  1065. }
  1066.  
  1067. if(g_PlayerMissionParams[id][PARAM_TIMEAMT] > g_MaxRoundTimeAmt) g_PlayerMissionParams[id][PARAM_TIMEAMT] = g_MaxRoundTimeAmt
  1068.  
  1069. g_PlayerInScore[id] = false
  1070.  
  1071. //remove_task(id + TASK_TUTOR)
  1072.  
  1073. if(!task_exists(id + TASK_MISSION)) CheckPlayerMission(id,0)
  1074.  
  1075. return HAM_IGNORED
  1076. }
  1077.  
  1078. public HandlerThink(Ent) {
  1079.  
  1080. if(Ent == g_HandlerEnt) {
  1081.  
  1082. if(g_TimerOn && g_RoundTimer) {
  1083.  
  1084. g_RoundTimer--
  1085.  
  1086. static i,TimePassed,PlayerTimeLeft
  1087.  
  1088. TimePassed = g_RoundTimerStart - g_RoundTimer
  1089.  
  1090. for(i = 0; i < MAXPLAYERS; i++) {
  1091.  
  1092. if
  1093. (
  1094. is_user_alive(i)
  1095. &&
  1096. !is_user_bot(i)
  1097. &&
  1098. g_PlayerMissionParams[i][PARAM_TIME]
  1099. &&
  1100. g_PlayerMissionTimeStatus[i] == STATUS_NORMAL
  1101. ) {
  1102.  
  1103. PlayerTimeLeft = (g_PlayerMissionParams[i][PARAM_TIMEAMT] * 60) - TimePassed
  1104.  
  1105. if(PlayerTimeLeft <= 0) {
  1106.  
  1107. if(g_PlayerMissionParams[i][PARAM_PLAYER] < g_PlayerMissionParams[i][PARAM_CONST]) {
  1108.  
  1109. g_PlayerMissionTimeStatus[i] = STATUS_FAILED
  1110.  
  1111. CheckPlayerMission(i,0)
  1112. }
  1113. }
  1114. else {
  1115.  
  1116. set_hudmessage(255,255,255,-1.0,0.90,0,6.0,1.0)
  1117. show_hudmessage(i, "Küldetés: %d mp van hátra, hogy teljesítsd!",PlayerTimeLeft)
  1118. }
  1119. }
  1120. }
  1121. }
  1122.  
  1123. set_pev(Ent,pev_nextthink,get_gametime() + 1.0)
  1124. }
  1125.  
  1126. return HAM_IGNORED
  1127. }
  1128.  
  1129. public BlockMessage(MsgID,MsgDest,id) {
  1130.  
  1131. if(!g_PlayerHasTutor[id] && g_PlayerInScore[id]) {
  1132.  
  1133. new Args[3]
  1134. get_msg_arg_string(2,Args,2)
  1135.  
  1136. if(Args[0] != 'L' || Args[1] != 'v' || Args[2] != 'l') {
  1137.  
  1138. return PLUGIN_HANDLED
  1139. }
  1140. }
  1141.  
  1142. return PLUGIN_CONTINUE
  1143. }
  1144.  
  1145. MakeMission(id,Level,UpdateTutor = 1) {
  1146.  
  1147. new i,Weapon = -1,Float:DifficultyMulti = DIFFICULTY_NORMAL
  1148.  
  1149. g_PlayerMissionType[id] = RandomMission(Level)
  1150.  
  1151. if(g_PlayerMissionType[id] < 0) return 1
  1152.  
  1153. for(i = 0; i < MAXPARAMS; i++) g_PlayerMissionParams[id][i] = 0
  1154.  
  1155. if(g_PlayerMissionType[id] == KILL_WEAPON) {
  1156.  
  1157. while(Weapon < 0) {
  1158.  
  1159. Weapon = random_num(0,WEAPONS - 1)
  1160.  
  1161. if(g_WeaponNames[Weapon][0] == 0) Weapon = -1
  1162.  
  1163. }
  1164.  
  1165. g_PlayerMissionParams[id][PARAM_WEAPON] = Weapon
  1166.  
  1167. if(Weapon != CSW_HEGRENADE - 1) {
  1168.  
  1169. if(get_pcvar_num(c_min_hs_level) <= Level) g_PlayerMissionParams[id][PARAM_HS] = random_num(0,1)
  1170.  
  1171. if(get_pcvar_num(c_min_round_level) <= Level) {
  1172.  
  1173. g_PlayerMissionParams[id][PARAM_ROUND] = random_num(0,1)
  1174. }
  1175. }
  1176. }
  1177. else if(g_PlayerMissionType[id] == KILL_NORMAL) {
  1178.  
  1179. if(Weapon != CSW_HEGRENADE - 1) {
  1180.  
  1181. if(get_pcvar_num(c_min_hs_level) <= Level) g_PlayerMissionParams[id][PARAM_HS] = random_num(0,1)
  1182.  
  1183. if(get_pcvar_num(c_min_round_level) <= Level) g_PlayerMissionParams[id][PARAM_ROUND] = random_num(0,1)
  1184. }
  1185. }
  1186.  
  1187. if(g_PlayerMissionType[id] == HOSTAGE ) {
  1188.  
  1189. if(get_pcvar_num(c_min_round_level) <= Level) g_PlayerMissionParams[id][PARAM_ROUND] = random_num(0,1)
  1190. }
  1191.  
  1192.  
  1193. if(g_PlayerMissionType[id] != DEFUSE && g_PlayerMissionType[id] != WIN && get_pcvar_num(c_min_survive_level) <= Level) {
  1194.  
  1195. g_PlayerMissionParams[id][PARAM_SURVIVE] = random_num(0,1)
  1196.  
  1197. if(g_PlayerMissionParams[id][PARAM_SURVIVE]) {
  1198.  
  1199. DifficultyMulti *= DIFFICULTY_EASYNORMAL
  1200. }
  1201. }
  1202.  
  1203. if(!g_PlayerMissionParams[id][PARAM_ROUND] && g_PlayerMissionType[id] != DEFUSE && get_pcvar_num(c_min_time_level) <= Level) {
  1204.  
  1205. g_PlayerMissionParams[id][PARAM_TIME] = random_num(0,1)
  1206.  
  1207. if(g_PlayerMissionParams[id][PARAM_TIME]) {
  1208.  
  1209. i = random_num(1,g_MaxRoundTimeAmt)
  1210.  
  1211. g_PlayerMissionParams[id][PARAM_TIMEAMT] = i
  1212.  
  1213. DifficultyMulti *= DIFFICULTY_NORMAL / 4 * i
  1214. }
  1215. }
  1216.  
  1217. //Yes, i'm making variables.
  1218. static Float:Rand,Float:Lvl,MaxInRound
  1219.  
  1220. Rand = random_float
  1221. (
  1222. g_MissionParams[g_PlayerMissionType[id]][PARAM_MIN],
  1223. g_MissionParams[g_PlayerMissionType[id]][PARAM_MAX]
  1224. )
  1225.  
  1226. Lvl = float(Level)
  1227.  
  1228. g_PlayerMissionParams[id][PARAM_CONST] = floatround(Rand * Lvl * DifficultyMulti)
  1229.  
  1230. if(g_PlayerMissionParams[id][PARAM_CONST] < 1) g_PlayerMissionParams[id][PARAM_CONST] = 1
  1231.  
  1232. if(g_PlayerMissionParams[id][PARAM_CONST] < 2 && g_PlayerMissionParams[id][PARAM_ROUND]) g_PlayerMissionParams[id][PARAM_CONST] = 2
  1233.  
  1234. MaxInRound = get_pcvar_num(c_max_in_round) ? get_pcvar_num(c_max_in_round) : g_MaxPlayers / 2
  1235.  
  1236. if(g_PlayerMissionParams[id][PARAM_ROUND] || g_PlayerMissionParams[id][PARAM_TIME]) {
  1237.  
  1238. if(g_PlayerMissionParams[id][PARAM_CONST] > MaxInRound && (g_PlayerMissionType[id] == KILL_NORMAL || g_PlayerMissionType[id] == KILL_WEAPON)) {
  1239.  
  1240. g_PlayerMissionParams[id][PARAM_ROUNDTIMES] = g_PlayerMissionParams[id][PARAM_CONST] / MaxInRound + ((g_PlayerMissionParams[id][PARAM_CONST] % MaxInRound > 0) ? 1 : 0)
  1241. g_PlayerMissionParams[id][PARAM_CONST] = MaxInRound
  1242. }
  1243. else if(g_PlayerMissionParams[id][PARAM_CONST] > g_MapParamsCount && g_PlayerMissionType[id] == HOSTAGE) {
  1244.  
  1245. g_PlayerMissionParams[id][PARAM_ROUNDTIMES] = g_PlayerMissionParams[id][PARAM_CONST] / g_MapParamsCount + ((g_PlayerMissionParams[id][PARAM_CONST] % g_MapParamsCount != 0) ? 1 : 0)
  1246. g_PlayerMissionParams[id][PARAM_CONST] = g_MapParamsCount
  1247. }
  1248. }
  1249.  
  1250. new Plrs[3]
  1251.  
  1252. for(i = 0; i < MAXPLAYERS; i++) {
  1253.  
  1254. if(is_user_alive(i)) {
  1255.  
  1256. switch(get_user_team(i)) {
  1257.  
  1258. case TEAM_T : Plrs[TEAM_T]++
  1259.  
  1260. case TEAM_CT : Plrs[TEAM_CT]++
  1261. }
  1262. }
  1263. }
  1264.  
  1265. if((g_PlayerMissionType[id] == KILL_NORMAL || g_PlayerMissionType[id] == KILL_WEAPON) && g_PlayerMissionParams[id][PARAM_ROUND]) {
  1266.  
  1267. if(
  1268. g_PlayerMissionParams[id][PARAM_CONST] - g_PlayerMissionParams[id][PARAM_PLAYER] >
  1269. Plrs[get_user_team(id) == TEAM_CT ? TEAM_T : TEAM_CT]
  1270. ) {
  1271. if(g_PlayerMissionTimeStatus[id] == STATUS_NORMAL) client_cmd(id,"spk ^"%s^"",g_Sounds[SOUND_FAILED])
  1272.  
  1273. g_PlayerMissionStatus[id] = STATUS_FAILED
  1274. }
  1275. else {
  1276.  
  1277. g_PlayerMissionStatus[id] = STATUS_NORMAL
  1278. }
  1279. }
  1280.  
  1281. if(UpdateTutor) CheckPlayerMission(id,0)
  1282.  
  1283. return 1
  1284. }
  1285.  
  1286. public CheckPlayerMissionT(taskID) {
  1287.  
  1288. new id = taskID - TASK_MISSION
  1289.  
  1290. CheckPlayerMission(id,0)
  1291. }
  1292.  
  1293. public CheckPlayerMission(id,CheckWin) {
  1294.  
  1295. static Text[192],sMission[33],TimeStr[16],RoundTimeStr[33]
  1296.  
  1297. if(g_PlayerMissionParams[id][PARAM_PLAYER] > g_PlayerMissionParams[id][PARAM_CONST]) {
  1298.  
  1299. g_PlayerMissionParams[id][PARAM_PLAYER] = g_PlayerMissionParams[id][PARAM_CONST]
  1300. }
  1301.  
  1302. if
  1303. (
  1304. g_PlayerMissionParams[id][PARAM_PLAYER] == g_PlayerMissionParams[id][PARAM_CONST]
  1305. &&
  1306. g_PlayerMissionParams[id][PARAM_CONST]
  1307. &&
  1308. CheckWin
  1309. ) {
  1310.  
  1311. if(g_PlayerMissionParams[id][PARAM_ROUNDTIMES] > 0) {
  1312.  
  1313. g_PlayerMissionParams[id][PARAM_ROUNDTIME_COUNT]++
  1314.  
  1315. g_PlayerMissionParams[id][PARAM_PLAYER] = 0
  1316. }
  1317.  
  1318. if(g_PlayerMissionParams[id][PARAM_ROUNDTIMES] == g_PlayerMissionParams[id][PARAM_ROUNDTIME_COUNT]) {
  1319.  
  1320. static i
  1321.  
  1322. g_PlayerLevel[id]++
  1323.  
  1324.  
  1325. if(g_PlayerHasTutor[id]) {
  1326.  
  1327. formatex(Text,191,"%sKüldetés teljesítve! Te ezen a szinten vagy: %s%d%s!",
  1328. g_PlayerHasTutor[id] == false ? "^x04[Küldetés]^x01 " : "",
  1329. g_PlayerHasTutor[id] == false ? "^x03" : "",
  1330. g_PlayerLevel[id],
  1331. g_PlayerHasTutor[id] == false ? "^x01" : "",
  1332. g_PlayerHasTutor[id] == false ? "^x03" : ""
  1333. )
  1334.  
  1335. g_PlayerInfoMsg[id] = true
  1336.  
  1337. MakeTutor(id,Text,GREEN,4.9)
  1338.  
  1339. }
  1340. else {
  1341.  
  1342. ColorPrint(id,Text)
  1343. }
  1344.  
  1345. g_PlayerMissionType[id] = 0
  1346.  
  1347. for(i = 0; i < MAXPARAMS; i++) g_PlayerMissionParams[id][i] = 0
  1348.  
  1349. MakeMission(id,g_PlayerLevel[id],0)
  1350.  
  1351. set_task(5.0,"CheckPlayerMissionT",id + TASK_MISSION)
  1352.  
  1353. client_cmd(id,"spk ^"%s^"",g_Sounds[SOUND_LVLUP])
  1354.  
  1355. switch(random_num(1,4))
  1356. {
  1357.  
  1358. case 1:
  1359.  
  1360. {
  1361.  
  1362. hp[id] = hp[id] + 3
  1363.  
  1364. }
  1365.  
  1366. case 2:
  1367.  
  1368. {
  1369.  
  1370. cs_set_user_money(id, (cs_get_user_money(id) + 5000))
  1371.  
  1372. }
  1373.  
  1374. case 3:
  1375.  
  1376. {
  1377.  
  1378. give_item(id, "weapon_deagle")
  1379.  
  1380. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  1381.  
  1382. }
  1383.  
  1384. case 4:
  1385.  
  1386. {
  1387.  
  1388. give_item(id, "weapon_hegrenade")
  1389.  
  1390. give_item(id, "weapon_flashbang")
  1391.  
  1392. give_item(id, "weapon_flashbang")
  1393.  
  1394. give_item(id, "weapon_smokegrenade")
  1395.  
  1396. give_item(id, "item_assaultsuit")
  1397.  
  1398. give_item(id, "item_thingpack")
  1399.  
  1400. }
  1401.  
  1402. }
  1403. }
  1404.  
  1405. return PLUGIN_CONTINUE
  1406. }
  1407.  
  1408. if(!is_user_alive(id)) return PLUGIN_CONTINUE
  1409.  
  1410. if(g_PlayerMissionType[id] == KILL_WEAPON) {
  1411.  
  1412. formatex(sMission,32,"%s ",g_WeaponNames[g_PlayerMissionParams[id][PARAM_WEAPON]][7])
  1413. }
  1414.  
  1415. if(g_PlayerMissionParams[id][PARAM_TIME]) {
  1416.  
  1417. formatex(TimeStr,15,"ennyi idő alatt: %d mp. ",g_PlayerMissionParams[id][PARAM_TIMEAMT] * 60)
  1418. }
  1419.  
  1420. if(g_PlayerMissionParams[id][PARAM_ROUNDTIMES] > 0) {
  1421.  
  1422. formatex(RoundTimeStr,32," csináld meg ennyiszer: %d/%d ",g_PlayerMissionParams[id][PARAM_ROUNDTIME_COUNT],g_PlayerMissionParams[id][PARAM_ROUNDTIMES])
  1423. }
  1424. else {
  1425.  
  1426. RoundTimeStr[0] = 0
  1427. }
  1428.  
  1429. // Line In Time
  1430. // Weapon Survive
  1431. // Level Desc ROUND
  1432. // Level Text D W HS P/C
  1433. formatex(Text,191,"%s: %d%s[Küldetés] %s %s%s%s%s%s- %d/%d%s.",
  1434. g_PlayerHasTutor[id] == true ? "Aktuális szinted" : "Lvl",
  1435. g_PlayerLevel[id],
  1436. g_PlayerHasTutor[id] == true ? "^n" : " -- ",
  1437. g_MissionDesc[g_PlayerMissionType[id]],
  1438. g_PlayerMissionType[id] == KILL_WEAPON ? sMission : "",
  1439. g_PlayerMissionParams[id][PARAM_HS] == 1 ? "[fejlövéssel] " : "",
  1440. g_PlayerMissionParams[id][PARAM_ROUND] == 1 ? "1 kör alatt " : "",
  1441. g_PlayerMissionParams[id][PARAM_TIME] == 1 ? TimeStr : "",
  1442. g_PlayerMissionParams[id][PARAM_SURVIVE] == 1 ? "és éld túl " : "",
  1443. g_PlayerMissionParams[id][PARAM_PLAYER],
  1444. g_PlayerMissionParams[id][PARAM_CONST],
  1445. RoundTimeStr
  1446. )
  1447.  
  1448. if(g_PlayerHasTutor[id]) {
  1449.  
  1450. static Color
  1451.  
  1452. if(g_PlayerMissionStatus[id] == STATUS_FAILED || g_PlayerMissionTimeStatus[id] == STATUS_FAILED) Color = RED
  1453. else if(g_PlayerMissionParams[id][PARAM_PLAYER] == 0) Color = BLUE
  1454. else if(g_PlayerMissionParams[id][PARAM_PLAYER] == g_PlayerMissionParams[id][PARAM_CONST]) Color = GREEN
  1455. else Color = YELLOW
  1456.  
  1457. if(g_PlayerInScore[id]) {
  1458.  
  1459. MakeTutor(id,Text,Color)
  1460. }
  1461. }
  1462. else {
  1463.  
  1464. if(g_PlayerInScore[id]) {
  1465.  
  1466. MakeStatusText(id,Text)
  1467. }
  1468. }
  1469.  
  1470. return PLUGIN_CONTINUE
  1471. }
  1472.  
  1473. public CheckStatus() {
  1474.  
  1475. new Plrs[3],i
  1476.  
  1477. for(i = 0; i < MAXPLAYERS; i++) {
  1478.  
  1479. if(is_user_alive(i)) {
  1480.  
  1481. switch(get_user_team(i)) {
  1482.  
  1483. case TEAM_T : Plrs[TEAM_T]++
  1484.  
  1485. case TEAM_CT : Plrs[TEAM_CT]++
  1486. }
  1487. }
  1488. }
  1489.  
  1490. for(i = 0; i < MAXPLAYERS; i++) {
  1491.  
  1492. if((g_PlayerMissionType[i] == KILL_NORMAL || g_PlayerMissionType[i] == KILL_WEAPON) && g_PlayerMissionParams[i][PARAM_ROUND] && is_user_alive(i)) {
  1493.  
  1494. if(
  1495. g_PlayerMissionParams[i][PARAM_CONST] - g_PlayerMissionParams[i][PARAM_PLAYER] >
  1496. Plrs[get_user_team(i) == TEAM_CT ? TEAM_T : TEAM_CT]
  1497. ) {
  1498. if(g_PlayerMissionTimeStatus[i] == STATUS_NORMAL) client_cmd(i,"spk ^"%s^"",g_Sounds[SOUND_FAILED])
  1499.  
  1500. g_PlayerMissionStatus[i] = STATUS_FAILED
  1501. }
  1502. else {
  1503.  
  1504. g_PlayerMissionStatus[i] = STATUS_NORMAL
  1505. }
  1506. }
  1507. }
  1508. }
  1509.  
  1510. //Stocks
  1511.  
  1512. RandomMission(Level) {
  1513.  
  1514. new Nums[MISSIONS] = {-1,...},i,x
  1515.  
  1516. for(i = 0; i < MISSIONS; i++) {
  1517.  
  1518. if
  1519. (
  1520. get_pcvar_num(c_min_level[i]) > Level
  1521. ||
  1522. (
  1523. (
  1524. (
  1525. i == PLANT || i == DEFUSE
  1526. )
  1527. && !(g_MapParams & MAP_DE)
  1528. )
  1529. ||
  1530. (
  1531. i == HOSTAGE && !(g_MapParams & MAP_CS)
  1532. )
  1533. )
  1534. ) {
  1535.  
  1536. continue
  1537. }
  1538.  
  1539. Nums[x] = i
  1540.  
  1541. x++
  1542. }
  1543.  
  1544. if(Nums[0] == -1) {
  1545.  
  1546. return -1
  1547. }
  1548. else {
  1549.  
  1550. return Nums[random_num(0,x - 1)]
  1551. }
  1552.  
  1553. return -1
  1554. }
  1555.  
  1556.  
  1557. MakeTutor(id,Text[],Color,Float:Time = 0.0) {
  1558.  
  1559. message_begin(MSG_ONE_UNRELIABLE,g_MsgTutor,_,id)
  1560. write_string(Text)
  1561. write_byte(0)
  1562. write_short(0)
  1563. write_short(0)
  1564. write_short(1<<Color)
  1565. message_end()
  1566.  
  1567. if(Time != 0.0) {
  1568.  
  1569. set_task(Time,"RemoveTutor",id + TASK_TUTOR)
  1570. }
  1571. }
  1572.  
  1573. MakeStatusText(id,Text[]) {
  1574.  
  1575. message_begin(MSG_ONE_UNRELIABLE,g_MsgStatusText,_,id)
  1576. write_byte(0)
  1577. write_string(Text)
  1578. message_end()
  1579. }
  1580.  
  1581. HideStatusText(id) {
  1582.  
  1583. message_begin(MSG_ONE_UNRELIABLE,g_MsgStatusText,_,id)
  1584. write_byte(0)
  1585. write_string("1 %c1: %p2^n2 %h: %i3%%")
  1586. message_end()
  1587.  
  1588. message_begin(MSG_ONE_UNRELIABLE,g_MsgStatusValue,_,id)
  1589. write_byte(2)
  1590. write_short(1)
  1591. message_end()
  1592. }
  1593.  
  1594. public RemoveTutor(taskID) {
  1595.  
  1596. new id = taskID - TASK_TUTOR
  1597.  
  1598. g_PlayerInfoMsg[id] = false
  1599.  
  1600. message_begin(MSG_ONE_UNRELIABLE,g_MsgTutorClose,_,id)
  1601. message_end()
  1602. }
  1603.  
  1604. ColorPrint(id,Text[]) {
  1605.  
  1606. message_begin(MSG_ONE_UNRELIABLE,g_MsgSay,_,id)
  1607. write_byte(id)
  1608. write_string(Text)
  1609. message_end()
  1610. }
  1611.  
  1612. //Vaults
  1613. public SaveMission(Player) {
  1614.  
  1615. new MISS_ID[33],Key[64],Data[256]
  1616. get_user_authid(Player,MISS_ID,32)
  1617.  
  1618. formatex(Key,63,"%s_mis",MISS_ID)
  1619.  
  1620. formatex(Data,255,"%d %d %d %d %d %d %d %d %d %d %d %d",
  1621. g_PlayerLevel[Player],
  1622. g_PlayerMissionType[Player],
  1623. g_PlayerMissionParams[Player][PARAM_PLAYER],
  1624. g_PlayerMissionParams[Player][PARAM_CONST],
  1625. g_PlayerMissionParams[Player][PARAM_WEAPON],
  1626. g_PlayerMissionParams[Player][PARAM_HS],
  1627. g_PlayerMissionParams[Player][PARAM_ROUND],
  1628. g_PlayerMissionParams[Player][PARAM_SURVIVE],
  1629. g_PlayerMissionParams[Player][PARAM_TIME],
  1630. g_PlayerMissionParams[Player][PARAM_TIMEAMT],
  1631. g_PlayerMissionParams[Player][PARAM_ROUNDTIMES],
  1632. g_PlayerMissionParams[Player][PARAM_ROUNDTIME_COUNT]
  1633. )
  1634.  
  1635. nvault_set(g_Vault,Key,Data)
  1636. }
  1637.  
  1638. public LoadMission(Player) {
  1639.  
  1640. new MISS_ID[33],Key[64],Data[256],tStr[MAXPARAMS + 2][6]
  1641. get_user_authid(Player,MISS_ID,32)
  1642.  
  1643. formatex(Key,63,"%s_mis",MISS_ID)
  1644.  
  1645. nvault_get(g_Vault,Key,Data,255)
  1646.  
  1647. parse
  1648. (
  1649. Data,
  1650. tStr[0],5,
  1651. tStr[1],5,
  1652. tStr[2],5,
  1653. tStr[3],5,
  1654. tStr[4],5,
  1655. tStr[5],5,
  1656. tStr[6],5,
  1657. tStr[7],5,
  1658. tStr[8],5,
  1659. tStr[9],5,
  1660. tStr[10],5,
  1661. tStr[11],5
  1662. )
  1663.  
  1664. g_PlayerLevel[Player] = str_to_num(tStr[0])
  1665. g_PlayerMissionType[Player] = str_to_num(tStr[1])
  1666.  
  1667. g_PlayerMissionParams[Player][PARAM_PLAYER] = str_to_num(tStr[2])
  1668. g_PlayerMissionParams[Player][PARAM_CONST] = str_to_num(tStr[3])
  1669. g_PlayerMissionParams[Player][PARAM_WEAPON] = str_to_num(tStr[4])
  1670.  
  1671. g_PlayerMissionParams[Player][PARAM_HS] = str_to_num(tStr[5])
  1672. g_PlayerMissionParams[Player][PARAM_ROUND] = str_to_num(tStr[6])
  1673. g_PlayerMissionParams[Player][PARAM_SURVIVE] = str_to_num(tStr[7])
  1674. g_PlayerMissionParams[Player][PARAM_TIME] = str_to_num(tStr[8])
  1675. g_PlayerMissionParams[Player][PARAM_TIMEAMT] = str_to_num(tStr[9])
  1676. g_PlayerMissionParams[Player][PARAM_ROUNDTIMES] = str_to_num(tStr[10])
  1677. g_PlayerMissionParams[Player][PARAM_ROUNDTIME_COUNT] = str_to_num(tStr[11])
  1678. }
  1679.  
  1680. public savevhp(id)
  1681. {
  1682. new VHP_ID[33],Key[64],Data[256]
  1683. get_user_authid(id,VHP_ID,32)
  1684.  
  1685. formatex(Key,63,"%s_vhp",VHP_ID)
  1686.  
  1687. format(Data,255,"%i#", hp[id])
  1688.  
  1689. nvault_set(g_Vault,Key,Data)
  1690. }
  1691.  
  1692. public loadvhp(id)
  1693. {
  1694. new VHP_ID[33],Key[64],Data[256]
  1695. get_user_authid(id,VHP_ID,32)
  1696.  
  1697. formatex(Key,63,"%s_vhp",VHP_ID)
  1698.  
  1699. format(Data,255,"%i#", hp[id])
  1700.  
  1701. nvault_get(g_Vault,Key,Data,255)
  1702.  
  1703. new hp_s[32]
  1704. parse(Data, hp_s, 31)
  1705. hp[id] = str_to_num(hp_s)
  1706. }
  1707.  
  1708. //Color Chat
  1709. stock ClientPrintColor(id, String[], any:...)
  1710. {
  1711. new SzMsg[192]
  1712. vformat(SzMsg, charsmax(SzMsg), String, 3)
  1713.  
  1714. replace_all(SzMsg, charsmax(SzMsg), "!n", "^1")
  1715. replace_all(SzMsg, charsmax(SzMsg), "!t", "^3")
  1716. replace_all(SzMsg, charsmax(SzMsg), "!g", "^4")
  1717.  
  1718. static msgSayText = 0
  1719. static fake_user
  1720.  
  1721. if(!msgSayText)
  1722. {
  1723. msgSayText = get_user_msgid("SayText")
  1724. fake_user = get_maxplayers() + 1
  1725. }
  1726.  
  1727. message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, _, id)
  1728. write_byte(id ? id : fake_user)
  1729. write_string(SzMsg)
  1730. message_end()
  1731. }

_________________
Projektem:

[CSO2] Ghost Mod
CSO2 GamePlay video: https://www.youtube.com/watch?feature=p ... iOS4Ik1Yrk


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Küldi MYSQL-re
HozzászólásElküldve:2013.05.05. 14:16 
Offline
Félisten
Avatar

Csatlakozott:2013.03.12. 10:03
Hozzászólások:859
Megköszönt másnak: 37 alkalommal
Megköszönték neki: 44 alkalommal
http://hlmod.hu/viewtopic.php?f=19&t=5329

_________________
Kép


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


Ki van itt

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