hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.10.10. 20:00



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: 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  [35 hozzászólás ]  OldalElőző1234Következő
Szerző Üzenet
 Hozzászólás témája: Re: Pályaszavaztató - DMC v2.01
HozzászólásElküldve:2015.06.10. 19:12 
Offline
A Scripter

Csatlakozott:2013.11.19. 19:08
Hozzászólások:827
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 315 alkalommal
most még nem töltöm fel. itt a javított
SMA Forráskód: [ Mindet kijelol ]
  1. /*
  2. //////////////////////////////////////////////////////
  3.   /###///##/////##///###////////////####///////###////#/
  4. /#//#//#/#///#/#//#///////////////////#/////#///#//##/
  5. /#//#//#//#/#//#//#/////////#///#//####/////#///#/#/#/
  6. /#//#//#///#///#//#//////////#/#//#/////////#///#///#/
  7. /###///#///////#///###////////#///#####//##//###////#/
  8. //////////////////////////////////////////////////////
  9.  
  10. Author: DeRoiD
  11. Plugin name: DeRoiD's Mapchooser
  12. Plugin version: 2.01
  13. First relase: 2015/04/08
  14. Last update: 2015/06/10
  15. Reason for update: RTV Fix
  16. Plugin link: forums.alliedmods.net/showthread.php?t=261412
  17.  
  18. Short description [default cvar]:
  19. - This plugin last 3 minutes or round open the "Vote a map" menu.
  20. - The one for which more people vote it will be the next map.
  21. - If best vote < min. vote percent then re-vote! There is a manner of two kinds.
  22.  
  23. You can [default cvar]:
  24. - rtv "Rock the vote" [players 1:2]
  25. - nom "Nomination" (in menu) [chance 50%]
  26. - see timeleft | nextmap [timeleft, nextmap]
  27. - see played maps and played counts [/playedmaps]
  28. - if you admin then can startvote (/startvote) [StartVoteFlag]
  29.  
  30. Changelog:
  31. - v1.00
  32. + First relase (hlmod.hu)
  33. + Map choose (Old method)
  34. + Played maps
  35. + Next map
  36. + Timeleft
  37.  
  38. - v1.20b
  39. + Rounds
  40. + Nomination
  41. + Admin vote
  42. + Rock the vote
  43.  
  44. - v1.30b
  45. + Previous map can not be choose
  46.  
  47. - v1.35b
  48. + Fix bugs
  49. + New chooser method
  50. + More map choices [MAX 9]
  51.  
  52. - v1.49a
  53. + Re-vote if vote percent < min percent
  54. + Removed hard coding paths.
  55.  
  56. - v1.53a
  57. + Fixed extend time [ +- 1 min ]
  58. + Fixed changelevel bug.
  59.  
  60. - v1.62a
  61. + Hud Counter
  62. + Change map only next round. (Cvar)
  63. + Fix bugs
  64.  
  65. - v1.63a
  66. + HudMsg -> SyncHudMsg
  67.  
  68. - v1.77a
  69. + Nobody votes bug fix
  70. + More languages
  71.  
  72. - v1.86a
  73. + Countdown sounds
  74.  
  75. - v2.00
  76. + Fix bugs
  77. + Check maps (valid)
  78. + Ad rounds in game (if rounds mod)
  79.  
  80. - v2.01
  81. + Current map
  82.  
  83.  
  84. Pugin like:
  85.  
  86. Choose the Next Map [All votes: 9]
  87.  
  88. 1. de_dust2 [votes: 1] (9%)
  89. 2. de_dust [votes: 0] (0%)
  90. 3. de_inferno [votes: 1] (9%)
  91. 4. de_train [votes: 5] (54%)
  92. 5. de_nuke [votes: 1] (9%)
  93.  
  94. 6. de_tuscan (current map) [votes: 1] (9%)
  95.  
  96.  
  97. [Next map: de_train]
  98.  
  99. You find bug?
  100. - deroidocska (steam)
  101.  
  102. Plugin tested in:
  103. - AMX 1.8.2
  104. - AMX 1.8.3-dev+4532 [32 Real Players]
  105. - AMX 1.8.3-dev-git4751
  106.  
  107. Thanks for using this plugin!
  108. DeRoiD
  109.  
  110. ___________[Special thanks]___________
  111.  
  112. - fysiks for help to plugin (tips)
  113. - HamletEagle for help to plugin (tips)
  114. - mforce for idea
  115. - cs.stambeto for idea
  116.  
  117. - ACM1PT for translation [es]
  118. - JustVladK & K:O for translation [ro]
  119. - battlefield 3 for translation [ru]
  120. - Perfect Scrash for translation [bp]
  121. - Belo95135 for translation [sk]
  122. - wEight for translation [sr]
  123. ______________________________________
  124. */
  125.  
  126. #include <amxmodx>
  127.  
  128. new const PLUGIN[] = "DeRoiD's Mapchooser";
  129. new const VERSION[] = "2.01";
  130. new const AUTHOR[] = "DeRoiD";
  131.  
  132. #define MapID 180912
  133.  
  134. #define R 250
  135. #define G 250
  136. #define B 250
  137.  
  138. #define CHUD 1.2
  139. #define MaxCSpeed 5.0
  140.  
  141. #define Max 200
  142. #define MinRounds 5
  143. #define MaxChoice 9
  144. #define PMPage 6
  145.  
  146. #define StartVoteFlag ADMIN_LEVEL_A
  147.  
  148. #pragma semicolon 1
  149.  
  150. new MapFile[64], MapCycle[32], MapFile_Lines, MapCycle_Lines;
  151. new Maps[Max][32], MapName[32], MapNames[MaxChoice][32], MapRevote[2][32], NomMaps[Max][32], NomNum, Nom, Nomed[Max];
  152. new MapVote[MaxChoice], RevoteCounts[2], VoteMenu, RevoteMenu, MapCounter, LastMap[32], VotedMap[32], BeginCounter;
  153. new AllVotes, AllRevotes, Next[32], RTV, RTVTime[3], PlayerMap[33], ElapsedTime[3], VoteMod;
  154. new bool:Voted, bool:PlayerVoted[33], bool:ChangeMap, bool:Begined, bool:inProcess, bool:Revoted,
  155. bool:PlayerRTV[33], bool:toRTV, bool:AlreadyNom[33], bool:PlayerRevoted[33], bool:NeedRV;
  156. new SayText, Rounds, MaxRounds, TimeLimit, oRounds;
  157.  
  158. new Cvar_WaitVoteMenuTime, Cvar_MenuDestroyTime, Cvar_RTVMinute, Cvar_VoteCounter,
  159. Cvar_NomChance, Cvar_VoteSound, Cvar_Extend, Cvar_StartRevoteTime, Cvar_VotePercentMin,
  160. Cvar_Nomination, Cvar_PlayedMaps, Cvar_RTV, Cvar_VoteVariable, Cvar_RTVMin, Cvar_Mod,
  161. Cvar_ChangeSpeed, Cvar_MaxMaps, Cvar_WaitRevoteMenuTime, Cvar_HudMod, Cvar_OnlyNextRound,
  162. Cvar_CountSound, Cvar_ChooseSound, Cvar_Ad;
  163.  
  164. new Prefix[32], sHudObj, Off;
  165.  
  166. new const MapMenuCommands[][] =
  167. {
  168. "/playedmaps",
  169. "/pm",
  170. "!playedmaps",
  171. "!pm",
  172. "playedmaps",
  173. "pm"
  174. };
  175. new const TimeLeftCommands[][] =
  176. {
  177. "/timeleft",
  178. "/tl",
  179. "!timeleft",
  180. "!tl",
  181. "timeleft",
  182. "tl"
  183. };
  184. new const NextMapCommands[][] =
  185. {
  186. "/nextmap",
  187. "/nm",
  188. "!nextmap",
  189. "!nm",
  190. "nextmap",
  191. "nm"
  192. };
  193. new const AdminCommands[][] =
  194. {
  195. "/startvote",
  196. "!startvote",
  197. "startvote"
  198. };
  199. new const RTVCommands[][] =
  200. {
  201. "/rtv",
  202. "!rtv",
  203. "/rockthevote",
  204. "!rockthevote",
  205. "rockthevote",
  206. "rtv"
  207. };
  208. new const NomCommands[][] =
  209. {
  210. "/nom",
  211. "!nom",
  212. "/nomination",
  213. "!nomination",
  214. "nom",
  215. "nomination"
  216. };
  217. new const CurrentMapCommands[][] =
  218. {
  219. "/currentmap",
  220. "!currentmap",
  221. "/cm",
  222. "!cm",
  223. "currentmap",
  224. "cm"
  225. };
  226.  
  227. public plugin_init()
  228. {
  229. register_plugin(PLUGIN, VERSION, AUTHOR);
  230. register_cvar(PLUGIN, VERSION, FCVAR_SERVER);
  231. register_dictionary("dmc.txt");
  232. sHudObj = CreateHudSyncObj();
  233.  
  234. static ConfigsDir[64];
  235. get_localinfo("amxx_configsdir", ConfigsDir, 63);
  236. formatex(MapFile, 63, "%s/dmc/mapdatas.dmc", ConfigsDir);
  237. get_localinfo("amxx_configsdir", ConfigsDir, 63);
  238. formatex(MapCycle, 31, "mapcycle.txt");
  239. formatex(Prefix, 31, "!g[DMC]");
  240.  
  241. MapFile_Lines = file_size(MapFile, 1);
  242. MapCycle_Lines = file_size(MapCycle, 1);
  243.  
  244. Cvar_Mod = register_cvar("dmc_mod", "1");
  245. Cvar_HudMod = register_cvar("dmc_hudmod", "1");
  246. Cvar_ChangeSpeed = register_cvar("dmc_changespeed", "5.0");
  247. Cvar_WaitVoteMenuTime = register_cvar("dmc_waitvotemenutime", "10.0");
  248. Cvar_WaitRevoteMenuTime = register_cvar("dmc_waitrevotemenutime", "5.0");
  249. Cvar_MenuDestroyTime = register_cvar("dmc_menudestroyTime", "5.0");
  250. Cvar_RTVMinute = register_cvar("dmc_rtvminute", "10");
  251. Cvar_VoteCounter = register_cvar("dmc_votecounter", "15");
  252. Cvar_VoteVariable = register_cvar("dmc_votevariable", "3");
  253. Cvar_VotePercentMin = register_cvar("dmc_votepercent", "50");
  254. Cvar_MaxMaps = register_cvar("dmc_maxmaps", "5");
  255. Cvar_Nomination = register_cvar("dmc_nomination", "1");
  256. Cvar_PlayedMaps = register_cvar("dmc_playedmaps", "1");
  257. Cvar_RTV = register_cvar("dmc_rtv", "1");
  258. Cvar_VoteSound = register_cvar("dmc_votesound", "1");
  259. Cvar_RTVMin = register_cvar("dmc_rtvmin", "2");
  260. Cvar_NomChance = register_cvar("dmc_nomchance", "50");
  261. Cvar_Extend = register_cvar("dmc_extend", "15");
  262. Cvar_StartRevoteTime = register_cvar("dmc_startrevotetime", "5.0");
  263. Cvar_OnlyNextRound = register_cvar("dmc_onlynextround", "1");
  264. Cvar_CountSound = register_cvar("dmc_countsound", "1");
  265. Cvar_ChooseSound = register_cvar("dmc_choosesound", "1");
  266. Cvar_Ad = register_cvar("dmc_ad", "1");
  267.  
  268. server_cmd("exec %s/dmc/dmc.cfg", ConfigsDir);
  269. server_exec();
  270. set_cvar_float("mp_chattime", 120.0);
  271.  
  272. VoteMenu = register_menuid("VoteMenu");
  273. RevoteMenu = register_menuid("RevoteMenu");
  274. register_menucmd(VoteMenu, 1023, "VoteMenuKeys");
  275. register_menucmd(RevoteMenu, 1023, "RevoteMenuKeys");
  276. SayText = get_user_msgid("SayText");
  277.  
  278. TimeLimit = get_cvar_num("mp_timelimit");
  279. MaxRounds = get_cvar_num("mp_maxrounds");
  280. oRounds = MaxRounds;
  281.  
  282. if(get_pcvar_num(Cvar_MaxMaps) > MaxChoice)
  283. {
  284. set_pcvar_num(Cvar_MaxMaps, MaxChoice);
  285. }
  286.  
  287. if(get_pcvar_float(Cvar_ChangeSpeed) > MaxCSpeed)
  288. {
  289. set_pcvar_float(Cvar_ChangeSpeed, MaxCSpeed);
  290. }
  291.  
  292. if(get_pcvar_float(Cvar_ChangeSpeed) < 1.0)
  293. {
  294. set_pcvar_float(Cvar_ChangeSpeed, 1.0);
  295. }
  296.  
  297. if(get_pcvar_num(Cvar_MaxMaps) == 1)
  298. {
  299. set_pcvar_num(Cvar_MaxMaps, 2);
  300. }
  301.  
  302. if(MapCycle_Lines-get_pcvar_num(Cvar_MaxMaps) < 0)
  303. {
  304. new Error[64];
  305. formatex(Error, charsmax(Error), "Only %d maps in %s file! (Min: %d)", MapCycle_Lines, MapCycle, get_pcvar_num(Cvar_MaxMaps));
  306. log_amx(Error);
  307.  
  308. if(MapCycle_Lines > 1)
  309. {
  310. set_pcvar_num(Cvar_MaxMaps, MapCycle_Lines);
  311. formatex(Error, charsmax(Error), "MaxMaps set %d", MapCycle_Lines);
  312. log_amx(Error);
  313. }
  314. else
  315. {
  316. Off = 1;
  317. }
  318. }
  319.  
  320. if(TimeLimit == 0 && get_pcvar_num(Cvar_Mod) == 1)
  321. {
  322. Off = 1;
  323. }
  324.  
  325. if(Off == 0)
  326. {
  327. register_event("HLTV", "NewRound", "a", "1=0", "2=0");
  328. register_logevent("SavePresentTime", 2, "0=World triggered", "1=Game_Commencing");
  329. register_logevent("RestartRound", 2, "0=World triggered", "1&Restart_Round_");
  330. register_logevent("RestartRound", 2, "0=World triggered", "1=Game_Commencing");
  331.  
  332. if(get_pcvar_num(Cvar_Mod) == 0)
  333. {
  334. register_logevent("RoundEnd", 2, "0=World triggered", "1=Round_End");
  335. }
  336.  
  337. set_task(0.5, "CheckTime", MapID-1, _, _, "b");
  338.  
  339. if(get_pcvar_num(Cvar_Mod) == 0)
  340. {
  341. if(MaxRounds < MinRounds)
  342. {
  343. server_cmd("mp_maxrounds ^"%d^"", MinRounds);
  344. }
  345.  
  346. server_cmd("mp_timelimit 0");
  347.  
  348. MaxRounds = get_cvar_num("mp_maxrounds");
  349. oRounds = MaxRounds;
  350. }
  351.  
  352. if(get_pcvar_num(Cvar_Mod) == 1)
  353. {
  354. server_cmd("mp_maxrounds 0");
  355. }
  356. }
  357.  
  358. get_mapname(MapName, charsmax(MapName));
  359. get_localinfo("lastMap", LastMap, 31);
  360. set_localinfo("lastMap", MapName);
  361.  
  362. set_task(random_float(0.1, 0.5), "LoadMaps");
  363. set_task(random_float(0.1, 0.5), "LoadVoteMaps");
  364. set_task(random_float(0.1, 0.5), "SavePresentTime");
  365.  
  366. if(get_pcvar_num(Cvar_Ad) == 1)
  367. {
  368. set_task(random_float(100.0, 200.0), "AdvTime", MapID-10, _, _, "b");
  369. }
  370.  
  371. toRTV = false;
  372.  
  373. new Cmd[32];
  374.  
  375. if(get_pcvar_num(Cvar_PlayedMaps) == 1)
  376. {
  377. for(new Num = 0; Num < sizeof MapMenuCommands; Num++)
  378. {
  379. format(Cmd, charsmax(Cmd), "say %s", MapMenuCommands[Num]);
  380. register_clcmd(Cmd, "ShowMapMenu");
  381. }
  382. }
  383.  
  384. for(new Num = 0; Num < sizeof NextMapCommands; Num++)
  385. {
  386. format(Cmd, charsmax(Cmd), "say %s", NextMapCommands[Num]);
  387. register_clcmd(Cmd, "ShowNextMap");
  388. }
  389.  
  390. for(new Num = 0; Num < sizeof CurrentMapCommands; Num++)
  391. {
  392. format(Cmd, charsmax(Cmd), "say %s", CurrentMapCommands[Num]);
  393. register_clcmd(Cmd, "ShowCurrentMap");
  394. }
  395.  
  396. for(new Num = 0; Num < sizeof TimeLeftCommands; Num++)
  397. {
  398. format(Cmd, charsmax(Cmd), "say %s", TimeLeftCommands[Num]);
  399. register_clcmd(Cmd, "ShowTimeLeft");
  400. }
  401.  
  402. for(new Num = 0; Num < sizeof AdminCommands; Num++)
  403. {
  404. format(Cmd, charsmax(Cmd), "say %s", AdminCommands[Num]);
  405. register_clcmd(Cmd, "StartVote");
  406. }
  407.  
  408. if(get_pcvar_num(Cvar_RTV) == 1)
  409. {
  410. for(new Num = 0; Num < sizeof RTVCommands; Num++)
  411. {
  412. format(Cmd, charsmax(Cmd), "say %s", RTVCommands[Num]);
  413. register_clcmd(Cmd, "RockTheVote");
  414. }
  415. }
  416.  
  417. if(get_pcvar_num(Cvar_Nomination) == 1)
  418. {
  419. for(new Num = 0; Num < sizeof NomCommands; Num++)
  420. {
  421. format(Cmd, charsmax(Cmd), "say %s", NomCommands[Num]);
  422. register_clcmd(Cmd, "ShowNomMenu");
  423. }
  424. }
  425.  
  426. }
  427. public SavePresentTime()
  428. {
  429. new Hour[32], Minute[32], Second[32];
  430. format_time(Hour, sizeof Hour - 1, "%H");
  431. format_time(Minute, sizeof Minute - 1, "%M");
  432. format_time(Second, sizeof Second - 1, "%S");
  433. ElapsedTime[0] = str_to_num(Second);
  434. ElapsedTime[1] = str_to_num(Minute);
  435. ElapsedTime[2] = str_to_num(Hour);
  436. RTVTime[2] = str_to_num(Hour);
  437. RTVTime[1] = str_to_num(Minute)+get_pcvar_num(Cvar_RTVMinute);
  438. RTVTime[0] = str_to_num(Second);
  439.  
  440. if(RTVTime[1] >= 60)
  441. {
  442. RTVTime[1] -= 60;
  443. RTVTime[2]++;
  444. }
  445. }
  446. public AdvTime()
  447. {
  448. print_color(0, "%s %L", Prefix, LANG_SERVER, "ADV", PLUGIN, VERSION);
  449. }
  450. public RestartRound() {
  451. Rounds = 0;
  452. NeedRV = false;
  453. ChangeMap = false;
  454. Voted = false;
  455. Revoted = false;
  456. inProcess = false;
  457. AllVotes = 0;
  458.  
  459. for(new Num = 0; Num < 32; Num++)
  460. {
  461. AlreadyNom[Num] = false;
  462. PlayerMap[Num] = 0;
  463. }
  464.  
  465. for(new Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); Num++)
  466. {
  467. MapVote[Num] = 0;
  468. }
  469.  
  470. SavePresentTime();
  471. }
  472. public NewRound() {
  473. if(get_pcvar_num(Cvar_Mod) == 1)
  474. {
  475. if(ChangeMap && Voted && Begined && !Revoted || ChangeMap && Revoted && Begined && !Voted)
  476. {
  477. if(isValidMap(Next))
  478. {
  479. ChangeLevel();
  480. }
  481. }
  482. }
  483. else if(get_pcvar_num(Cvar_Mod) == 0)
  484. {
  485. if(0 >= MaxRounds-Rounds)
  486. {
  487. if(ChangeMap && Voted && Begined && !Revoted || ChangeMap && Revoted && Begined && !Voted)
  488. {
  489. if(isValidMap(Next))
  490. {
  491. ChangeLevel();
  492. }
  493. }
  494. }
  495. }
  496. }
  497. public RoundEnd()
  498. {
  499. if(MaxRounds-Rounds > 0)
  500. {
  501. Rounds += 1;
  502. }
  503. }
  504. public StartVote(id)
  505. {
  506. if(get_user_flags(id) & StartVoteFlag)
  507. {
  508. if(!inProcess || !Voted || !Revoted || !ChangeMap || Off == 0)
  509. {
  510. NeedRV = false;
  511. new String[32];
  512. float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2);
  513. replace_all(String, 2, ".", "");
  514. Begined = true;
  515. inProcess = true;
  516.  
  517. if(get_pcvar_num(Cvar_Mod) == 1)
  518. {
  519. server_cmd("mp_timelimit 0");
  520. }
  521. else if(get_pcvar_num(Cvar_Mod) == 0)
  522. {
  523. Rounds = MaxRounds;
  524. }
  525.  
  526. VoteMod = 2;
  527.  
  528. if(get_pcvar_num(Cvar_HudMod) == 1)
  529. {
  530. remove_task(MapID+8123);
  531. BeginCounter = str_to_num(String);
  532. VoteCounter();
  533. }
  534. else if(get_pcvar_num(Cvar_HudMod) == 0)
  535. {
  536. set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3);
  537. set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime));
  538. ShowSyncHudMsg(0, sHudObj, "%L", LANG_SERVER, "VOTE2", String);
  539. }
  540. }
  541. }
  542. }
  543. public VoteCounter()
  544. {
  545. if(BeginCounter > 0)
  546. {
  547. new String[32];
  548. num_to_str(BeginCounter, String, 2);
  549.  
  550. if(get_pcvar_num(Cvar_CountSound) == 1)
  551. {
  552. new CountSound[32];
  553. num_to_word(BeginCounter, CountSound, 31);
  554.  
  555. if(get_pcvar_num(Cvar_VoteSound) == 1)
  556. client_cmd(0, "spk ^"fvox/%s^"", CountSound);
  557. }
  558.  
  559. set_hudmessage(R, G, B, -1.0, 0.20, 0, 0.1, CHUD);
  560.  
  561. if(VoteMod == 4)
  562. {
  563. ShowSyncHudMsg(0, sHudObj, "%L", LANG_SERVER, "VOTE4", String);
  564. }
  565. else if(VoteMod == 3)
  566. {
  567. ShowSyncHudMsg(0, sHudObj, "%L", LANG_SERVER, "VOTE3", String);
  568. }
  569. else if(VoteMod == 2)
  570. {
  571. ShowSyncHudMsg(0, sHudObj, "%L", LANG_SERVER, "VOTE2", String);
  572. }
  573. else if(VoteMod == 1)
  574. {
  575. ShowSyncHudMsg(0, sHudObj, "%L", LANG_SERVER, "VOTE1", String);
  576. }
  577.  
  578. BeginCounter--;
  579. set_task(1.0, "VoteCounter", MapID+8123);
  580. }
  581. else
  582. {
  583. if(NeedRV)
  584. {
  585. StartRevote();
  586. }
  587. else
  588. {
  589. StartMapChooser();
  590. }
  591. }
  592. }
  593. public RockTheVote(id)
  594. {
  595. new Hour[32], Minute[32], Time[2];
  596. format_time(Hour, sizeof Hour - 1, "%H");
  597. format_time(Minute, sizeof Minute - 1, "%M");
  598. Time[0] = str_to_num(Hour);
  599. Time[1] = str_to_num(Minute);
  600.  
  601. if(Time[0] > RTVTime[2] || Time[0] == RTVTime[2] && Time[1] >= RTVTime[1])
  602. {
  603. toRTV = true;
  604. }
  605.  
  606. if(PlayerRTV[id] || Voted || inProcess || !toRTV || Off == 1)
  607. {
  608. if(!toRTV)
  609. {
  610. if(RTVTime[2] > Time[0])
  611. {
  612. print_color(id, "%s %L", Prefix, LANG_SERVER, "RTV2", (RTVTime[1]+60)-Time[1]);
  613. }
  614. else
  615. {
  616. print_color(id, "%s %L", Prefix, LANG_SERVER, "RTV2", RTVTime[1]-Time[1]);
  617. }
  618. }
  619.  
  620. if(PlayerRTV[id])
  621. {
  622. print_color(id, "%s %L", Prefix, LANG_SERVER, "RTV1");
  623. }
  624.  
  625. return PLUGIN_HANDLED;
  626. }
  627.  
  628. PlayerRTV[id] = true;
  629. RTV++;
  630.  
  631. new Players[32], Num;
  632. get_players(Players, Num, "c");
  633.  
  634. if(RTV >= Num/get_pcvar_num(Cvar_RTVMin))
  635. {
  636. new String[32];
  637. float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2);
  638. replace_all(String, 2, ".", "");
  639. Begined = true;
  640. inProcess = true;
  641.  
  642. if(get_pcvar_num(Cvar_Mod) == 1)
  643. {
  644. server_cmd("mp_timelimit 0");
  645. }
  646. else if(get_pcvar_num(Cvar_Mod) == 0)
  647. {
  648. Rounds = MaxRounds;
  649. }
  650.  
  651. VoteMod = 1;
  652.  
  653. if(get_pcvar_num(Cvar_HudMod) == 1)
  654. {
  655. remove_task(MapID+8123);
  656. BeginCounter = str_to_num(String);
  657. VoteCounter();
  658. }
  659. else if(get_pcvar_num(Cvar_HudMod) == 0)
  660. {
  661. set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3);
  662. set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime));
  663. ShowSyncHudMsg(0, sHudObj, "%L", LANG_SERVER, "VOTE1", String);
  664. }
  665. }
  666. else
  667. {
  668. print_color(0, "%s %L", Prefix, LANG_SERVER, "RTV3", (Num/get_pcvar_num(Cvar_RTVMin))-RTV);
  669. }
  670.  
  671. return PLUGIN_HANDLED;
  672. }
  673. public Extend()
  674. {
  675. NeedRV = false;
  676. ChangeMap = false;
  677. Begined = false;
  678. Voted = false;
  679. Revoted = false;
  680. inProcess = false;
  681. AllVotes = 0;
  682. AllRevotes = 0;
  683.  
  684. new Num;
  685.  
  686. for(Num = 0; Num < 32; Num++)
  687. {
  688. if(!is_user_connected(Num))
  689. {
  690. continue;
  691. }
  692.  
  693. AlreadyNom[Num] = false;
  694. PlayerMap[Num] = 0;
  695. PlayerVoted[Num] = false;
  696. PlayerRevoted[Num] = false;
  697. }
  698.  
  699. for(Num = 0; Num < Nom; Num++)
  700. {
  701. NomMaps[Num] = "";
  702. }
  703.  
  704. for(Num = 0; Num < Max; Num++)
  705. {
  706. Nomed[Num] = 0;
  707. }
  708.  
  709. for(Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); Num++)
  710. {
  711. MapNames[Num] = "";
  712. MapVote[Num] = 0;
  713. }
  714.  
  715. RTV = 0;
  716. Nom = 0;
  717. LoadVoteMaps();
  718. LoadNomMaps();
  719. Next = "";
  720. set_task(get_pcvar_float(Cvar_MenuDestroyTime)+1.0, "VotedMapN", MapID+777);
  721. }
  722. public VotedMapN()
  723. {
  724. VotedMap = "";
  725. }
  726. public CheckTime()
  727. {
  728. static Time[3];
  729. Time[0] = get_timeleft();
  730. Time[1] = Time[0] / 60;
  731. Time[2] = Time[1] / 60;
  732. Time[0] = Time[0] - Time[1] * 60;
  733. Time[1] = Time[1] - Time[2] * 60;
  734.  
  735. if(get_pcvar_num(Cvar_Mod) == 1)
  736. {
  737. if(Time[1] <= get_pcvar_num(Cvar_VoteVariable) && !Begined && !inProcess)
  738. {
  739. new String[32];
  740. float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2);
  741. replace_all(String, 2, ".", "");
  742.  
  743. VoteMod = 3;
  744.  
  745. if(get_pcvar_num(Cvar_HudMod) == 1)
  746. {
  747. remove_task(MapID+8123);
  748. BeginCounter = str_to_num(String);
  749. VoteCounter();
  750. }
  751. else if(get_pcvar_num(Cvar_HudMod) == 0)
  752. {
  753. set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3);
  754. set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime));
  755. ShowSyncHudMsg(0, sHudObj, "%L", LANG_SERVER, "VOTE3", String);
  756. }
  757.  
  758. Begined = true;
  759. inProcess = true;
  760. }
  761.  
  762. if(Time[0] <= 3 && Time[1] == 0 && Time[2] == 0)
  763. {
  764. server_cmd("mp_timelimit 0");
  765. if(!ChangeMap && Voted && !inProcess && !Revoted
  766. || !ChangeMap && Revoted && !inProcess && !Voted)
  767. {
  768. if(get_pcvar_num(Cvar_OnlyNextRound) == 1)
  769. {
  770. print_color(0, "%s %L", Prefix, LANG_SERVER, "MCAR");
  771. set_cvar_string("amx_nextmap", Next);
  772. ChangeMap = true;
  773. }
  774. else if(get_pcvar_num(Cvar_OnlyNextRound) == 0)
  775. {
  776. ChangeMap = true;
  777. set_cvar_string("amx_nextmap", Next);
  778. ChangeLevel();
  779. }
  780. }
  781. }
  782. }
  783. else if(get_pcvar_num(Cvar_Mod) == 0)
  784. {
  785. if(Rounds == MaxRounds-get_pcvar_num(Cvar_VoteVariable) && !Begined && !inProcess)
  786. {
  787. new String[32];
  788. float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2);
  789. replace_all(String, 2, ".", "");
  790.  
  791. VoteMod = 3;
  792.  
  793. if(get_pcvar_num(Cvar_HudMod) == 1)
  794. {
  795. remove_task(MapID+8123);
  796. BeginCounter = str_to_num(String);
  797. VoteCounter();
  798. }
  799. else if(get_pcvar_num(Cvar_HudMod) == 0)
  800. {
  801. set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3);
  802. set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime));
  803. ShowSyncHudMsg(0, sHudObj, "%L", LANG_SERVER, "VOTE3", String);
  804. }
  805.  
  806. Begined = true;
  807. inProcess = true;
  808. }
  809.  
  810. if(Rounds >= MaxRounds && !ChangeMap && Voted
  811. || Rounds >= MaxRounds && !ChangeMap && Revoted)
  812. {
  813. print_color(0, "%s %L", Prefix, LANG_SERVER, "MCAR");
  814. set_cvar_string("amx_nextmap", Next);
  815. ChangeMap = true;
  816. }
  817.  
  818. new CheckRounds;
  819. CheckRounds = get_cvar_num("mp_maxrounds");
  820.  
  821. if(CheckRounds != MaxRounds)
  822. {
  823. MaxRounds = CheckRounds;
  824. }
  825. }
  826.  
  827. if(!toRTV)
  828. {
  829. new Hour[32], Minute[32];
  830. format_time(Hour, sizeof Hour - 1, "%H");
  831. format_time(Minute, sizeof Minute - 1, "%M");
  832. Time[2] = str_to_num(Hour);
  833. Time[1] = str_to_num(Minute);
  834.  
  835. if(RTVTime[2] == Time[2] && RTVTime[1]+get_pcvar_num(Cvar_RTVMinute) <= Time[1])
  836. {
  837. toRTV = true;
  838. }
  839. }
  840. }
  841. public StartMapChooser()
  842. {
  843. remove_task(MapID+3);
  844. ChangeMap = false;
  845. Voted = false;
  846. Revoted = false;
  847. MapCounter = get_pcvar_num(Cvar_VoteCounter);
  848. Counter();
  849. VoteMod = 0;
  850. if(get_pcvar_num(Cvar_VoteSound) == 1)
  851. client_cmd(0, "spk Gman/Gman_Choose%i", random_num(1, 2));
  852. }
  853. public Change()
  854. {
  855. if(ChangeMap)
  856. {
  857. server_cmd("changelevel ^"%s^"", Next);
  858. }
  859. }
  860. public ShowTimeLeft()
  861. {
  862. if(get_pcvar_num(Cvar_Mod) == 1)
  863. {
  864. static Time[3];
  865. Time[0] = get_timeleft();
  866. Time[1] = Time[0] / 60;
  867. Time[2] = Time[1] / 60;
  868. Time[0] = Time[0] - Time[1] * 60;
  869. Time[1] = Time[1] - Time[2] * 60;
  870. if(ChangeMap && Voted && Begined && !Revoted || ChangeMap && Revoted && Begined && !Voted)
  871. {
  872. print_color(0, "%s!y %L!t 0!y:!t00!y:!t00", Prefix, LANG_SERVER, "TL");
  873. }
  874. else
  875. {
  876. print_color(0, "%s!y %L!t %d%!y:!t%02d!y:!t%02d", Prefix, LANG_SERVER, "TL", Time[2], Time[1], Time[0]);
  877. }
  878. }
  879. else if(get_pcvar_num(Cvar_Mod) == 0)
  880. {
  881. print_color(0, "%s!t %L", Prefix, LANG_SERVER, "RM", MaxRounds-Rounds);
  882. }
  883. }
  884. public ShowNextMap()
  885. {
  886. new Status[2][32];
  887. formatex(Status[0], 31, "%L", LANG_SERVER, "NYT");
  888. formatex(Status[1], 31, "%L", LANG_SERVER, "VIP");
  889. if(isValidMap(Next))
  890. print_color(0, "%s!y %L!t %s", Prefix, LANG_SERVER, "NM", Next);
  891. else
  892. {
  893. if(inProcess)
  894. print_color(0, "%s!y %L!t %s", Prefix, LANG_SERVER, "NM", Status[1]);
  895. else
  896. print_color(0, "%s!y %L!t %s", Prefix, LANG_SERVER, "NM", Status[0]);
  897. }
  898. }
  899. public ShowCurrentMap()
  900. {
  901. print_color(0, "%s!y %L", Prefix, LANG_SERVER, "CM", MapName);
  902. }
  903. public Counter()
  904. {
  905. if(MapCounter < 1)
  906. {
  907. Voted = true;
  908.  
  909. inProcess = false;
  910.  
  911. CheckVotes();
  912.  
  913. for(new Num; Num < 32; Num++)
  914. {
  915. if(!is_user_connected(Num))
  916. continue;
  917.  
  918. ShowVoteMenu(Num);
  919. }
  920. }
  921. else
  922. {
  923. MapCounter--;
  924.  
  925. set_task(1.0, "Counter", MapID+1);
  926.  
  927. for(new Num; Num < 32; Num++)
  928. {
  929. if(!is_user_connected(Num))
  930. continue;
  931.  
  932. ShowVoteMenu(Num);
  933. }
  934. }
  935. }
  936. public NextMap()
  937. {
  938. remove_task(MapID-4);
  939.  
  940. if(!NeedRV)
  941. {
  942. ShowNextMap();
  943. }
  944.  
  945. set_task(get_pcvar_float(Cvar_MenuDestroyTime), "DestroyVoteMenu", MapID-4);
  946. }
  947. public DestroyVoteMenu()
  948. {
  949. for(new Num; Num < 32; Num++)
  950. {
  951. if(!is_user_connected(Num))
  952. continue;
  953.  
  954. show_menu(Num, 0, "^n", 1);
  955. }
  956. }
  957. public ShowVoteMenu(id)
  958. {
  959. if(equal(VotedMap, MapName))
  960. {
  961. DestroyVoteMenu();
  962. return;
  963. }
  964.  
  965. new Menu[512], String[128], Key, MapPercent[MaxChoice];
  966.  
  967. AllVotes = 0;
  968.  
  969. for(new All; All < get_pcvar_num(Cvar_MaxMaps); All++)
  970. {
  971. AllVotes += MapVote[All];
  972. }
  973.  
  974. formatex(String, 127, "%L", LANG_SERVER, "CHONM", AllVotes);
  975. add(Menu, 511, String);
  976.  
  977. for(new Num; Num < get_pcvar_num(Cvar_MaxMaps); Num++)
  978. {
  979. if(MapVote[Num] > 0)
  980. MapPercent[Num] = ((MapVote[Num]*100)/(AllVotes));
  981. if(equal(MapName, MapNames[Num]))
  982. formatex(String, 127, "%L", LANG_SERVER, "MOP5", Num+1, MapNames[Num], MapVote[Num], MapPercent[Num]);
  983. else
  984. formatex(String, 127, "%L", LANG_SERVER, "MOPD", Num+1, MapNames[Num], MapVote[Num], MapPercent[Num]);
  985. add(Menu, 511, String);
  986. }
  987.  
  988. if(Voted)
  989. formatex(String, 127, "%L", LANG_SERVER, "MNM", Next);
  990. else if(!Revoted && !Voted && MapCounter <= 0 && NeedRV)
  991. formatex(String, 127, "%L", LANG_SERVER, "MNRE");
  992. else
  993. formatex(String, 127, "%L", LANG_SERVER, "MCSL", MapCounter);
  994.  
  995. add(Menu, 511, String);
  996.  
  997. Key = (-1^(-1<<(get_pcvar_num(Cvar_MaxMaps))));
  998.  
  999. show_menu(id, Key, Menu, -1, "VoteMenu");
  1000. }
  1001. public VoteMenuKeys(id, Key)
  1002. {
  1003.  
  1004. if(PlayerVoted[id] || Voted)
  1005. {
  1006. if(PlayerVoted[id])
  1007. print_color(id, "%s %L", Prefix, LANG_SERVER, "AVO");
  1008.  
  1009. return;
  1010. }
  1011.  
  1012. if(!Begined)
  1013. {
  1014. show_menu(id, 0, "^n", 1);
  1015. return;
  1016. }
  1017.  
  1018. new PlayerName[32];
  1019. get_user_name(id, PlayerName, 31);
  1020.  
  1021. if(Key <= get_pcvar_num(Cvar_MaxMaps)-1)
  1022. {
  1023. PlayerMap[id] = Key;
  1024. PlayerVoted[id] = true;
  1025. print_color(0, "%s %L", Prefix, LANG_SERVER, "PCHO", PlayerName, MapNames[Key]);
  1026. MapVote[Key]++;
  1027. if(get_pcvar_num(Cvar_ChooseSound) == 1)
  1028. client_cmd(0, "spk buttons/lightswitch2");
  1029. }
  1030.  
  1031. ShowVoteMenu(id);
  1032. }
  1033. public LoadVoteMaps()
  1034. {
  1035. new Line[128], Map[32], Len, Used[Max], Loaded, File, Found;
  1036.  
  1037. File = fopen(MapCycle, "rt");
  1038.  
  1039. if(File)
  1040. {
  1041.  
  1042. for(new lNum; lNum < Max; lNum++)
  1043. {
  1044. Found = 0;
  1045.  
  1046. new RandomMap = random(MapCycle_Lines);
  1047. read_file(MapCycle, RandomMap, Line, 127, Len);
  1048.  
  1049. parse(Line, Map, 31);
  1050.  
  1051. for(new mc; mc < MaxChoice; mc++)
  1052. {
  1053. if(equali(Map, MapNames[mc]))
  1054. {
  1055. Found = 1;
  1056. }
  1057. }
  1058.  
  1059. if(Found == 1 || equali(Map, MapName))
  1060. {
  1061. continue;
  1062. }
  1063.  
  1064. if(Used[RandomMap] == 0 && Loaded < get_pcvar_num(Cvar_MaxMaps)-1 && isValidMap(Map))
  1065. {
  1066. Used[RandomMap] = 1;
  1067. copy(MapNames[Loaded], sizeof Map - 1, Map);
  1068. Loaded++;
  1069. }
  1070. }
  1071.  
  1072. }
  1073.  
  1074. fclose(File);
  1075.  
  1076. MapNames[get_pcvar_num(Cvar_MaxMaps)-1] = MapName;
  1077. set_task(0.1, "LoadNomMaps", MapID+69);
  1078. }
  1079. public LoadNomMaps()
  1080. {
  1081. new Line[128], Map[32], File, Found;
  1082.  
  1083. File = fopen(MapCycle, "rt");
  1084.  
  1085. while(!feof(File))
  1086. {
  1087. fgets(File, Line, charsmax(Line));
  1088.  
  1089. parse(Line, Map, 31);
  1090.  
  1091. for(new nn; nn < NomNum; nn++)
  1092. {
  1093. if(equali(Map, NomMaps[nn]))
  1094. {
  1095. Found = 1;
  1096. }
  1097. }
  1098.  
  1099. if(Found == 1)
  1100. {
  1101. continue;
  1102. }
  1103.  
  1104. if(NomNum < MapCycle_Lines && isValidMap(Map))
  1105. {
  1106. copy(NomMaps[NomNum], sizeof Map - 1, Map);
  1107. NomNum++;
  1108. }
  1109. }
  1110.  
  1111. fclose(File);
  1112. }
  1113. public ShowMapMenu(id)
  1114. {
  1115. new Menu, MenuLine[128], MapDatas[2][32], String[32];
  1116. formatex(MenuLine, 127, "%L", LANG_SERVER, "MPNM");
  1117. Menu = menu_create(MenuLine, "MapKey");
  1118.  
  1119. for(new MapNum; MapNum < MapFile_Lines-1; MapNum++)
  1120. {
  1121. parse(Maps[MapNum], MapDatas[0], 31, MapDatas[1], 31);
  1122. formatex(MenuLine, 127, "%L", LANG_SERVER, "PMPM", MapDatas[0], MapDatas[1]);
  1123. num_to_str(MapNum, String, 2);
  1124. menu_additem(Menu, MenuLine, String);
  1125. }
  1126.  
  1127. formatex(MenuLine, 127, "%L", LANG_SERVER, "MNEXT");
  1128. menu_setprop(Menu, MPROP_NEXTNAME, MenuLine);
  1129. formatex(MenuLine, 127, "%L", LANG_SERVER, "MEXIT");
  1130. menu_setprop(Menu, MPROP_EXITNAME, MenuLine);
  1131. formatex(MenuLine, 127, "%L", LANG_SERVER, "MBACK");
  1132. menu_setprop(Menu, MPROP_BACKNAME, MenuLine);
  1133. menu_setprop(Menu, MPROP_PERPAGE, PMPage);
  1134. menu_display(id, Menu);
  1135. }
  1136. public MapKey(id, Menu, Item)
  1137. {
  1138. new MenuNum[2], Data[2][32], Key;
  1139. menu_item_getinfo(Menu, Item, MenuNum[0], Data[0], charsmax(Data), Data[1], charsmax(Data), MenuNum[1]);
  1140.  
  1141. Key = str_to_num(Data[0]);
  1142.  
  1143. if(Item == MENU_EXIT)
  1144. {
  1145. menu_destroy(Menu);
  1146. return;
  1147. }
  1148.  
  1149. new MapDatas[2][32];
  1150. parse(Maps[Key], MapDatas[0], 31, MapDatas[1], 31);
  1151.  
  1152. print_color(id, "%s %L", Prefix, LANG_SERVER, "MNP", MapDatas[0], MapDatas[1]);
  1153. }
  1154. public ShowNomMenu(id)
  1155. {
  1156. if(Nom >= get_pcvar_num(Cvar_MaxMaps)-1)
  1157. {
  1158. print_color(id, "%s %L", Prefix, LANG_SERVER, "NOMT");
  1159. return;
  1160. }
  1161. if(AlreadyNom[id])
  1162. {
  1163. print_color(id, "%s %L", Prefix, LANG_SERVER, "NOMN");
  1164. return;
  1165. }
  1166. if(inProcess || Voted || Revoted)
  1167. {
  1168. return;
  1169. }
  1170.  
  1171. new Menu, MenuLine[128], Already;
  1172. formatex(MenuLine, 127, "%L", LANG_SERVER, "NOMM");
  1173. Menu = menu_create(MenuLine, "NomKey");
  1174.  
  1175. for(new MapNum; MapNum < MapCycle_Lines; MapNum++)
  1176. {
  1177. if(Nomed[MapNum] == 1)
  1178. continue;
  1179.  
  1180. Already = 0;
  1181.  
  1182. for(new mc; mc < MaxChoice; mc++)
  1183. {
  1184. if(equali(NomMaps[MapNum], MapNames[mc]))
  1185. {
  1186. Already = 1;
  1187. }
  1188. }
  1189.  
  1190. if(Already == 1)
  1191. continue;
  1192.  
  1193. if(equali(NomMaps[MapNum], MapName))
  1194. continue;
  1195.  
  1196. if(!isValidMap(NomMaps[MapNum]))
  1197. continue;
  1198.  
  1199. formatex(MenuLine, 127, "%L", LANG_SERVER, "NOM1", NomMaps[MapNum]);
  1200. menu_additem(Menu, MenuLine, NomMaps[MapNum]);
  1201. }
  1202.  
  1203. formatex(MenuLine, 127, "%L", LANG_SERVER, "MNEXT");
  1204. menu_setprop(Menu, MPROP_NEXTNAME, MenuLine);
  1205. formatex(MenuLine, 127, "%L", LANG_SERVER, "MEXIT");
  1206. menu_setprop(Menu, MPROP_EXITNAME, MenuLine);
  1207. formatex(MenuLine, 127, "%L", LANG_SERVER, "MBACK");
  1208. menu_setprop(Menu, MPROP_BACKNAME, MenuLine);
  1209. menu_display(id, Menu);
  1210. }
  1211. public NomKey(id, Menu, Item)
  1212. {
  1213. if(Nom > get_pcvar_num(Cvar_MaxMaps)-1)
  1214. {
  1215. print_color(id, "%s %L", Prefix, LANG_SERVER, "NOMT");
  1216. return PLUGIN_HANDLED;
  1217. }
  1218. if(AlreadyNom[id])
  1219. {
  1220. print_color(id, "%s %L", Prefix, LANG_SERVER, "NOMN");
  1221. return PLUGIN_HANDLED;
  1222. }
  1223. if(inProcess || Voted)
  1224. {
  1225. return PLUGIN_HANDLED;
  1226. }
  1227.  
  1228. new MenuNum[2], Data_1[32], Data_2[32], PlayerName[32];
  1229. menu_item_getinfo(Menu, Item, MenuNum[0], Data_1, charsmax(Data_1), Data_2, charsmax(Data_2), MenuNum[1]);
  1230.  
  1231. if(Item == MENU_EXIT)
  1232. {
  1233. menu_destroy(Menu);
  1234. return PLUGIN_HANDLED;
  1235. }
  1236.  
  1237. new Already = 0;
  1238.  
  1239. for(new mc; mc < MaxChoice; mc++)
  1240. {
  1241. if(equali(Data_1, MapNames[mc]))
  1242. {
  1243. Already = 1;
  1244. }
  1245. }
  1246.  
  1247. if(Already == 1 || !isValidMap(Data_1) || Nomed[Nom] == 1)
  1248. return PLUGIN_HANDLED;
  1249.  
  1250. get_user_name(id, PlayerName, charsmax(PlayerName));
  1251.  
  1252. print_color(0, "%s %L", Prefix, LANG_SERVER, "NOMC", PlayerName, Data_1);
  1253.  
  1254. if(get_pcvar_num(Cvar_NomChance) >= (random_num(1,100)))
  1255. {
  1256. MapNames[Nom] = Data_1;
  1257. }
  1258.  
  1259. MapNames[Nom] = Data_1;
  1260. Nomed[Nom] = 1;
  1261. Nom++;
  1262. AlreadyNom[id] = true;
  1263.  
  1264. return PLUGIN_HANDLED;
  1265. }
  1266. public LoadMapMenu()
  1267. {
  1268. new Line[64], File, Len;
  1269.  
  1270. File = fopen(MapFile, "rt");
  1271.  
  1272. if(File)
  1273. {
  1274. for(new MapNum; MapNum < MapFile_Lines; MapNum++)
  1275. {
  1276. read_file(MapFile, MapNum, Line, 63, Len);
  1277.  
  1278. if(Line[0] == ';' || strlen(Line) < 2)
  1279. continue;
  1280.  
  1281. remove_quotes(Line);
  1282.  
  1283. copy(Maps[MapNum], sizeof Line - 1, Line);
  1284. }
  1285. }
  1286.  
  1287. fclose(File);
  1288. }
  1289. public LoadMaps()
  1290. {
  1291. remove_task(MapID);
  1292.  
  1293. new Line[64], File, MapDatas[2][32], LineNum, MapNum, bool:Found;
  1294. File = fopen(MapFile, "rt");
  1295.  
  1296. while(!feof(File))
  1297. {
  1298. fgets(File, Line, charsmax(Line));
  1299.  
  1300. if(Line[0] == ';' || strlen(Line) < 2)
  1301. continue;
  1302.  
  1303. parse(Line, MapDatas[0], 31, MapDatas[1], 31);
  1304.  
  1305. if(equal(MapDatas[0], MapName))
  1306. {
  1307. MapNum = str_to_num(MapDatas[1])+1;
  1308. format(Line, sizeof Line - 1, "^"%s^" ^"%d^"", MapName, MapNum);
  1309. write_file(MapFile, Line, LineNum);
  1310. Found = true;
  1311. }
  1312.  
  1313. LineNum++;
  1314. }
  1315.  
  1316. fclose(File);
  1317.  
  1318. if(!Found)
  1319. {
  1320. NewMap();
  1321. }
  1322.  
  1323. set_task(0.5, "LoadMapMenu", MapID);
  1324. }
  1325. public NewMap()
  1326. {
  1327. new Line[32], File;
  1328. File = fopen(MapFile, "at+");
  1329. formatex(Line, sizeof Line - 1, "^"%s^" ^"%d^"^n", MapName, 1);
  1330. fprintf(File, Line);
  1331. fclose(File);
  1332. }
  1333. public StartRevoteTime()
  1334. {
  1335. new String[32];
  1336. float_to_str(get_pcvar_float(Cvar_WaitRevoteMenuTime), String, 2);
  1337. replace_all(String, 2, ".", "");
  1338. VoteMod = 4;
  1339. if(get_pcvar_num(Cvar_HudMod) == 1)
  1340. {
  1341. remove_task(MapID+8123);
  1342. BeginCounter = str_to_num(String);
  1343. VoteCounter();
  1344. }
  1345. else if(get_pcvar_num(Cvar_HudMod) == 0)
  1346. {
  1347. set_task(get_pcvar_float(Cvar_StartRevoteTime), "StartRevote", MapID+33);
  1348. set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime));
  1349. ShowSyncHudMsg(0, sHudObj, "%L", LANG_SERVER, "VOTE4", String);
  1350. }
  1351.  
  1352. inProcess = true;
  1353. }
  1354. public StartRevote()
  1355. {
  1356. Voted = false;
  1357. Begined = true;
  1358. MapCounter = get_pcvar_num(Cvar_VoteCounter);
  1359. ReCounter();
  1360. if(get_pcvar_num(Cvar_VoteSound) == 1)
  1361. client_cmd(0, "spk Gman/Gman_Choose%i", random_num(1, 2));
  1362. }
  1363. public ShowRevoteMenu(id)
  1364. {
  1365. if(equal(VotedMap, MapName))
  1366. {
  1367. DestroyVoteMenu();
  1368. return;
  1369. }
  1370.  
  1371. new Menu[512], String[128], Key, MapPercent[MaxChoice];
  1372.  
  1373. AllRevotes = 0;
  1374.  
  1375. for(new All; All < 2; All++)
  1376. {
  1377. AllRevotes += RevoteCounts[All];
  1378. }
  1379.  
  1380. formatex(String, 127, "%L", LANG_SERVER, "CHONM", AllRevotes);
  1381. add(Menu, 511, String);
  1382.  
  1383. for(new Num; Num < 2; Num++)
  1384. {
  1385. if(RevoteCounts[Num] > 0)
  1386. MapPercent[Num] = ((RevoteCounts[Num]*100)/(AllRevotes));
  1387. formatex(String, 127, "%L", LANG_SERVER, "MOPD", Num+1, MapRevote[Num], RevoteCounts[Num], MapPercent[Num]);
  1388. add(Menu, 511, String);
  1389. }
  1390.  
  1391. if(!Revoted)
  1392. formatex(String, 127, "%L", LANG_SERVER, "MCSL", MapCounter);
  1393. else
  1394. formatex(String, 127, "%L", LANG_SERVER, "MNM", Next);
  1395.  
  1396. add(Menu, 511, String);
  1397.  
  1398. Key = (-1^(-1<<(2)));
  1399.  
  1400. show_menu(id, Key, Menu, -1, "RevoteMenu");
  1401. }
  1402. public RevoteMenuKeys(id, Key)
  1403. {
  1404. if(PlayerRevoted[id] || Revoted)
  1405. {
  1406. if(PlayerVoted[id])
  1407. print_color(id, "%s %L", Prefix, LANG_SERVER, "AVO");
  1408.  
  1409. ShowRevoteMenu(id);
  1410. return;
  1411. }
  1412.  
  1413. if(!Begined)
  1414. {
  1415. show_menu(id, 0, "^n", 1);
  1416. return;
  1417. }
  1418.  
  1419. new PlayerName[32];
  1420. get_user_name(id, PlayerName, 31);
  1421.  
  1422. if(Key <= 2)
  1423. {
  1424. PlayerMap[id] = Key;
  1425. PlayerRevoted[id] = true;
  1426. print_color(0, "%s %L", Prefix, LANG_SERVER, "PCHO", PlayerName, MapRevote[Key]);
  1427. RevoteCounts[Key]++;
  1428. if(get_pcvar_num(Cvar_ChooseSound) == 1)
  1429. client_cmd(0, "spk buttons/lightswitch2");
  1430. }
  1431.  
  1432. ShowRevoteMenu(id);
  1433. }
  1434. public ReCounter()
  1435. {
  1436. if(MapCounter < 1)
  1437. {
  1438. Revoted = true;
  1439.  
  1440. inProcess = false;
  1441.  
  1442. CheckRevotes();
  1443.  
  1444. for(new Num; Num < 32; Num++)
  1445. {
  1446. if(!is_user_connected(Num))
  1447. continue;
  1448.  
  1449. ShowRevoteMenu(Num);
  1450. }
  1451. }
  1452. else
  1453. {
  1454. MapCounter--;
  1455.  
  1456. set_task(1.0, "ReCounter", MapID+211);
  1457.  
  1458. for(new Num; Num < 32; Num++)
  1459. {
  1460. if(!is_user_connected(Num))
  1461. continue;
  1462.  
  1463. ShowRevoteMenu(Num);
  1464. }
  1465. }
  1466. }
  1467. public client_disconnect(id)
  1468. {
  1469. if(PlayerRTV[id])
  1470. {
  1471. RTV--;
  1472. PlayerRTV[id] = false;
  1473. }
  1474.  
  1475. if(PlayerVoted[id])
  1476. {
  1477. MapVote[PlayerMap[id]]--;
  1478. PlayerVoted[id] = false;
  1479. }
  1480.  
  1481. if(PlayerRevoted[id])
  1482. {
  1483. RevoteCounts[PlayerMap[id]]--;
  1484. PlayerRevoted[id] = false;
  1485. }
  1486.  
  1487. }
  1488. stock ChangeLevel()
  1489. {
  1490. set_task(get_pcvar_float(Cvar_ChangeSpeed), "Change", MapID+2);
  1491. message_begin(MSG_ALL, SVC_INTERMISSION);
  1492. message_end();
  1493. }
  1494. stock print_color(const id, const input[], any:...)
  1495. {
  1496. new Count = 1, Players[32];
  1497. static Msg[191];
  1498. vformat(Msg, 190, input, 3);
  1499.  
  1500. replace_all(Msg, 190, "!g", "^4");
  1501. replace_all(Msg, 190, "!y", "^1");
  1502. replace_all(Msg, 190, "!t", "^3");
  1503.  
  1504. if(id) Players[0] = id; else get_players(Players, Count, "ch");
  1505. {
  1506. for (new i = 0; i < Count; i++)
  1507. {
  1508. if (is_user_connected(Players[i]))
  1509. {
  1510. message_begin(MSG_ONE_UNRELIABLE, SayText, _, Players[i]);
  1511. write_byte(Players[i]);
  1512. write_string(Msg);
  1513. message_end();
  1514. }
  1515. }
  1516. }
  1517. return PLUGIN_HANDLED;
  1518. }
  1519. stock CheckVotes() {
  1520.  
  1521. if(AllVotes == 0)
  1522. {
  1523. Revoted = false;
  1524. Next = MapNames[0];
  1525. set_cvar_string("amx_nextmap", Next);
  1526. NextMap();
  1527. return PLUGIN_HANDLED;
  1528. }
  1529.  
  1530. new VoteNum_1 = 0;
  1531.  
  1532. for(new Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); ++Num)
  1533. {
  1534. if(MapVote[VoteNum_1] < MapVote[Num])
  1535. {
  1536. VoteNum_1 = Num;
  1537. }
  1538. }
  1539.  
  1540. if((MapVote[VoteNum_1]*100/AllVotes) >= get_pcvar_num(Cvar_VotePercentMin))
  1541. {
  1542. Revoted = false;
  1543. Next = MapNames[VoteNum_1];
  1544. VotedMap = Next;
  1545. set_cvar_string("amx_nextmap", Next);
  1546.  
  1547. if(get_pcvar_num(Cvar_Mod) == 1)
  1548. {
  1549. if(equali(Next, MapName))
  1550. {
  1551. new Hour[32], Minute[32], Second[32], pTime[3];
  1552. format_time(Hour, sizeof Hour - 1, "%H");
  1553. format_time(Minute, sizeof Minute - 1, "%M");
  1554. format_time(Second, sizeof Second - 1, "%S");
  1555. pTime[0] = str_to_num(Second);
  1556. pTime[1] = str_to_num(Minute);
  1557. pTime[2] = str_to_num(Hour);
  1558.  
  1559. pTime[1] = pTime[1] - ElapsedTime[1];
  1560.  
  1561. if(pTime[0] >= ElapsedTime[0])
  1562. pTime[0] = pTime[0] - ElapsedTime[0];
  1563. else
  1564. {
  1565. pTime[0] = pTime[0]+60 - ElapsedTime[0];
  1566. pTime[1]--;
  1567. }
  1568.  
  1569. if(pTime[2] == ElapsedTime[2])
  1570. server_cmd("mp_timelimit %d.%02d", get_pcvar_num(Cvar_Extend)+pTime[1], pTime[0]);
  1571. else
  1572. server_cmd("mp_timelimit %d.%02d", (get_pcvar_num(Cvar_Extend)+pTime[1])+(60*(pTime[2]-ElapsedTime[2])), pTime[0]);
  1573.  
  1574. print_color(0, "%s %L", Prefix, LANG_SERVER, "MEXTEND1", get_pcvar_num(Cvar_Extend));
  1575.  
  1576. Extend();
  1577. }
  1578. }
  1579. else if(get_pcvar_num(Cvar_Mod) == 0)
  1580. {
  1581. if(equali(Next, MapName))
  1582. {
  1583. print_color(0, "%s %L", Prefix, LANG_SERVER, "MEXTEND2", get_pcvar_num(Cvar_Extend));
  1584. server_cmd("mp_maxrounds ^"%d^"", get_pcvar_num(Cvar_Extend)+oRounds);
  1585.  
  1586. Rounds = 0;
  1587. MaxRounds = get_pcvar_num(Cvar_Extend);
  1588.  
  1589. Extend();
  1590. }
  1591. }
  1592. }
  1593. else
  1594. {
  1595. NeedRV = true;
  1596. Voted = false;
  1597.  
  1598. MapVote[VoteNum_1] = -MapVote[VoteNum_1];
  1599.  
  1600. new VoteNum_1_1 = 0;
  1601.  
  1602. for(new Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); ++Num)
  1603. {
  1604. if(MapVote[VoteNum_1_1] < MapVote[Num])
  1605. {
  1606. VoteNum_1_1 = Num;
  1607. }
  1608. }
  1609.  
  1610. MapVote[VoteNum_1] = 0-MapVote[VoteNum_1];
  1611.  
  1612. copy(MapRevote[0], 31, MapNames[VoteNum_1]);
  1613. copy(MapRevote[1], 31, MapNames[VoteNum_1_1]);
  1614.  
  1615. RevoteCounts[0] = 0;
  1616. RevoteCounts[1] = 0;
  1617.  
  1618. VoteMod = 0;
  1619. set_task(get_pcvar_float(Cvar_StartRevoteTime), "StartRevoteTime", MapID+3);
  1620. print_color(0, "%s %L", Prefix, LANG_SERVER, "RER", get_pcvar_num(Cvar_VotePercentMin));
  1621. }
  1622.  
  1623. NextMap();
  1624. return PLUGIN_CONTINUE;
  1625. }
  1626. stock CheckRevotes() {
  1627.  
  1628. if(AllRevotes == 0)
  1629. {
  1630. Next = MapRevote[0];
  1631. set_cvar_string("amx_nextmap", Next);
  1632. NeedRV = false;
  1633. VotedMap = Next;
  1634. NextMap();
  1635. return PLUGIN_HANDLED;
  1636. }
  1637.  
  1638. new VoteNum_1 = 0;
  1639.  
  1640. for(new Num = 0; Num < 2; ++Num)
  1641. {
  1642. if(RevoteCounts[VoteNum_1] < RevoteCounts[Num])
  1643. VoteNum_1 = Num;
  1644. }
  1645.  
  1646. Next = MapRevote[VoteNum_1];
  1647. set_cvar_string("amx_nextmap", Next);
  1648. NeedRV = false;
  1649. VotedMap = Next;
  1650.  
  1651. if(get_pcvar_num(Cvar_Mod) == 1)
  1652. {
  1653. if(equali(Next, MapName))
  1654. {
  1655. new Hour[32], Minute[32], Second[32], pTime[3];
  1656. format_time(Hour, sizeof Hour - 1, "%H");
  1657. format_time(Minute, sizeof Minute - 1, "%M");
  1658. format_time(Second, sizeof Second - 1, "%S");
  1659. pTime[0] = str_to_num(Second);
  1660. pTime[1] = str_to_num(Minute);
  1661. pTime[2] = str_to_num(Hour);
  1662.  
  1663. pTime[1] = pTime[1] - ElapsedTime[1];
  1664.  
  1665. if(pTime[0] >= ElapsedTime[0])
  1666. pTime[0] = pTime[0] - ElapsedTime[0];
  1667. else
  1668. {
  1669. pTime[0] = pTime[0]+60 - ElapsedTime[0];
  1670. pTime[1]--;
  1671. }
  1672.  
  1673. if(pTime[2] == ElapsedTime[2])
  1674. server_cmd("mp_timelimit %d.%02d", get_pcvar_num(Cvar_Extend)+pTime[1], pTime[0]);
  1675. else
  1676. server_cmd("mp_timelimit %d.%02d", (get_pcvar_num(Cvar_Extend)+pTime[1])+(60*(pTime[2]-ElapsedTime[2])), pTime[0]);
  1677.  
  1678. print_color(0, "%s %L", Prefix, LANG_SERVER, "MEXTEND1", get_pcvar_num(Cvar_Extend));
  1679.  
  1680. Extend();
  1681. }
  1682. }
  1683. else if(get_pcvar_num(Cvar_Mod) == 0)
  1684. {
  1685. if(equali(Next, MapName))
  1686. {
  1687. print_color(0, "%s %L", Prefix, LANG_SERVER, "MEXTEND2", get_pcvar_num(Cvar_Extend));
  1688. server_cmd("mp_maxrounds ^"%d^"", get_pcvar_num(Cvar_Extend)+oRounds);
  1689.  
  1690. Rounds = MaxRounds-get_pcvar_num(Cvar_Extend);
  1691. MaxRounds = get_pcvar_num(Cvar_Extend);
  1692.  
  1693. Extend();
  1694. }
  1695. }
  1696.  
  1697. NextMap();
  1698. return PLUGIN_CONTINUE;
  1699. }
  1700. stock bool:isValidMap(Map[])
  1701. {
  1702. if(is_map_valid(Map))
  1703. {
  1704. return true;
  1705. }
  1706.  
  1707. new Len = strlen(Map) - 4;
  1708.  
  1709. if(0 > Len)
  1710. {
  1711. return false;
  1712. }
  1713.  
  1714. if(equali(Map[Len], ".bsp"))
  1715. {
  1716. Map[Len] = '^0';
  1717.  
  1718. if(is_map_valid(Map))
  1719. {
  1720. return true;
  1721. }
  1722. }
  1723.  
  1724. return false;
  1725. }

