hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.24. 18:40



Jelenlévő felhasználók

Jelenleg 481 felhasználó van jelen :: 3 regisztrált, 0 rejtett és 478 vendég

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

Regisztrált felhasználók: Bing [Bot], Google [Bot], Majestic-12 [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  [ 14 hozzászólás ]  Oldal Előző 1 2
Szerző Üzenet
 Hozzászólás témája: Re: Joinclass
HozzászólásElküldve: 2013.07.23. 13:20 
Offline
Jómunkásember
Avatar

Csatlakozott: 2012.11.14. 15:20
Hozzászólások: 449
Megköszönt másnak: 80 alkalommal
Megköszönték neki: 19 alkalommal
RaZzoR írta:
kiki írta:
Értem, én nem tudom tesztelni, nem is akarom. Mi nem jó, azt írd le, nem nekem kéne találgatni.


Mellesleg 1 észrevétel, ami mindenképpen kell neked:
- Csinálj minden modelre egy bool változót, hogy tudd hogy az user melyik modelt használja, mert így csak első körben kapja meg majd a modelt. A többiben nem.


Belépek, kiválasztom a csapatot, karakter, utána semmi se történik


JoinClass-t blockoltad ugye vgui-sat. abban benne van a spawn is. te meg nem spawnoltatod le a játékost :)
edit: Szerintem

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Joinclass
HozzászólásElküldve: 2013.07.23. 13:56 
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
Gatshow írta:
RaZzoR írta:
kiki írta:
Értem, én nem tudom tesztelni, nem is akarom. Mi nem jó, azt írd le, nem nekem kéne találgatni.


Mellesleg 1 észrevétel, ami mindenképpen kell neked:
- Csinálj minden modelre egy bool változót, hogy tudd hogy az user melyik modelt használja, mert így csak első körben kapja meg majd a modelt. A többiben nem.


Belépek, kiválasztom a csapatot, karakter, utána semmi se történik


JoinClass-t blockoltad ugye vgui-sat. abban benne van a spawn is. te meg nem spawnoltatod le a játékost :)
edit: Szerintem


Úgyse jó

_________________
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: Joinclass
HozzászólásElküldve: 2013.07.23. 19:00 
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
kiki írta:
Na akkor próbáld meg újra elmondani a hibát, hogy mi is megértsük.


Belépek a szerverre, kiválasztom a csapatot, majd a class-t és nem vagyok respawnolva.
Így érthető? :D

_________________
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: Joinclass
HozzászólásElküldve: 2013.07.23. 21:57 
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
Sikerült :D

