13/01/2014, 08:49 PM (Última modificación: 26/01/2014, 04:22 PM por Gonza.-*.)
Bueno, publico mi hns expmod, lo publique en alliedmods pero nunca le di soporte, aca le voy a dar soporte y ademas solucione algunos bugs que tenia el plugin, ahi va:
Hide&Seek con NIVELES!
• Sistema de niveles/rangos (De la Z a la A) por EXP
• Sistema de mejoras/habilidades por puntos y por plata
• Sistema de loteria (Por EXP): Si acertas al numero te llevas el pozo, sino si sos el que mas cerca estubo del numero te llevas tu EXP multiplicada por 10
• Sistema de SHOP (Por Niveles/Rangos, Incluye una Super Granada con doble de daño)
• Sistema de mejoras (Frost Grenade Impacto, Multi-Jump, Granada Frostnova, Chance de arma, Multiplicador de exp, Poder para la Deagle, Multiplicador de plata)
• Sistema de habilidades CT/TT/CARNAGE:
CTs: Vida, Daño, Chaleco, Tiempo de congelación
TTs: Vida, Daño, Chaleco, Tiempo de congelación
CARNAGE: Mejorar recoil, Aumentar velocidad, Aumentar velocidad de disparo, Disminuir daño recibido
• Sistema de logros (CTs, TTs, Generales, 43 e/todos)
• Sistema de Happy/After Hour
• Sistema de clases
• Hud Completamente modificable
• Sistema de party (3 jugadores maxs)
• Modos (Carnage/Deagle/Cuchi/Lider)
• Muchas cosas mas...
Lista de comandos/cvars: Comandos:
• amx_reloadpremiums (Recarga los premiums del archivo premiums.ini en caso de ser modificado)
• +multijump (Para usar la mejora Multi-Jump en caso de comprarla y tenerla activada) Say:
• /Menu: Muestra el menu principal
• /Combo: Muestra el combo party actual
• /Carnage: Muestra cuantas rondas faltan para el modo carnage
• /Top: Muestra un top
• /Shop: Muestra el menu de shop
• /Compras y /Reglas: Pueden editarlo, pongan un archivo .txt en cstrike con el nombre reglas y compras .txt
• /Loteria: Abre el menu para jugar a la loteria
• /Suerte: Prueba tu suerte! Cvars: (amxmodx/configs/expmod_cfg.cfg)
Changelog:
Código:
- v2.0.0: Lanzamiento del plugin
- v2.0.1: Se agrega el define ADMIN_ACCESS_ALL (Acceso menu de admin/realizar loteria)
- v2.0.2: Se corrigen algunos bugs de SQL Injection y de messagemode
Plugins:
• HidenSeek ExpMod v2.0.2 by Gonza.-*
• Clases HidenSeek ExpMod v1.0.0 by Gonza.-*
Plugins adicionales: (Incluidos en el rar)
• LaserMines v2.3 by SandStriker
• Parachute v1.3 by KRoTaL/JTP10181
Eso es todo espero que lo disfruten, si encuentran algun error o algo por el estilo sientanse libres de hacermelo saber para poder solucionarlo, o postear la solucion asi actualizo el post, saludos!
Si señor! Los bugs de SQL Injection estan solucionados! No se si habra otro tipo de bug, pero si lo hay dudo mucho que afecte al juego en lo mas minimo!
public INGRESAR_RESPUESTA(id) { if (p_status[id] != STATUS_REGISTERED) { server_cmd("kick #%d ^"Ocurrio un error con tu usuario^"", get_user_userid(id)) return }
Y como? Decime como lo fixeo o donde esta el bug, yo en esa funcion veo todo bien, y sin posibilidad de hacer injection, ya que la consulta es la siguiente:
Código:
g_query = SQL_PrepareQuery(g_hTuple, "SELECT respuesta, password FROM cuentas WHERE nombre COLLATE NOCASE LIKE ^"%s^"", p_name[id])
y con el nombre no podes poner ", por ende no podes hacer injection en esa funcion, si sabes verdaderamente como, decime! gracias
22/01/2014, 02:54 PM (Última modificación: 22/01/2014, 02:54 PM por Neeeeeeeeeel.-.)
(21/01/2014, 03:16 AM)Gonza.-* escribió: Y como? Decime como lo fixeo o donde esta el bug, yo en esa funcion veo todo bien, y sin posibilidad de hacer injection, ya que la consulta es la siguiente:
Código:
g_query = SQL_PrepareQuery(g_hTuple, "SELECT respuesta, password FROM cuentas WHERE nombre COLLATE NOCASE LIKE ^"%s^"", p_name[id])
y con el nombre no podes poner ", por ende no podes hacer injection en esa funcion, si sabes verdaderamente como, decime! gracias
Ponete de nombre "DROP TABLE cuentas;#
Que yo recuerde si había forma de ponerse " en el nombre...
static simbol[2], ret, i get_user_name(id, p_name[id], 32)
if (contain_restricted(p_name[id], simbol, 1)) { server_cmd("kick #%d ^"Tu nombre contiene un caracter no permitido [%s]^"", get_user_userid(id), simbol) return } else if (equali(p_name[id], "loteria")) { server_cmd("kick #%d ^"Tu nombre esta restringido^"", get_user_userid(id)) return }
engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", p_name[id]) client_cmd(id, "name ^"%s^"", p_name[id]) client_print(id, print_console, "No puedes cambiarte el nombre, ya que es tu usuario") ColorChat(id, GREEN, "%s^x01 No puedes cambiarte el nombre, ya que es tu usuario", szPrefix) return FMRES_SUPERCEDE }
else if (is_user_connected(id) && p_status[id] != STATUS_LOGED) { static simbol[2]