Ők köszönték meg DeR0iD nek ezt a hozzászólást (összesen 2):pista1993 (2015.07.04. 08:32) • FonoK (2017.01.26. 19:56)
  Népszerűség: 4.55%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pályaszavaztató - DMC v2.01
HozzászólásElküldve:2015.06.10. 20:10 
Offline
Fanatikus
Avatar

Csatlakozott:2014.06.08. 10:25
Hozzászólások:164
Megköszönt másnak: 38 alkalommal
Megköszönték neki: 19 alkalommal
Így van jó lett, meg amúgy a galileo nekem valamiért nem megy, de nem is baj, ja meg jut eszembe valahogy a betűtípus méretét kisebbre lehet venni? mert akkor nem lenne rossz, mert írtak többen is, hogy betakarja a képernyőt, gondolom 640x480-ba játszanak vagy nem tudom, valami megoldás esetleg?

_________________
Kép

87.229.77.40:27020

Ők köszönték meg joxxa4cfg nek ezt a hozzászólást: FonoK (2017.01.26. 19:56)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pályaszavaztató - DMC v2.01
HozzászólásElküldve:2015.06.10. 20:12 
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
A menü mérete (már ha állítható kézileg) kliens felőli megoldás. Szóval nem tudod módósítani.

Alternatív megoldásként a Dhudot ajánlanám, hisz az alapértelmezetten nagy felbontáson nagy, kicsin meg kisebb mint a sima hudüzenet, s abból kirakni a menüpontokat. Sok sikert.