SMA Forráskód: [ Mindet kijelol ]
  1. /* AMX Mod X
  2. * Custom Team Select Menu
  3. * Code By baby
  4. * Credits:
  5. * VEN(Borrowed some code from his Auto Join on Connect <!-- s:D --><img src=\"{SMILIES_PATH}/icon_e_biggrin.gif\" alt=\":D\" title=\"nagyon boldog\" /><!-- s:D -->)
  6. *
  7. */
  8.  
  9. #include <amxmodx>
  10. #include <cstrike>
  11.  
  12. #define PLUGIN_NAME "custom team select menu"
  13. #define PLUGIN_VERSION "0.10"
  14. #define PLUGIN_AUTHOR "baby"
  15.  
  16. #define TEAM_SELECT_VGUI_MENU_ID 2
  17.  
  18. new bool:g_unassigned[33]
  19. new bool:g_changed[33]
  20. new menu[33]
  21. new g_msgid[33]
  22. new p_allow_spectators
  23. new p_teambalance
  24. new p_limitteams
  25.  
  26. new bool:g_allow_t
  27. new bool:g_allow_ct
  28. new bool:g_allow_spec
  29. new g_num_t, g_num_ct
  30.  
  31. #define Keysmenu_1 (1<<0)|(1<<1)|(1<<4)|(1<<5)|(1<<9) // Keys: 12560
  32. #define Keysmenu_2 (1<<0)|(1<<1)|(1<<4)|(1<<5)|(1<<9) // Keys: 12560
  33.  
  34. public plugin_init() {
  35. register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
  36.  
  37. register_message(get_user_msgid("ShowMenu"), "message_show_menu")
  38. register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu")
  39.  
  40. register_menucmd(register_menuid("mainmenu"), Keysmenu_1, "_menu_chooseteam")
  41.  
  42. register_logevent("hook_roundstart",2,"1=Round_Start")
  43.  
  44. p_allow_spectators = get_cvar_pointer("allow_spectators")
  45. p_teambalance = get_cvar_pointer( "mp_autoteambalance" )
  46. p_limitteams = get_cvar_pointer( "mp_limitteams" )
  47. register_clcmd("chooseteam", "hook_chooseteam")
  48.  
  49. }
  50.  
  51. public plugin_precache()
  52. {
  53. precache_model("models/player/ara/ara.mdl")
  54. precache_model("models/player/gerrard/gerrard.mdl")
  55. precache_model("models/player/jennifer/jennifer.mdl")
  56. precache_model("models/player/marineboy/marineboy.mdl")
  57. precache_model("models/player/marinegirl/marinegirl.mdl")
  58. precache_model("models/player/natasha/natasha.mdl")
  59. precache_model("models/player/pirateboy/pirateboy.mdl")
  60. precache_model("models/player/pirategirl/pirategirl.mdl")
  61. precache_model("models/player/spetsnaz/spetsnaz.mdl")
  62. }
  63.  
  64. public hook_roundstart()
  65. {
  66. for (new i = 1; i < 33; i++)
  67. {
  68. g_changed[i] = false
  69. }
  70. }
  71.  
  72. public client_connect(id)
  73. {
  74. g_changed[id] = false
  75. g_unassigned[id] = true
  76.  
  77. }
  78.  
  79. public client_disconnect(id)
  80. {
  81. g_changed[id] = false
  82. g_unassigned[id] = true
  83.  
  84. }
  85. public hook_chooseteam(id)
  86. {
  87. menu_chooseteam(id)
  88. return PLUGIN_HANDLED
  89. }
  90.  
  91. stock team_join(id, team[] = "5")
  92. {
  93. new menu_msgid = g_msgid[id]
  94. new msg_block = get_msg_block(menu_msgid)
  95. set_msg_block(menu_msgid, BLOCK_SET)
  96. engclient_cmd(id, "jointeam", team)
  97. set_msg_block(menu_msgid, msg_block)
  98. }
  99.  
  100. public menu_choosemodel_t(id)
  101. {
  102. new fejlec[64]
  103. format(fejlec,63,"\wTDM: \rChoose a class")
  104. menu[id]=menu_create(fejlec,"_menu_choosemodel_t")
  105. menu_additem(menu[id], "\wPhoenix Connexion", "1", 0)
  106. menu_additem(menu[id], "\wElite Crew", "2", 0)
  107. menu_additem(menu[id], "\wArctic Avengers", "3", 0)
  108. menu_additem(menu[id], "\wGuerilla Warfare", "4", 0)
  109. menu_additem(menu[id], "\wMidwest Militia", "5", 0)
  110. menu_additem(menu[id], "\wAsia Red Army", "6", 0)
  111. menu_additem(menu[id], "\wJennifer", "7", 0)
  112. menu_additem(menu[id], "\wMichaela", "8", 0)
  113. menu_additem(menu[id], "\wRaven", "9", 0)
  114. menu_display(id, menu[id], 0)
  115. menu_setprop(menu[id],MPROP_EXIT,MEXIT_ALL)
  116. }
  117. public _menu_choosemodel_t(id, menu, item)
  118. {
  119. new data[6], iName[64];
  120. new access, callback;
  121. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  122.  
  123. new key = str_to_num(data)
  124.  
  125. switch(key)
  126. {
  127. case 1:
  128. {
  129. cs_set_user_model(id, "terror")
  130. }
  131. case 2:
  132. {
  133. cs_set_user_model(id, "leet")
  134. }
  135. case 3:
  136. {
  137. cs_set_user_model(id, "artic")
  138. }
  139. case 4:
  140. {
  141. cs_set_user_model(id, "guerilla")
  142. }
  143. case 5:
  144. {
  145. cs_set_user_model(id, "terror")
  146. }
  147. case 6:
  148. {
  149. cs_set_user_model(id, "ara")
  150. }
  151. case 7:
  152. {
  153. cs_set_user_model(id, "jennifer")
  154. }
  155. case 8:
  156. {
  157. cs_set_user_model(id, "pirategirl")
  158. }
  159. case 9:
  160. {
  161. cs_set_user_model(id, "pirateboy")
  162. }
  163. }
  164.  
  165. new menu_msgid = g_msgid[id]
  166. new msg_block = get_msg_block(menu_msgid)
  167. set_msg_block(menu_msgid, BLOCK_SET)
  168. engclient_cmd(id, "joinclass", data)
  169. set_msg_block(menu_msgid, msg_block)
  170.  
  171. g_changed[id] = true
  172. g_unassigned[id] = false
  173. menu_destroy(menu);
  174.  
  175.  
  176. return PLUGIN_HANDLED;
  177. }
  178.  
  179. public menu_choosemodel_ct(id)
  180. {
  181. new fejlec[64]
  182. format(fejlec,63,"\wTDM: \rChoose a class")
  183. menu[id]=menu_create(fejlec,"_menu_choosemodel_ct")
  184. menu_additem(menu[id], "\wSEAL Team 6", "1", 0)
  185. menu_additem(menu[id], "\wGSG-9", "2", 0)
  186. menu_additem(menu[id], "\wSAS", "3", 0)
  187. menu_additem(menu[id], "\wGIGN", "4", 0)
  188. menu_additem(menu[id], "\wSPETSNAZ", "5", 0)
  189. menu_additem(menu[id], "\wNatasha", "6", 0)
  190. menu_additem(menu[id], "\wGerrard", "7", 0)
  191. menu_additem(menu[id], "\wLucia", "8", 0)
  192. menu_additem(menu[id], "\wEnzo", "9", 0)
  193. menu_display(id, menu[id], 0)
  194. menu_setprop(menu[id],MPROP_EXIT,MEXIT_ALL)
  195. }
  196. public _menu_choosemodel_ct(id, menu, item)
  197. {
  198.  
  199. new data[6], iName[64];
  200. new access, callback;
  201. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  202.  
  203. new key = str_to_num(data)
  204.  
  205. switch(key)
  206. {
  207. case 1:
  208. {
  209. cs_set_user_model(id, "urban")
  210. }
  211. case 2:
  212. {
  213. cs_set_user_model(id, "gsg9")
  214. }
  215. case 3:
  216. {
  217. cs_set_user_model(id, "sas")
  218. }
  219. case 4:
  220. {
  221. cs_set_user_model(id, "gign")
  222. }
  223. case 5:
  224. {
  225. cs_set_user_model(id, "spetsnaz")
  226. }
  227. case 6:
  228. {
  229. cs_set_user_model(id, "natasha")
  230. }
  231. case 7:
  232. {
  233. cs_set_user_model(id, "gerrard")
  234. }
  235. case 8:
  236. {
  237. cs_set_user_model(id, "marinegirl")
  238. }
  239. case 9:
  240. {
  241. cs_set_user_model(id, "marineboy")
  242. }
  243. }
  244.  
  245. new menu_msgid = g_msgid[id]
  246. new msg_block = get_msg_block(menu_msgid)
  247. set_msg_block(menu_msgid, BLOCK_SET)
  248. engclient_cmd(id, "joinclass", data)
  249. set_msg_block(menu_msgid, msg_block)
  250.  
  251. g_changed[id] = true
  252. g_unassigned[id] = false
  253. menu_destroy(menu);
  254.  
  255. return PLUGIN_HANDLED;
  256. }
  257.  
  258.  
  259. public menu_chooseteam(id)
  260. {
  261. if (is_user_connected(id) && !is_user_bot(id) && !is_user_hltv(id))
  262. {
  263.  
  264. check_teams(id)
  265.  
  266. new text[512], len
  267.  
  268. len = format(text, 511,"\yTeam Select Spect^n^n")
  269.  
  270. if (g_changed[id])
  271. {
  272. len += format(text[len], 511 - len, "\wTDM: Can only be replaced once a team^n")
  273. len += format(text[len], 511 - len, "\d1. Terrorist Force^n")
  274. len += format(text[len], 511 - len, "\d2. Counter-Terrorist Force^n")
  275. len += format(text[len], 511 - len, "\d5. Auto-select^n")
  276. len += format(text[len], 511 - len, "\d6. Spectator^n^n")
  277. }
  278. else
  279. {
  280. len += format(text[len], 511 - len, "\rTDM: Select your appearance^n")
  281. len += format(text[len], 511 - len, "\r1. \wTerrorist Force^n")
  282. len += format(text[len], 511 - len, "\r2. \wCounter-Terrorist Force^n")
  283. len += format(text[len], 511 - len, "\r5. \wAuto-select^n")
  284. }
  285.  
  286.  
  287. if ((g_allow_spec && !g_changed[id]))
  288. {
  289. len += format(text[len], 511 - len, "\r6. \wSpectator^n^n")
  290. len += format(text[len], 511 - len, "^n\r0. Exit^n")
  291. show_menu(id, Keysmenu_1, text, -1, "mainmenu")
  292. }
  293. else
  294. {
  295. len += format(text[len], 511 - len, "^n\r0. Exit^n")
  296. show_menu(id, Keysmenu_2, text, -1, "mainmenu")
  297. }
  298.  
  299. }
  300. }
  301.  
  302. public _menu_chooseteam(id, key)
  303. {
  304. check_teams(id)
  305. switch(key)
  306. {
  307. case 0:
  308. {
  309. if (g_allow_t && !g_changed[id])
  310. {
  311. team_join(id, "1")
  312.  
  313. menu_choosemodel_t(id)
  314. }
  315. //set_force_team_join_task(id, g_msgid[id])
  316.  
  317. }
  318. case 1:
  319. {
  320. if (g_allow_ct && !g_changed[id])
  321. {
  322. team_join(id, "2")
  323.  
  324. menu_choosemodel_ct(id)
  325. }
  326. //Send them to the submenu
  327.  
  328. }
  329. case 4:
  330. {
  331. if (!g_changed[id])
  332. {
  333. if (g_allow_t && g_allow_ct)
  334. {
  335. if (get_systime() % 2)
  336. {
  337. team_join(id, "1")
  338. menu_choosemodel_t(id)
  339. }
  340. else
  341. {
  342. team_join(id, "2")
  343. menu_choosemodel_ct(id)
  344. }
  345.  
  346. }
  347. else if (g_allow_t)
  348. {
  349. team_join(id, "1")
  350. menu_choosemodel_t(id)
  351. //Send them to the submenu
  352. }
  353. else if (g_allow_ct)
  354. {
  355. team_join(id, "2")
  356. menu_choosemodel_ct(id)
  357. }
  358. }
  359. }
  360. case 5:
  361. {
  362. if (!g_changed[id])
  363. {
  364. force_team_join(id, g_msgid[id], "6", _)
  365. }
  366. //Send them to the submenu
  367.  
  368. }
  369. case 9:
  370. {
  371. return PLUGIN_HANDLED;
  372. }
  373. }
  374.  
  375. return PLUGIN_HANDLED;
  376. }
  377.  
  378. public message_show_menu(msgid, dest, id) {
  379.  
  380.  
  381. static team_select[] = "#Team_Select"
  382. static menu_text_code[sizeof team_select]
  383. get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1)
  384.  
  385. //
  386. //server_print("Graphic menu");
  387.  
  388. if (!equal(menu_text_code, team_select))
  389. return PLUGIN_CONTINUE
  390.  
  391.  
  392. g_msgid[id] = msgid
  393. menu_chooseteam(id)
  394.  
  395.  
  396. return PLUGIN_HANDLED
  397. }
  398.  
  399. public message_vgui_menu(msgid, dest, id) {
  400. if (get_msg_arg_int(1) != TEAM_SELECT_VGUI_MENU_ID)
  401. return PLUGIN_CONTINUE
  402. //
  403. //server_print("VGUI menu");
  404.  
  405. g_msgid[id] = msgid
  406. menu_chooseteam(id)
  407.  
  408.  
  409. return PLUGIN_HANDLED
  410. }
  411.  
  412. public check_teams(id)
  413. {
  414. g_allow_t= true
  415. g_allow_ct = true
  416.  
  417.  
  418. new playerst[32], playersct[32]
  419. get_players(playerst, g_num_t, "eh", "TERRORIST")
  420. get_players(playersct, g_num_ct, "eh", "CT")
  421.  
  422. if (get_pcvar_num(p_allow_spectators) && (g_num_t + g_num_ct > 1 || g_unassigned[id]))
  423. {
  424. g_allow_spec = true
  425. }
  426. else
  427. {
  428. g_allow_spec = false
  429. }
  430.  
  431.  
  432. if (get_user_team(id) == 2)//ct
  433. {
  434. g_num_ct--
  435. }
  436. else if (get_user_team(id) == 1)//t
  437. {
  438. g_num_t--
  439. }
  440.  
  441. if (get_pcvar_num(p_teambalance))
  442. {
  443. new limit = get_pcvar_num(p_limitteams)
  444. if (g_num_t - g_num_ct >= limit)
  445. {
  446. g_allow_t = false
  447. }
  448. else if (g_num_ct - g_num_t >= limit)
  449. {
  450. g_allow_ct = false
  451. }
  452. }
  453. }
  454.  
  455. stock force_team_join(id, menu_msgid, team[] = "5", class[] = "0") {
  456. static jointeam[] = "jointeam"
  457. if (class[0] == '0') {
  458. engclient_cmd(id, jointeam, team)
  459. g_changed[id] = true
  460. g_unassigned[id] = false
  461. return
  462. }
  463.  
  464. static msg_block, joinclass[] = "joinclass"
  465. msg_block = get_msg_block(menu_msgid)
  466. set_msg_block(menu_msgid, BLOCK_SET)
  467. engclient_cmd(id, jointeam, team)
  468. engclient_cmd(id, joinclass, class)
  469. set_msg_block(menu_msgid, msg_block)
  470.  
  471. g_changed[id] = true
  472. g_unassigned[id] = false
  473. }

_________________
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ások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 14 hozzászólás ]  Oldal Előző 1 2


Ki van itt

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