hlmod.hu
https://hlmod.hu/

TÖRÖLHETŐ!
https://hlmod.hu/viewtopic.php?f=10&t=13874
Oldal: 1 / 1

Szerző:  ZiT3K [ 2014.01.19. 11:24 ]
Hozzászólás témája:  TÖRÖLHETŐ!

Hali!
Letöltöttem egy RetriTiltó plugint, kiírja chatba, hogy pl.:
[AMXX] SnK.* Kieckelve lett oka: Retry 15 masodperc utan !! DE nem kickeli ki és vissza tud jönni. Valaki át tudná írni, hogy ki is kickelje vagy leellenőrizni, hogy a plugin hibás-e vagy vmi más lesz a hiba?

SMA Forráskód: [ Mindet kijelol ]#include <amxmisc> #define MAX_PLAYERS 32 new pID[MAX_PLAYERS][22] public plugin_init() { register_plugin("No retry","1.16","Priski") register_cvar("amx_retrytime","15") register_cvar("amx_retrykick","1") register_cvar("amx_retryshow","0") register_cvar("amx_retrychat","1")  // %s jatekosnev, %t lesz amx_retrytime register_cvar("amx_retrymsg","Kerlek ne retryz, %s") register_cvar("amx_retrykickmsg","Tul gyorsan ujra csatlakoztal nem fogsz ujra eledni !!") register_cvar("amx_retrychatmsg","%s Kieckelve lett oka: Retry %t masodperc utan !!")  return PLUGIN_HANDLED} public client_putinserver(id) { // nincsenek kellemetlen fickok vagy admin az immunitasfelhasznalok listában vannak if ((is_user_bot(id)) || (get_user_flags(id)&ADMIN_IMMUNITY)) { return PLUGIN_HANDLED }  // gather info new ip[22] get_user_ip(id,ip,21)  for(new i = 1; i < MAX_PLAYERS; i++) { if (equal(ip, pID, 21)) {  new name[34] get_user_name(id, name, 33)  if (get_cvar_num("amx_retryshow")) { new uID[1] uID[0] = id set_task(2.0,"showMsg", id, uID, 1) }  if (get_cvar_num("amx_retrychat")) { new txt[128] get_cvar_string("amx_retrychatmsg", txt, 127) new sec[6] num_to_str(get_cvar_num("amx_retrytime"),sec, 5)  replace(txt, 127, "%s", name) replace(txt, 127, "%t", sec)  client_print( 0, print_chat, "[AMXX] %s", txt) }  if (get_cvar_num("amx_retrykick")) { new uID[1] uID[0] = get_user_userid(id)  // delayed kick set_task(7.0,"kick",77,uID,1)  }  break } }  return PLUGIN_HANDLED;} public client_disconnect(id) { // nincsenek kellemetlen fickok vagy admin az immunitasfelhasznalok listában vannak  if ((is_user_bot(id)) || (get_user_flags(id)&ADMIN_IMMUNITY)) { return PLUGIN_HANDLED; }  // gather info new ip[22] get_user_ip(id,ip,21) new found = 0;  for(new i = 1; i < MAX_PLAYERS; i++) { if (equal(ip, pID, 21)) { // ezt a felhasznalót mar kirugtak found = 1 break } }  if (found == 0) { for(new i = 1; i < MAX_PLAYERS; i++) { if (pID[0] == 0) { // found empty slot get_user_ip(id, pID[i], 21) new aID[1] aID[0] = i set_task( get_cvar_float("amx_retrytime"), "cleanID", (id + MAX_PLAYERS),aID,1)  break } } } return PLUGIN_HANDLED;}  public cleanID(i[]) { pID[i[0]][0] = 0} public showMsg(pID[]) { new txt[128] get_cvar_string("amx_retrymsg", txt, 127)  new playername[34] get_user_name(pID[0], playername, 33)  new sec[6] num_to_str(get_cvar_num("amx_retrytime"),sec, 5)  replace(txt, 127, "%s", playername) replace(txt, 127, "%t", sec)  set_hudmessage(0, 255, 255, 0.05, 0.72, 0, 5.0, 10.0, 2.0, 0.15, 3) show_hudmessage(pID[0],txt)} public kick(id[]) { new txt[128] get_cvar_string("amx_retrykickmsg", txt, 127) server_cmd("kick #%d ^"%s^"", id[0], txt)}