_________________
http://www.easyrankup.eu

Ők köszönték meg kiki nek ezt a hozzászólást: FonoK (2017.01.26. 19:56)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pályaszavaztató - DMC v2.01
HozzászólásElküldve:2015.06.10. 20:27 
Offline
A Scripter

Csatlakozott:2013.11.19. 19:08
Hozzászólások:827
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 315 alkalommal
Régebbi verziót dhudban csináltam. Alliedsen a mostanit ajánlották.

Ők köszönték meg DeR0iD nek ezt a hozzászólást (összesen 2):pista1993 (2015.07.04. 08:32) • FonoK (2017.01.26. 19:56)
  Népszerűség: 4.55%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pályaszavaztató - DMC v2.01
HozzászólásElküldve:2015.06.17. 22:06 
Offline
Fanatikus
Avatar

Csatlakozott:2014.06.08. 10:25
Hozzászólások:164
Megköszönt másnak: 38 alkalommal
Megköszönték neki: 19 alkalommal
Észrevétel:
Többször is előfordult (nem mindig!!), hogy nem megyünk el a következő mapra :O vagyis nem vált el
valamint beírjuk, hogy rtv és nem írja senkinek, hogy beírta :D

_________________
Kép

87.229.77.40:27020

Ők köszönték meg joxxa4cfg nek ezt a hozzászólást: FonoK (2017.01.26. 19:56)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pályaszavaztató - DMC v2.01
HozzászólásElküldve:2015.06.17. 22:13 
Offline
A Scripter

