hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.29. 07:07



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Medusa 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  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: felcsatlakozás , ct
HozzászólásElküldve: 2013.08.22. 14:43 
Offline
Beavatott
Avatar

Csatlakozott: 2013.03.10. 14:48
Hozzászólások: 77
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 12 alkalommal
Üdv!
Egy olyan plugint szeretnék kérni , ami ha valaki MÁR FENT VAN A SZERVEREN , akkor rakja be ct be automatikusan(specből)
szóval nem amikor elkezd felcsatlakozni , hanem amikor már fent van (nem client_connect , hanem client_putinserver)
köszönöm :)
(természetesen megy a gomb:D)

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: felcsatlakozás , ct
HozzászólásElküldve: 2013.08.22. 14:45 
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
azt ugye tudod, ha felcsatlakozol, nem specben vagy?

_________________
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: felcsatlakozás , ct
HozzászólásElküldve: 2013.08.22. 14:46 
Offline
Felfüggesztve

Csatlakozott: 2013.08.09. 22:37
Hozzászólások: 571
Megköszönt másnak: 10 alkalommal
Megköszönték neki: 85 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2.  
  3. enum
  4. {
  5. TEAM_NONE = 0,
  6. TEAM_T,
  7. TEAM_CT,
  8. TEAM_SPEC,
  9.  
  10. MAX_TEAMS
  11. };
  12. new const g_cTeamChars[MAX_TEAMS] =
  13. {
  14. 'U',
  15. 'T',
  16. 'C',
  17. 'S'
  18. };
  19. new const g_sTeamNums[MAX_TEAMS][] =
  20. {
  21. "0",
  22. "1",
  23. "2",
  24. "3"
  25. };
  26. new const g_sClassNums[MAX_TEAMS][] =
  27. {
  28. "1",
  29. "2",
  30. "3",
  31. "4"
  32. };
  33.  
  34. // Old Style Menus
  35. stock const FIRST_JOIN_MSG[] = "#Team_Select";
  36. stock const FIRST_JOIN_MSG_SPEC[] = "#Team_Select_Spect";
  37. stock const INGAME_JOIN_MSG[] = "#IG_Team_Select";
  38. stock const INGAME_JOIN_MSG_SPEC[] = "#IG_Team_Select_Spect";
  39. const iMaxLen = sizeof(INGAME_JOIN_MSG_SPEC);
  40.  
  41. // New VGUI Menus
  42. stock const VGUI_JOIN_TEAM_NUM = 2;
  43.  
  44. new g_iTeam[33];
  45. new g_iPlayers[MAX_TEAMS];
  46.  
  47. new tjm_join_team;
  48. new tjm_switch_team;
  49. new tjm_class[MAX_TEAMS];
  50. new tjm_block_change;
  51.  
  52. public plugin_init()
  53. {
  54. register_plugin("Team Join Management", "0.3", "Exolent");
  55. register_event("TeamInfo", "event_TeamInfo", "a");
  56. register_message(get_user_msgid("ShowMenu"), "message_ShowMenu");
  57. register_message(get_user_msgid("VGUIMenu"), "message_VGUIMenu");
  58. tjm_join_team = register_cvar("tjm_join_team", "2");
  59. tjm_switch_team = register_cvar("tjm_switch_team", "1");
  60. tjm_class[TEAM_T] = register_cvar("tjm_class_t", "2");
  61. tjm_class[TEAM_CT] = register_cvar("tjm_class_ct", "4");
  62. tjm_block_change = register_cvar("tjm_block_change", "1");
  63. }
  64.  
  65. public plugin_cfg()
  66. {
  67. set_cvar_num("mp_limitteams", 32);
  68. set_cvar_num("sv_restart", 1);
  69. }
  70.  
  71. public client_disconnect(id)
  72. {
  73. remove_task(id);
  74. }
  75.  
  76. public event_TeamInfo()
  77. {
  78. new id = read_data(1);
  79. new sTeam[32], iTeam;
  80. read_data(2, sTeam, sizeof(sTeam) - 1);
  81. for(new i = 0; i < MAX_TEAMS; i++)
  82. {
  83. if(g_cTeamChars[i] == sTeam[0])
  84. {
  85. iTeam = i;
  86. break;
  87. }
  88. }
  89.  
  90. if(g_iTeam[id] != iTeam)
  91. {
  92. g_iPlayers[g_iTeam[id]]--;
  93. g_iTeam[id] = iTeam;
  94. g_iPlayers[iTeam]++;
  95. }
  96. }
  97.  
  98. public message_ShowMenu(iMsgid, iDest, id)
  99. {
  100. static sMenuCode[iMaxLen];
  101. get_msg_arg_string(4, sMenuCode, sizeof(sMenuCode) - 1);
  102. if(equal(sMenuCode, FIRST_JOIN_MSG) || equal(sMenuCode, FIRST_JOIN_MSG_SPEC))
  103. {
  104. if(should_autojoin(id))
  105. {
  106. set_autojoin_task(id, iMsgid);
  107. return PLUGIN_HANDLED;
  108. }
  109. }
  110. else if(equal(sMenuCode, INGAME_JOIN_MSG) || equal(sMenuCode, INGAME_JOIN_MSG_SPEC))
  111. {
  112. if(should_autoswitch(id))
  113. {
  114. set_autoswitch_task(id, iMsgid);
  115. return PLUGIN_HANDLED;
  116. }
  117. else if(get_pcvar_num(tjm_block_change))
  118. {
  119. return PLUGIN_HANDLED;
  120. }
  121. }
  122. return PLUGIN_CONTINUE;
  123. }
  124.  
  125. public message_VGUIMenu(iMsgid, iDest, id)
  126. {
  127. if(get_msg_arg_int(1) != VGUI_JOIN_TEAM_NUM)
  128. {
  129. return PLUGIN_CONTINUE;
  130. }
  131.  
  132. if(should_autojoin(id))
  133. {
  134. set_autojoin_task(id, iMsgid);
  135. return PLUGIN_HANDLED;
  136. }
  137. else if(should_autoswitch(id))
  138. {
  139. set_autoswitch_task(id, iMsgid);
  140. return PLUGIN_HANDLED;
  141. }
  142. else if((TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && get_pcvar_num(tjm_block_change))
  143. {
  144. return PLUGIN_HANDLED;
  145. }
  146. return PLUGIN_CONTINUE;
  147. }
  148.  
  149. public task_Autojoin(iParam[], id)
  150. {
  151. new iTeam = get_new_team(get_pcvar_num(tjm_join_team));
  152. if(iTeam != -1)
  153. {
  154. handle_join(id, iParam[0], iTeam);
  155. }
  156. }
  157.  
  158. public task_Autoswitch(iParam[], id)
  159. {
  160. new iTeam = get_switch_team(id);
  161. if(iTeam != -1)
  162. {
  163. handle_join(id, iParam[0], iTeam);
  164. }
  165. }
  166.  
  167. stock handle_join(id, iMsgid, iTeam)
  168. {
  169. new iMsgBlock = get_msg_block(iMsgid);
  170. set_msg_block(iMsgid, BLOCK_SET);
  171.  
  172. engclient_cmd(id, "jointeam", g_sTeamNums[iTeam]);
  173.  
  174. new iClass = get_team_class(iTeam);
  175. if(1 <= iClass <= 4)
  176. {
  177. engclient_cmd(id, "joinclass", g_sClassNums[iClass - 1]);
  178. }
  179. set_msg_block(iMsgid, iMsgBlock);
  180. }
  181.  
  182. stock get_new_team(iCvar)
  183. {
  184. switch(iCvar)
  185. {
  186. case 1:
  187. {
  188. return TEAM_T;
  189. }
  190. case 2:
  191. {
  192. return TEAM_CT;
  193. }
  194. case 3:
  195. {
  196. return TEAM_SPEC;
  197. }
  198. case 4:
  199. {
  200. new iTCount = g_iPlayers[TEAM_T];
  201. new iCTCount = g_iPlayers[TEAM_CT];
  202. if(iTCount < iCTCount)
  203. {
  204. return TEAM_T;
  205. }
  206. else if(iTCount > iCTCount)
  207. {
  208. return TEAM_CT;
  209. }
  210. else
  211. {
  212. return random_num(TEAM_T, TEAM_CT);
  213. }
  214. }
  215. }
  216. return -1;
  217. }
  218.  
  219. stock get_switch_team(id)
  220. {
  221. new iTeam;
  222.  
  223. new iTCount = g_iPlayers[TEAM_T];
  224. new iCTCount = g_iPlayers[TEAM_CT];
  225. switch(g_iTeam[id])
  226. {
  227. case TEAM_T: iTCount--;
  228. case TEAM_CT: iCTCount--;
  229. }
  230. if(iTCount < iCTCount)
  231. {
  232. iTeam = TEAM_T;
  233. }
  234. else if(iTCount > iCTCount)
  235. {
  236. iTeam = TEAM_CT;
  237. }
  238. else
  239. {
  240. iTeam = random_num(TEAM_T, TEAM_CT);
  241. }
  242.  
  243. if(iTeam != g_iTeam[id])
  244. {
  245. return iTeam;
  246. }
  247.  
  248. return -1;
  249. }
  250.  
  251. stock get_team_class(iTeam)
  252. {
  253. new iClass;
  254. if(TEAM_NONE < iTeam < TEAM_SPEC)
  255. {
  256. iClass = get_pcvar_num(tjm_class[iTeam]);
  257. if(iClass < 1 || iClass > 4)
  258. {
  259. iClass = random_num(1, 4);
  260. }
  261. }
  262. return iClass;
  263. }
  264.  
  265. stock set_autojoin_task(id, iMsgid)
  266. {
  267. new iParam[2];
  268. iParam[0] = iMsgid;
  269. set_task(0.1, "task_Autojoin", id, iParam, sizeof(iParam));
  270. }
  271.  
  272. stock set_autoswitch_task(id, iMsgid)
  273. {
  274. new iParam[2];
  275. iParam[0] = iMsgid;
  276. set_task(0.1, "task_Autoswitch", id, iParam, sizeof(iParam));
  277. }
  278.  
  279. stock bool:should_autojoin(id)
  280. {
  281. return ((5 > get_pcvar_num(tjm_join_team) > 0) && is_user_connected(id) && !(TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && !task_exists(id));
  282. }
  283.  
  284. stock bool:should_autoswitch(id)
  285. {
  286. return (get_pcvar_num(tjm_switch_team) && is_user_connected(id) && (TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && !task_exists(id));
  287. }
  288.  

Ők köszönték meg stupid nek ezt a hozzászólást: DanKe16 (2013.08.22. 14:51)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: felcsatlakozás , ct
HozzászólásElküldve: 2013.08.22. 14:50 
Offline
Beavatott
Avatar

Csatlakozott: 2013.03.10. 14:48
Hozzászólások: 77
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 12 alkalommal
stupid írta:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2.  
  3. enum
  4. {
  5. TEAM_NONE = 0,
  6. TEAM_T,
  7. TEAM_CT,
  8. TEAM_SPEC,
  9.  
  10. MAX_TEAMS
  11. };
  12. new const g_cTeamChars[MAX_TEAMS] =
  13. {
  14. 'U',
  15. 'T',
  16. 'C',
  17. 'S'
  18. };
  19. new const g_sTeamNums[MAX_TEAMS][] =
  20. {
  21. "0",
  22. "1",
  23. "2",
  24. "3"
  25. };
  26. new const g_sClassNums[MAX_TEAMS][] =
  27. {
  28. "1",
  29. "2",
  30. "3",
  31. "4"
  32. };
  33.  
  34. // Old Style Menus
  35. stock const FIRST_JOIN_MSG[] = "#Team_Select";
  36. stock const FIRST_JOIN_MSG_SPEC[] = "#Team_Select_Spect";
  37. stock const INGAME_JOIN_MSG[] = "#IG_Team_Select";
  38. stock const INGAME_JOIN_MSG_SPEC[] = "#IG_Team_Select_Spect";
  39. const iMaxLen = sizeof(INGAME_JOIN_MSG_SPEC);
  40.  
  41. // New VGUI Menus
  42. stock const VGUI_JOIN_TEAM_NUM = 2;
  43.  
  44. new g_iTeam[33];
  45. new g_iPlayers[MAX_TEAMS];
  46.  
  47. new tjm_join_team;
  48. new tjm_switch_team;
  49. new tjm_class[MAX_TEAMS];
  50. new tjm_block_change;
  51.  
  52. public plugin_init()
  53. {
  54. register_plugin("Team Join Management", "0.3", "Exolent");
  55. register_event("TeamInfo", "event_TeamInfo", "a");
  56. register_message(get_user_msgid("ShowMenu"), "message_ShowMenu");
  57. register_message(get_user_msgid("VGUIMenu"), "message_VGUIMenu");
  58. tjm_join_team = register_cvar("tjm_join_team", "2");
  59. tjm_switch_team = register_cvar("tjm_switch_team", "1");
  60. tjm_class[TEAM_T] = register_cvar("tjm_class_t", "2");
  61. tjm_class[TEAM_CT] = register_cvar("tjm_class_ct", "4");
  62. tjm_block_change = register_cvar("tjm_block_change", "1");
  63. }
  64.  
  65. public plugin_cfg()
  66. {
  67. set_cvar_num("mp_limitteams", 32);
  68. set_cvar_num("sv_restart", 1);
  69. }
  70.  
  71. public client_disconnect(id)
  72. {
  73. remove_task(id);
  74. }
  75.  
  76. public event_TeamInfo()
  77. {
  78. new id = read_data(1);
  79. new sTeam[32], iTeam;
  80. read_data(2, sTeam, sizeof(sTeam) - 1);
  81. for(new i = 0; i < MAX_TEAMS; i++)
  82. {
  83. if(g_cTeamChars[i] == sTeam[0])
  84. {
  85. iTeam = i;
  86. break;
  87. }
  88. }
  89.  
  90. if(g_iTeam[id] != iTeam)
  91. {
  92. g_iPlayers[g_iTeam[id]]--;
  93. g_iTeam[id] = iTeam;
  94. g_iPlayers[iTeam]++;
  95. }
  96. }
  97.  
  98. public message_ShowMenu(iMsgid, iDest, id)
  99. {
  100. static sMenuCode[iMaxLen];
  101. get_msg_arg_string(4, sMenuCode, sizeof(sMenuCode) - 1);
  102. if(equal(sMenuCode, FIRST_JOIN_MSG) || equal(sMenuCode, FIRST_JOIN_MSG_SPEC))
  103. {
  104. if(should_autojoin(id))
  105. {
  106. set_autojoin_task(id, iMsgid);
  107. return PLUGIN_HANDLED;
  108. }
  109. }
  110. else if(equal(sMenuCode, INGAME_JOIN_MSG) || equal(sMenuCode, INGAME_JOIN_MSG_SPEC))
  111. {
  112. if(should_autoswitch(id))
  113. {
  114. set_autoswitch_task(id, iMsgid);
  115. return PLUGIN_HANDLED;
  116. }
  117. else if(get_pcvar_num(tjm_block_change))
  118. {
  119. return PLUGIN_HANDLED;
  120. }
  121. }
  122. return PLUGIN_CONTINUE;
  123. }
  124.  
  125. public message_VGUIMenu(iMsgid, iDest, id)
  126. {
  127. if(get_msg_arg_int(1) != VGUI_JOIN_TEAM_NUM)
  128. {
  129. return PLUGIN_CONTINUE;
  130. }
  131.  
  132. if(should_autojoin(id))
  133. {
  134. set_autojoin_task(id, iMsgid);
  135. return PLUGIN_HANDLED;
  136. }
  137. else if(should_autoswitch(id))
  138. {
  139. set_autoswitch_task(id, iMsgid);
  140. return PLUGIN_HANDLED;
  141. }
  142. else if((TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && get_pcvar_num(tjm_block_change))
  143. {
  144. return PLUGIN_HANDLED;
  145. }
  146. return PLUGIN_CONTINUE;
  147. }
  148.  
  149. public task_Autojoin(iParam[], id)
  150. {
  151. new iTeam = get_new_team(get_pcvar_num(tjm_join_team));
  152. if(iTeam != -1)
  153. {
  154. handle_join(id, iParam[0], iTeam);
  155. }
  156. }
  157.  
  158. public task_Autoswitch(iParam[], id)
  159. {
  160. new iTeam = get_switch_team(id);
  161. if(iTeam != -1)
  162. {
  163. handle_join(id, iParam[0], iTeam);
  164. }
  165. }
  166.  
  167. stock handle_join(id, iMsgid, iTeam)
  168. {
  169. new iMsgBlock = get_msg_block(iMsgid);
  170. set_msg_block(iMsgid, BLOCK_SET);
  171.  
  172. engclient_cmd(id, "jointeam", g_sTeamNums[iTeam]);
  173.  
  174. new iClass = get_team_class(iTeam);
  175. if(1 <= iClass <= 4)
  176. {
  177. engclient_cmd(id, "joinclass", g_sClassNums[iClass - 1]);
  178. }
  179. set_msg_block(iMsgid, iMsgBlock);
  180. }
  181.  
  182. stock get_new_team(iCvar)
  183. {
  184. switch(iCvar)
  185. {
  186. case 1:
  187. {
  188. return TEAM_T;
  189. }
  190. case 2:
  191. {
  192. return TEAM_CT;
  193. }
  194. case 3:
  195. {
  196. return TEAM_SPEC;
  197. }
  198. case 4:
  199. {
  200. new iTCount = g_iPlayers[TEAM_T];
  201. new iCTCount = g_iPlayers[TEAM_CT];
  202. if(iTCount < iCTCount)
  203. {
  204. return TEAM_T;
  205. }
  206. else if(iTCount > iCTCount)
  207. {
  208. return TEAM_CT;
  209. }
  210. else
  211. {
  212. return random_num(TEAM_T, TEAM_CT);
  213. }
  214. }
  215. }
  216. return -1;
  217. }
  218.  
  219. stock get_switch_team(id)
  220. {
  221. new iTeam;
  222.  
  223. new iTCount = g_iPlayers[TEAM_T];
  224. new iCTCount = g_iPlayers[TEAM_CT];
  225. switch(g_iTeam[id])
  226. {
  227. case TEAM_T: iTCount--;
  228. case TEAM_CT: iCTCount--;
  229. }
  230. if(iTCount < iCTCount)
  231. {
  232. iTeam = TEAM_T;
  233. }
  234. else if(iTCount > iCTCount)
  235. {
  236. iTeam = TEAM_CT;
  237. }
  238. else
  239. {
  240. iTeam = random_num(TEAM_T, TEAM_CT);
  241. }
  242.  
  243. if(iTeam != g_iTeam[id])
  244. {
  245. return iTeam;
  246. }
  247.  
  248. return -1;
  249. }
  250.  
  251. stock get_team_class(iTeam)
  252. {
  253. new iClass;
  254. if(TEAM_NONE < iTeam < TEAM_SPEC)
  255. {
  256. iClass = get_pcvar_num(tjm_class[iTeam]);
  257. if(iClass < 1 || iClass > 4)
  258. {
  259. iClass = random_num(1, 4);
  260. }
  261. }
  262. return iClass;
  263. }
  264.  
  265. stock set_autojoin_task(id, iMsgid)
  266. {
  267. new iParam[2];
  268. iParam[0] = iMsgid;
  269. set_task(0.1, "task_Autojoin", id, iParam, sizeof(iParam));
  270. }
  271.  
  272. stock set_autoswitch_task(id, iMsgid)
  273. {
  274. new iParam[2];
  275. iParam[0] = iMsgid;
  276. set_task(0.1, "task_Autoswitch", id, iParam, sizeof(iParam));
  277. }
  278.  
  279. stock bool:should_autojoin(id)
  280. {
  281. return ((5 > get_pcvar_num(tjm_join_team) > 0) && is_user_connected(id) && !(TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && !task_exists(id));
  282. }
  283.  
  284. stock bool:should_autoswitch(id)
  285. {
  286. return (get_pcvar_num(tjm_switch_team) && is_user_connected(id) && (TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && !task_exists(id));
  287. }
  288.  


Köszönöm:)

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: felcsatlakozás , ct
HozzászólásElküldve: 2013.08.22. 14:52 
Offline
Felfüggesztve

Csatlakozott: 2013.08.09. 22:37
Hozzászólások: 571
Megköszönt másnak: 10 alkalommal
Megköszönték neki: 85 alkalommal
Nagyon nincs mit, a cvarokat át írtam csak át kell konvertálni.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: felcsatlakozás , ct
HozzászólásElküldve: 2013.08.22. 15:02 
Offline
Beavatott
Avatar

Csatlakozott: 2013.03.10. 14:48
Hozzászólások: 77
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 12 alkalommal
stupid írta:
Nagyon nincs mit, a cvarokat át írtam csak át kell konvertálni.


nemm1 a plugin..semmit sem ér!

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: felcsatlakozás , ct
HozzászólásElküldve: 2013.08.22. 15:06 
Offline
Felfüggesztve

Csatlakozott: 2013.08.09. 22:37
Hozzászólások: 571
Megköszönt másnak: 10 alkalommal
Megköszönték neki: 85 alkalommal
Akkor itt 1 link inkább szedd le : http://forums.alliedmods.net/showthread.php?p=610161

(ez a eredeti)


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


Ki van itt

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