[i]Előre is köszönöm!

Szerző:  Badboy.killer [ 2014.01.19. 11:41 ]
Hozzászólás témája:  Re: RetryTiltó

"DE nem kickeli ki és vissza tud jönni." - egyet tisztázzunk, ha valakit kickelnek, akkor vissza tud jönni a szerverre!
próbáld ki ezt: https://forums.alliedmods.net/showthread.php?p=555695

Szerző:  ZiT3K [ 2014.01.19. 11:44 ]
Hozzászólás témája:  Re: RetryTiltó

Úgy értem mondtam neki, hogy retryzzen egyet kilépett és visszajött egyből és kiírta, hogy kickelve, de mégsem kickelte ki mivel, amikor kilépett egyből vissza tudott jönni nem kickelte ki, amikor vissza akart jönni egyből. Remélem így érthetőbb.
Pl.: Te kilépsz és megint csatlakozol, akkor ki kellene kickeljen egy üzenettel, hogy
kickelve lettél... 15 másodperc múlva jöhetsz vissza. De ő egyből vissza tudott jönni nem pedig CSAK 15 se múlva.
Badboy.killer írta:
"DE nem kickeli ki és vissza tud jönni." - egyet tisztázzunk, ha valakit kickelnek, akkor vissza tud jönni a szerverre!

Szerző:  Badboy.killer [ 2014.01.19. 11:47 ]
Hozzászólás témája:  Re: RetryTiltó

Így már értem, próbáld ki azt amit küldtem, hátha azzal menni fog.

Szerző:  ZiT3K [ 2014.01.19. 13:08 ]
Hozzászólás témája:  Re: RetryTiltó

Sajnos ez is csak kiírja középre, hogy retryzett, de nem kickeli/illetve tiltja ki 45 sec-re(alapból annyi van beállítva, ha jól értelmeztem).
amxx fájlt beraktam a plugins mappába
a szöveges fájlt az amdmodx/data/lang mappába
plugins.ini-be pedig beírtam az amxx fájl nevét