Csatlakozott:2013.11.19. 19:08
Hozzászólások:827
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 315 alkalommal
1-2-ről tudok én is.
javítom majd.

Ők köszönték meg DeR0iD nek ezt a hozzászólást (összesen 2):pista1993 (2015.07.04. 08:32) • FonoK (2017.01.26. 19:56)
  Népszerűség: 4.55%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pályaszavaztató - DMC v2.01
HozzászólásElküldve:2015.06.17. 22:47 
Offline
Fanatikus
Avatar

Csatlakozott:2014.06.08. 10:25
Hozzászólások:164
Megköszönt másnak: 38 alkalommal
Megköszönték neki: 19 alkalommal
Rendben van, nem akarlak sürgetni ne értsd félre csak gondoltam szólok :)

_________________
Kép

87.229.77.40:27020

Ők köszönték meg joxxa4cfg nek ezt a hozzászólást: FonoK (2017.01.26. 19:56)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pályaszavaztató - DMC v2.01
HozzászólásElküldve:2015.06.18. 20:32 
Offline
A Scripter

Csatlakozott:2013.11.19. 19:08
Hozzászólások:827
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 315 alkalommal
joxxa4cfg írta:
Észrevétel:
Többször is előfordult (nem mindig!!), hogy nem megyünk el a következő mapra :O vagyis nem vált el
valamint beírjuk, hogy rtv és nem írja senkinek, hogy beírta :D


