hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 487 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 485 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] 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  [ 4 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: mapválto plugin menüje ne tünjön ell
HozzászólásElküldve: 2013.09.29. 12:32 
Offline
Őstag
Avatar

Csatlakozott: 2010.04.16. 16:50
Hozzászólások: 1342
Megköszönt másnak: 42 alkalommal
Megköszönték neki: 58 alkalommal
Sziasztok, az alap mapchooser plugint kéne valahogy úgy átírni, hogy egy másik menü ne irja felül és igy ne maradjon ki senki a szavazásbol, gondolok itt pl csdm nél hogy a fegyver menü felülirja és utána a kliens nem tud szavazni egyik mapra se. Én valahogy ugy gondoltam hogy ahol behozza a menüt a kliensnek ott set task 1 el lecsekkolom hogy szavazott e PL:
SMA Forráskód: [ Mindet kijelol ]
  1. if(valasztott[id] == false)
és ha nem akkor ujraelőhivja a menüt neki, de ha szavazott akkor pedig nem hozza be töbször. Valaki áttudná nekem irni ezt ?!
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. #define SELECTMAPS 4
  5.  
  6. #define charsof(%1) (sizeof(%1)-1)
  7.  
  8. new Array:g_mapName;
  9. new g_mapNums;
  10.  
  11. new g_nextName[SELECTMAPS]
  12. new g_voteCount[SELECTMAPS + 2]
  13. new g_mapVoteNum
  14. new g_teamScore[2]
  15. new g_lastMap[32]
  16.  
  17. new g_coloredMenus
  18. new bool:g_selected = false
  19.  
  20. public plugin_init()
  21. {
  22. register_plugin("Nextmap Chooser", AMXX_VERSION_STR, "AMXX Dev Team")
  23. register_dictionary("mapchooser.txt")
  24. register_dictionary("common.txt")
  25.  
  26. g_mapName=ArrayCreate(32);
  27.  
  28. new MenuName[64]
  29.  
  30. format(MenuName, 63, "%L", "en", "CHOOSE_NEXTM")
  31. register_menucmd(register_menuid(MenuName), (-1^(-1<<(SELECTMAPS+2))), "countVote")
  32. register_cvar("amx_extendmap_max", "90")
  33. register_cvar("amx_extendmap_step", "15")
  34.  
  35. if (cstrike_running())
  36. register_event("TeamScore", "team_score", "a")
  37.  
  38. get_localinfo("lastMap", g_lastMap, 31)
  39. set_localinfo("lastMap", "")
  40.  
  41. new maps_ini_file[64]
  42. get_configsdir(maps_ini_file, 63);
  43. format(maps_ini_file, 63, "%s/maps.ini", maps_ini_file);
  44.  
  45. if (!file_exists(maps_ini_file))
  46. get_cvar_string("mapcyclefile", maps_ini_file, 63)
  47. if (loadSettings(maps_ini_file))
  48. set_task(15.0, "voteNextmap", 987456, "", 0, "b")
  49.  
  50. g_coloredMenus = colored_menus()
  51.  
  52. }
  53.  
  54. public checkVotes()
  55. {
  56. new b = 0
  57.  
  58. for (new a = 0; a < g_mapVoteNum; ++a)
  59. if (g_voteCount[b] < g_voteCount[a])
  60. b = a
  61.  
  62.  
  63. if (g_voteCount[SELECTMAPS] > g_voteCount[b]
  64. && g_voteCount[SELECTMAPS] > g_voteCount[SELECTMAPS+1])
  65. {
  66. new mapname[32]
  67.  
  68. get_mapname(mapname, 31)
  69. new Float:steptime = get_cvar_float("amx_extendmap_step")
  70. set_cvar_float("mp_timelimit", get_cvar_float("mp_timelimit") + steptime)
  71. client_print(0, print_chat, "%L", LANG_PLAYER, "CHO_FIN_EXT", steptime)
  72. log_amx("Vote: Voting for the nextmap finished. Map %s will be extended to next %.0f minutes", mapname, steptime)
  73.  
  74. return
  75. }
  76.  
  77. new smap[32]
  78. if (g_voteCount[b] && g_voteCount[SELECTMAPS + 1] <= g_voteCount[b])
  79. {
  80. ArrayGetString(g_mapName, g_nextName[b], smap, charsof(smap));
  81. set_cvar_string("amx_nextmap", smap);
  82. }
  83.  
  84.  
  85. get_cvar_string("amx_nextmap", smap, 31)
  86. client_print(0, print_chat, "%L", LANG_PLAYER, "CHO_FIN_NEXT", smap)
  87. log_amx("Vote: Voting for the nextmap finished. The nextmap will be %s", smap)
  88. }
  89.  
  90. public countVote(id, key)
  91. {
  92. if (get_cvar_float("amx_vote_answers"))
  93. {
  94. new name[32]
  95. get_user_name(id, name, 31)
  96.  
  97. if (key == SELECTMAPS)
  98. client_print(0, print_chat, "%L", LANG_PLAYER, "CHOSE_EXT", name)
  99. else if (key < SELECTMAPS)
  100. {
  101. new map[32];
  102. ArrayGetString(g_mapName, g_nextName[key], map, charsof(map));
  103. client_print(0, print_chat, "%L", LANG_PLAYER, "X_CHOSE_X", name, map);
  104. }
  105. }
  106. ++g_voteCount[key]
  107.  
  108. return PLUGIN_HANDLED
  109. }
  110.  
  111. bool:isInMenu(id)
  112. {
  113. for (new a = 0; a < g_mapVoteNum; ++a)
  114. if (id == g_nextName[a])
  115. return true
  116. return false
  117. }
  118.  
  119. public voteNextmap()
  120. {
  121. new winlimit = get_cvar_num("mp_winlimit")
  122. new maxrounds = get_cvar_num("mp_maxrounds")
  123.  
  124. if (winlimit)
  125. {
  126. new c = winlimit - 2
  127.  
  128. if ((c > g_teamScore[0]) && (c > g_teamScore[1]))
  129. {
  130. g_selected = false
  131. return
  132. }
  133. }
  134. else if (maxrounds)
  135. {
  136. if ((maxrounds - 2) > (g_teamScore[0] + g_teamScore[1]))
  137. {
  138. g_selected = false
  139. return
  140. }
  141. } else {
  142. new timeleft = get_timeleft()
  143.  
  144. if (timeleft < 1 || timeleft > 129)
  145. {
  146. g_selected = false
  147. return
  148. }
  149. }
  150.  
  151. if (g_selected)
  152. return
  153.  
  154. g_selected = true
  155.  
  156. new menu[512], a, mkeys = (1<<SELECTMAPS + 1)
  157.  
  158. new pos = format(menu, 511, g_coloredMenus ? "%L:^n^n" : "%L:^n^n", LANG_SERVER, "CHOOSE_NEXTM")
  159. new dmax = (g_mapNums > SELECTMAPS) ? SELECTMAPS : g_mapNums
  160.  
  161. for (g_mapVoteNum = 0; g_mapVoteNum < dmax; ++g_mapVoteNum)
  162. {
  163. a = random_num(0, g_mapNums - 1)
  164.  
  165. while (isInMenu(a))
  166. if (++a >= g_mapNums) a = 0
  167.  
  168. g_nextName[g_mapVoteNum] = a
  169. pos += format(menu[pos], 511, "%d. %a^n", g_mapVoteNum + 1, ArrayGetStringHandle(g_mapName, a));
  170. mkeys |= (1<<g_mapVoteNum)
  171. g_voteCount[g_mapVoteNum] = 0
  172. }
  173.  
  174. menu[pos++] = '^n'
  175. g_voteCount[SELECTMAPS] = 0
  176. g_voteCount[SELECTMAPS + 1] = 0
  177.  
  178. new mapname[32]
  179. get_mapname(mapname, 31)
  180.  
  181. if ((winlimit + maxrounds) == 0 && (get_cvar_float("mp_timelimit") < get_cvar_float("amx_extendmap_max")))
  182. {
  183. pos += format(menu[pos], 511, "%d. %L^n", SELECTMAPS + 1, LANG_SERVER, "EXTED_MAP", mapname)
  184. mkeys |= (1<<SELECTMAPS)
  185. }
  186.  
  187. format(menu[pos], 511, "%d. %L", SELECTMAPS+2, LANG_SERVER, "NONE")
  188. new MenuName[64]
  189.  
  190. format(MenuName, 63, "%L", "en", "CHOOSE_NEXTM")
  191. show_menu(0, mkeys, menu, 15, MenuName)
  192. set_task(15.0, "checkVotes")
  193. client_print(0, print_chat, "%L", LANG_SERVER, "TIME_CHOOSE")
  194. client_cmd(0, "spk Gman/Gman_Choose2")
  195. log_amx("Vote: Voting for the nextmap started")
  196. }
  197. stock bool:ValidMap(mapname[])
  198. {
  199. if ( is_map_valid(mapname) )
  200. {
  201. return true;
  202. }
  203. // If the is_map_valid check failed, check the end of the string
  204. new len = strlen(mapname) - 4;
  205.  
  206. // The mapname was too short to possibly house the .bsp extension
  207. if (len < 0)
  208. {
  209. return false;
  210. }
  211. if ( equali(mapname[len], ".bsp") )
  212. {
  213. // If the ending was .bsp, then cut it off.
  214. // the string is byref'ed, so this copies back to the loaded text.
  215. mapname[len] = '^0';
  216.  
  217. // recheck
  218. if ( is_map_valid(mapname) )
  219. {
  220. return true;
  221. }
  222. }
  223.  
  224. return false;
  225. }
  226.  
  227. loadSettings(filename[])
  228. {
  229. if (!file_exists(filename))
  230. return 0
  231.  
  232. new szText[32]
  233. new currentMap[32]
  234.  
  235. new buff[256];
  236.  
  237. get_mapname(currentMap, 31)
  238.  
  239. new fp=fopen(filename,"r");
  240.  
  241. while (!feof(fp))
  242. {
  243. buff[0]='^0';
  244.  
  245. fgets(fp, buff, charsof(buff));
  246.  
  247. parse(buff, szText, charsof(szText));
  248.  
  249.  
  250. if (szText[0] != ';' &&
  251. ValidMap(szText) &&
  252. !equali(szText, g_lastMap) &&
  253. !equali(szText, currentMap))
  254. {
  255. ArrayPushString(g_mapName, szText);
  256. ++g_mapNums;
  257. }
  258.  
  259. }
  260.  
  261. fclose(fp);
  262.  
  263. return g_mapNums
  264. }
  265.  
  266. public team_score()
  267. {
  268. new team[2]
  269.  
  270. read_data(1, team, 1)
  271. g_teamScore[(team[0]=='C') ? 0 : 1] = read_data(2)
  272. }
  273.  
  274. public plugin_end()
  275. {
  276. new current_map[32]
  277.  
  278. get_mapname(current_map, 31)
  279. set_localinfo("lastMap", current_map)
  280. }
  281.  


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.10.01. 13:53 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7965
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 537 alkalommal
Nem értem mit akarsz elérni, lehetne picit világosabban?

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.10.01. 14:14 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4271
Megköszönt másnak: 55 alkalommal
Megköszönték neki: 514 alkalommal
Gondolom azt hogy amikor a mapszavazas elkezdodott behozza a mapokat akkor amig nem valasztott ne tunjon el a menu (Meg a fegyvermenu se tudjon bebugolni)

_________________
Idk. Csak ugy funbooo.
Kép


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.10.01. 18:55 
Offline
Őstag
Avatar

Csatlakozott: 2010.04.16. 16:50
Hozzászólások: 1342
Megköszönt másnak: 42 alkalommal
Megköszönték neki: 58 alkalommal
igen detector jol mondja, de a fegyvermenü nem lényeg ha az nem jön be addig csak a menü ne tünjön el és ne tudja felülirni a fegyvermenü ha pl meghal és ujra spawnol

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


Ki van itt

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