SMA Forráskód: [ Mindet kijelol ]
  1. /* Copyright © 2008, ConnorMcLeod
  2.  
  3. Reconnect Features is free software;
  4. you can redistribute it and/or modify it under the terms of the
  5. GNU General Public License as published by the Free Software Foundation.
  6.  
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11.  
  12. You should have received a copy of the GNU General Public License
  13. along with Reconnect Features; if not, write to the
  14. Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  15. Boston, MA 02111-1307, USA.
  16. */
  17.  
  18. #include <amxmodx>
  19. #include <fakemeta>
  20.  
  21. /****** Customization Area ******/
  22. // Flag to allow admin to reconnect without hudmessage
  23. // This is usefull when you reconnect with another nick to watch a suspected cheater
  24. // This will still set back your score/money/...
  25. #define ADMIN_SILENT ADMIN_KICK
  26.  
  27. // Color for hud message
  28. #define RED 0
  29. #define GREEN 100
  30. #define BLUE 200
  31. /********************************/
  32.  
  33. #define PLUGIN "Reconnect Features"
  34. #define AUTHOR "ConnorMcLeod"
  35. #define VERSION "0.2.4 BETA"
  36.  
  37. #define MAX_PLAYERS 32
  38. #define MAX_STORED 64
  39.  
  40. #define OFFSET_CSMONEY 115
  41. #define OFFSET_CSDEATHS 444
  42.  
  43. #define TASK_KILL 1946573517
  44. #define TASK_CLEAR 2946573517
  45. #define TASK_PLAYER 3946573517
  46.  
  47.  
  48. enum Storage {
  49. StoreSteamId[20],
  50. StoreFrags,
  51. StoreDeaths,
  52. StoreMoney,
  53. StoreRound
  54. }
  55.  
  56. new g_CurInfos[MAX_PLAYERS+1][Storage]
  57. new g_StoredInfos[MAX_STORED][Storage]
  58.  
  59. new bool:g_bPlayerNonSpawnEvent[MAX_PLAYERS + 1]
  60. new g_iFwFmClientCommandPost
  61.  
  62. new g_iRoundNum
  63.  
  64. new g_pcvarTime, g_pcvarScore, g_pcvarMoney, g_pcvarSpawn, g_pcvarStartMoney, g_pcvarNotify
  65. new mp_startmoney
  66. new g_msgidDeathMsg
  67. new g_iMaxPlayers
  68.  
  69. public plugin_init()
  70. {
  71. register_plugin(PLUGIN, VERSION, AUTHOR)
  72. register_dictionary("reconnect.txt")
  73.  
  74. register_cvar("reconnect_features", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY)
  75. g_pcvarTime = register_cvar("amx_noreconnect_time", "45")
  76. g_pcvarScore = register_cvar("amx_noreconnect_score", "1")
  77. g_pcvarMoney = register_cvar("amx_noreconnect_money", "1")
  78. g_pcvarSpawn = register_cvar("amx_noreconnect_spawn", "1")
  79. g_pcvarStartMoney = register_cvar("amx_noreconnect_startmoney", "0")
  80. g_pcvarNotify = register_cvar("amx_noreconnect_notify", "1")
  81.  
  82. register_event("HLTV", "eNewRound", "a", "1=0", "2=0")
  83.  
  84. register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w")
  85.  
  86. register_event("ResetHUD", "Event_ResetHUD", "b")
  87. register_event("TextMsg", "Event_TextMsg_GameWillRestartIn", "a", "2=#Game_will_restart_in")
  88. register_clcmd("fullupdate", "ClientCommand_fullupdate")
  89.  
  90. register_event("Money", "eMoney", "be")
  91. register_event("ScoreInfo", "eScoreInfo", "a")
  92. }
  93.  
  94. public plugin_cfg()
  95. {
  96. mp_startmoney = get_cvar_pointer("mp_startmoney")
  97. g_msgidDeathMsg = get_user_msgid("DeathMsg")
  98. g_iMaxPlayers = global_get(glb_maxClients)
  99. }
  100.  
  101. public Event_TextMsg_GameWillRestartIn()
  102. {
  103. static id
  104. for(id = 1; id <= g_iMaxPlayers; ++id)
  105. if( is_user_alive(id) )
  106. g_bPlayerNonSpawnEvent[id] = true
  107. }
  108.  
  109. public ClientCommand_fullupdate(id)
  110. {
  111. g_bPlayerNonSpawnEvent[id] = true
  112. static const szClientCommandPost[] = "Forward_ClientCommand_Post"
  113. g_iFwFmClientCommandPost = register_forward(FM_ClientCommand, szClientCommandPost, 1)
  114. return PLUGIN_CONTINUE
  115. }
  116.  
  117. public Forward_ClientCommand_Post(id)
  118. {
  119. unregister_forward(FM_ClientCommand, g_iFwFmClientCommandPost, 1)
  120. g_bPlayerNonSpawnEvent[id] = false
  121. return FMRES_HANDLED
  122. }
  123.  
  124. public Event_ResetHUD(id)
  125. {
  126. if (!is_user_alive(id))
  127. return
  128.  
  129. if (g_bPlayerNonSpawnEvent[id])
  130. {
  131. g_bPlayerNonSpawnEvent[id] = false
  132. return
  133. }
  134.  
  135. Forward_PlayerSpawn(id)
  136. }
  137.  
  138. Forward_PlayerSpawn(id)
  139. {
  140. if(g_CurInfos[id][StoreRound] == g_iRoundNum)
  141. {
  142. g_CurInfos[id][StoreRound] = 0
  143. set_task(0.1, "task_delay_kill", id+TASK_KILL)
  144. }
  145. }
  146.  
  147. public task_delay_kill(id)
  148. {
  149. id -= TASK_KILL
  150.  
  151. new Float:fFrags
  152. pev(id, pev_frags, fFrags)
  153. set_pev(id, pev_frags, ++fFrags)
  154.  
  155. set_pdata_int(id, OFFSET_CSDEATHS, get_pdata_int(id, OFFSET_CSDEATHS) - 1)
  156.  
  157. new msgblock = get_msg_block(g_msgidDeathMsg)
  158. set_msg_block(g_msgidDeathMsg, BLOCK_ONCE)
  159. dllfunc(DLLFunc_ClientKill, id)
  160. set_msg_block(g_msgidDeathMsg, msgblock)
  161.  
  162. client_print(id, print_chat, "** [Reconnect Features] %L", id, "RF_SPAWN")
  163. }
  164.  
  165. public eMoney(id)
  166. {
  167. g_CurInfos[id][StoreMoney] = read_data(1)
  168. }
  169.  
  170. public eScoreInfo()
  171. {
  172. new id = read_data(1)
  173. if(!(1<= id <= g_iMaxPlayers))
  174. return
  175.  
  176. g_CurInfos[id][StoreFrags] = read_data(2)
  177. g_CurInfos[id][StoreDeaths] = read_data(3)
  178. }
  179.  
  180. public eRestart()
  181. {
  182. for(new i; i < MAX_STORED; i++)
  183. {
  184. remove_task(i+TASK_CLEAR)
  185. remove_task(i+TASK_PLAYER)
  186. g_StoredInfos[i][StoreSteamId][0] = 0
  187. }
  188. }
  189.  
  190. public eNewRound()
  191. {
  192. g_iRoundNum++
  193. }
  194.  
  195. public client_disconnect(id)
  196. {
  197. if(is_user_bot(id) || is_user_hltv(id))
  198. {
  199. return
  200. }
  201.  
  202. new Float:fTaskTime = get_pcvar_float(g_pcvarTime)
  203. if(!fTaskTime)
  204. return
  205.  
  206. static iFree
  207. for(iFree = 0; iFree <= MAX_STORED; iFree++)
  208. {
  209. if(iFree == MAX_STORED)
  210. {
  211. return
  212. }
  213. if(!g_StoredInfos[iFree][StoreSteamId][0])
  214. break
  215. }
  216.  
  217. copy(g_StoredInfos[iFree][StoreSteamId], 19, g_CurInfos[id][StoreSteamId])
  218. g_StoredInfos[iFree][StoreFrags] = g_CurInfos[id][StoreFrags]
  219. g_StoredInfos[iFree][StoreDeaths] = g_CurInfos[id][StoreDeaths]
  220. g_StoredInfos[iFree][StoreMoney] = g_CurInfos[id][StoreMoney]
  221. g_StoredInfos[iFree][StoreRound] = g_iRoundNum
  222.  
  223. g_CurInfos[id][StoreSteamId][0] = 0
  224. g_CurInfos[id][StoreFrags] = 0
  225. g_CurInfos[id][StoreDeaths] = 0
  226. g_CurInfos[id][StoreMoney] = 0
  227. g_CurInfos[id][StoreRound] = 0
  228.  
  229. set_task(fTaskTime, "task_clear", iFree+TASK_CLEAR)
  230. }
  231.  
  232. public task_clear(iTaskId)
  233. {
  234. iTaskId -= TASK_CLEAR
  235. g_StoredInfos[iTaskId][StoreSteamId][0] = 0
  236. }
  237.  
  238. public client_putinserver(id)
  239. {
  240. if(is_user_bot(id) || is_user_hltv(id))
  241. return
  242.  
  243. g_bPlayerNonSpawnEvent[id] = false
  244.  
  245. static szSteamId[20]
  246. get_user_authid(id, szSteamId, 19)
  247. copy(g_CurInfos[id][StoreSteamId], 19, szSteamId)
  248.  
  249. for(new i; i < MAX_STORED; i++)
  250. {
  251. if(!g_StoredInfos[i][StoreSteamId][0])
  252. continue
  253.  
  254. if( equal(g_StoredInfos[i][StoreSteamId], szSteamId, strlen(szSteamId)) )
  255. {
  256. if(get_pcvar_num(g_pcvarScore))
  257. {
  258. set_pev(id, pev_frags, float(g_StoredInfos[i][StoreFrags]))
  259. set_pdata_int(id, OFFSET_CSDEATHS, g_StoredInfos[i][StoreDeaths])
  260. g_CurInfos[id][StoreFrags] = g_StoredInfos[i][StoreFrags]
  261. g_CurInfos[id][StoreDeaths] = g_StoredInfos[i][StoreDeaths]
  262. }
  263. if(get_pcvar_num(g_pcvarMoney))
  264. {
  265. new iMoney = g_StoredInfos[i][StoreMoney]
  266. new iStartMoney = get_pcvar_num(mp_startmoney)
  267. if(get_pcvar_num(g_pcvarStartMoney) && iMoney > iStartMoney)
  268. {
  269. set_pdata_int(id, OFFSET_CSMONEY, iStartMoney)
  270. g_CurInfos[id][StoreMoney] = iStartMoney
  271. }
  272. else
  273. {
  274. set_pdata_int(id, OFFSET_CSMONEY, iMoney)
  275. g_CurInfos[id][StoreMoney] = iMoney
  276. }
  277. }
  278. if(get_pcvar_num(g_pcvarSpawn))
  279. {
  280. g_CurInfos[id][StoreRound] = g_StoredInfos[i][StoreRound]
  281. }
  282.  
  283. remove_task(id+TASK_PLAYER)
  284. set_task(10.0, "task_print_player", id+TASK_PLAYER)
  285.  
  286. g_StoredInfos[i][StoreSteamId][0] = 0
  287.  
  288. new iNotifyType = get_pcvar_num(g_pcvarNotify)
  289. if(iNotifyType && !(get_user_flags(id)&ADMIN_SILENT) )
  290. {
  291. static szName[32]
  292. get_user_name(id, szName, 31)
  293. if( iNotifyType == 1 )
  294. {
  295. set_hudmessage(RED, GREEN, BLUE, -1.0, 0.35, 2, 3.0, 10.0, 0.1, 0.2, -1)
  296. show_hudmessage(0, "%L", LANG_PLAYER, "RF_ALL", szName)
  297. }
  298. else
  299. {
  300. client_print(0, print_chat, "** [Reconnect Features] %L", LANG_PLAYER, "RF_ALL", szName)
  301. }
  302. }
  303. return
  304. }
  305. }
  306. g_CurInfos[id][StoreRound] = -1
  307. }
  308.  
  309. public task_print_player(id)
  310. {
  311. if(is_user_connected(id -= TASK_PLAYER))
  312. {
  313. static szText[128]
  314. new n = formatex(szText, 127, "** [Reconnect Features] %L", id, "RF_PLAYER_PRINT")
  315. if(get_pcvar_num(g_pcvarScore))
  316. n += formatex(szText[n], 127 - n, " %L", id, "RF_SCORE")
  317. if(get_pcvar_num(g_pcvarMoney))
  318. n += formatex(szText[n], 127 - n, " %L", id, "RF_MONEY")
  319. client_print(id, print_chat, szText)
  320. }
  321. }
  322.  

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/