Pontosabban megtudnád fogalmazni?
(rtv-set azt tudom)

Ők köszönték meg DeR0iD nek ezt a hozzászólást (összesen 2):pista1993 (2015.07.04. 08:32) • FonoK (2017.01.26. 19:56)
  Népszerűség: 4.55%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pályaszavaztató - DMC v2.01
HozzászólásElküldve:2015.06.18. 20:41 
Offline
Tud valamit
Avatar

Csatlakozott:2015.06.10. 11:48
Hozzászólások:105
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 13 alkalommal
DeR0iD írta:
joxxa4cfg írta:
Észrevétel:
Többször is előfordult (nem mindig!!), hogy nem megyünk el a következő mapra :O vagyis nem vált el
valamint beírjuk, hogy rtv és nem írja senkinek, hogy beírta :D


Pontosabban megtudnád fogalmazni?
(rtv-set azt tudom)

szentem arra gondol, hogy mikor beírja 1 player hogy rtv, nem írja ki mindenkinek hogy hány szavazat szükséges a szavazáshoz.

_________________
Kép

Ők köszönték meg raziq nek ezt a hozzászólást: FonoK (2017.01.26. 19:56)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Pályaszavaztató - DMC v2.01
HozzászólásElküldve:2015.06.21. 15:25 
Offline
A Scripter

Csatlakozott:2013.11.19. 19:08
Hozzászólások:827
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 315 alkalommal
na kiki már lassan 2 oldal :D
http://www.gametracker.com/search/cs/?s ... rt=&order=

Ők köszönték meg DeR0iD nek ezt a hozzászólást (összesen 2):pista1993 (2015.07.04. 08:33) • FonoK (2017.01.26. 19:56)
  Népszerűség: 4.55%


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  [35 hozzászólás ]  OldalElőző1234Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég


Nem nyithatsz 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