[APORTE+EXPLICACION] Sistema de VIP v1.0
#26
No tiene que ver , es un th en la seccion de aportes..
(10/10/2014, 06:38 PM)RauliTop escribió:
(10/10/2014, 04:40 PM)ivan escribió: no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos Thats what she saidtutoriales Proud me encataan Whatever
Responder
#27
pedazo aporte! gracias.
Sé humilde en tu enfoque.
Responder
#28
y Para que el comando sea solo para admin level A habria que agregar

Código PHP:
get_user_flags(id) & ADMIN_LEVEL_A 

????
"El camino de pies y manos" Tae Kwon Do
Responder
#29
(17/09/2014, 07:06 PM)Hackeloff escribió: y Para que el comando sea solo para admin level A habria que agregar

Código PHP:
get_user_flags(id) & ADMIN_LEVEL_A 

????

Busca esta linea y cambia 'ADMIN_RCON' por el acceso que quieras.
Código PHP:
register_concmd("amx_vip""CmdVip"ADMIN_RCON"<NOMBRE o #USERID> <DIAS DE VIP> <POR CUANTO>"
Responder
#30
Hola, tengo una duda, adapte el sistema de vips, a mysql, andubo todo perfecto, pero hay alguna forma de cuando guardo el vencimiento, no se vean de una forma asi "1414354900", todos esos numeros guarda si doy un vip de 30 dias, no se si me explico, el codigo es el mismo que el del post, no modifique nada
Responder
#31
(26/09/2014, 05:38 PM)ALeN96 escribió: Hola, tengo una duda, adapte el sistema de vips, a mysql, andubo todo perfecto, pero hay alguna forma de cuando guardo el vencimiento, no se vean de una forma asi "1414354900", todos esos numeros guarda si doy un vip de 30 dias, no se si me explico, el codigo es el mismo que el del post, no modifique nada

Es por que en la variable g_vencimiento[index] se guarda lo que devuelva la funcion get_systime() sumado 30 (dias) * 86400 (en tu caso son 30 dias).
Es normal que aparezcan esos numeros ya que son los segundos que pasaron desde el principio de 1970 (Tengo entendido de que es asi)
Luego a esos segundos como te dije anteriormente le sumas 30 * 86400.
86400 serian los segundos de un dia, 30 los dias que queres que sea vip, entonces, estariamos calculando los segundos que tiene 30 dias para sumarlo con lo que devuelva get_systime, el resultado lo guardariamos en g_vencimiento[index], cuando pase ese tiempo y el jugador se conecte al servidor se verificara si paso el tiempo limite de su vip (get_systime >= g_vencimiento)..
Si no entendiste algo decime que te lo trato de explicar mejor, ya que no me se expresar bien por eso escribo mucho :p
Responder
#32
De cuanto es la ganancia?, oh donde puedo definir el tipo de ganancia?, Muuy buen aporteGran sonrisa Excitedeyes
Responder
#33
(16/03/2016, 01:22 PM)Leoaramayo escribió: De cuanto es la ganancia?, oh donde puedo definir el tipo de ganancia?, Muuy buen aporteGran sonrisa Excitedeyes

Cuando pongas en consola estando en tu servidor (amx_vip "Nombre del player" "Dias que queres que tenga el vip" "aca la cantidad"), espero que te sirva Gran sonrisa
Código PHP:
register_concmd("amx_vip""CmdVip"ADMIN_RCON"<NOMBRE o #USERID> <DIAS DE VIP> <POR CUANTO>"

EL QUE SABE SABE, EL QUE NO ES JEFE Mario
Responder
#34
Gracias xDTrolleyesCutecryCutecryCutecry
Responder
#35
(11/07/2014, 05:36 PM)LuKks escribió: Informacion:
- Es un simple sistema de vip, asi como esta el codigo no sirve, tienes que adaptarlo a tu mod o plugin.
- la variable g_ganancia[Index] es la que define el POR CUANTO.
- Dejo el '.sma' limpio sin comentarios para que puedan analizarlo bien en busca de errores o ideas para mejorarlo Sonrisa
- Ya contiene un guardado tipo Adv-Vault por SteamID.
- Se que hay muchos plugins sobre VIP, pero no como el que hice aqui.
- Porfavor, acepto todas sus criticas.

Ejemplo de uso una ves adaptado:
amx_vip LuKks 31 5
[amxmodx-es.com] Se le dio VIP x5 a ;LuKks.-' por 31 dias

Si tienen problemas al adaptar o no saben hacerlo:
Comenta con el codigo de tu mod o plugin y te lo adapto yo Sonrisa
En el caso de que no quieras que todos tengan tu plugin o mod enviamelo por mensaje privado!

Código PHP:
#include <amxmodx>
#include <amxmisc>

enum
{
    
VIP=0,
    
GANANCIA,
    
VENC,
    
MAX
}
// Creamos unas variables para luego usarlas.
new g_vip[33], g_ganancia[33], g_vencimiento[33], g_steam[33][32], adv_vault[MAX], g_vault

public plugin_init() 

    
register_plugin("Sistema de VIP""1.0"";LuKks.-'")

    
g_vault adv_vault_open("DatosVIP"false// Creamos y abrimos el Vault.
    
adv_vault[VIP]         = adv_vault_register_field(g_vault"VIP"// Registramos los datos para luego guardarlos y cargarlos.
    
adv_vault[GANANCIA]         = adv_vault_register_field(g_vault"GANANCIA")
    
adv_vault[VENC]         = adv_vault_register_field(g_vault"VENCIMIENTO")
    
adv_vault_init(g_vault// Iniciamos el Vault.

    // Registramos un comando por say y un comando por consola.
    
register_clcmd("say /venc""Cuando_Vence")
    
register_concmd("amx_vip""CmdVip"ADMIN_RCON"<NOMBRE o #USERID> <DIAS DE VIP> <POR CUANTO>")


public 
CmdVip(Indexlevelcid)
{
    
// Si no tiene los accesos establecidos.
    
if (!cmd_access(Indexlevelcid2))
    {
        
console_print(Index"[amxmodx-es.com] No tienes el privilegio correspondiente para usar este comando.")
        return 
PLUGIN_CONTINUE // Returnamos.
    
}
    
// Si tiene los accesos establecidos:
    
new Arg[32], Arg2[6], Arg3[6], Nombre[32], DiasX
    
// Leemos y obtenemos lo que escribio por consola (Nombre, Dias, Por cuanto).
    
read_argv(1Argcharsmax(Arg)); read_argv(2Arg2charsmax(Arg2))
    
read_argv(3Arg3charsmax(Arg3)); new id cmd_target(IndexArgcharsmax(Arg))
    
//Si el jugador no es bot o hltv.
    
if (!is_user_bot(id) && !is_user_hltv(id))
    {
        
Dias str_to_num(Arg2)// Pasamos los Dias y X de string a num.
        
str_to_num(Arg3)
        
get_user_name(idNombrecharsmax(Nombre)) // Obtenemos el nombre de aquel al que le estamos dando VIP.
        
Vip(idDiasXNombre// Seteamos todos los datos a esta funcion.
    
}
    else
// Si el jugador no es valido (Lo contrario a la condicion anterior).
        
console_print(Index"[amxmodx-es.com] El jugador no es valido.")
    
    return 
PLUGIN_CONTINUE
}
// Cuando el jugador es validado.
public client_authorized(Index)
{
    
get_user_authid(Indexg_steam[Index], charsmax(g_steam[])) // Obtenemos su steam id.
    
    
NoVip(Index// Reseteamos los datos.
    
Vault(Index2// Cargamos los datos guardados anteriormente (Si es que hay).
    
Check(Index// Chequeamos si se le vencio o no el VIP.
}
// Funcion para setear VIP.
public Vip(IndexDiasMultipNombre[])
{
    
g_vencimiento[Index] = get_systime() + Dias 86400 // Una simple operacion matematica setear en segundos los Dias
    
g_vip[Index] = true
    g_ganancia
[Index] = Multip
    Vault
(Index1// Guardamos los datos.
    
client_print(0print_chat"[amxmodx-es.com] Se le dio VIP x%d a %s por %d dias"MultipNombreDias)
}
// Chequeo.
public Check(Index)
{
    
// Si esta conectado, es vip, y el tiempo del sistema es mayor al que se determinado antes.
    
if(is_user_connected(Index) && g_vip[Index] && get_systime() >= g_vencimiento[Index])
    {
        
NoVip(Index// Le sacamos el vip
        
Vault(Index1// Y guardamos los datos.
    
}
}
// Funcion para resetear los datos.
public NoVip(Index)
{
    
g_vip[Index] = false
    g_ganancia
[Index] = 1
    g_vencimiento
[Index] = 0
}
// Funcion para saber cuantos dias les queda de VIP.
public Cuando_Vence(Index)
{
    if(
g_vip[Index])// Si es vip. -------------------------------------- Otra simple operacion matematica para determinar cuantos dias le quedan.
        
client_print(Indexprint_chat"Te quedan %d dias de VIP.", ((g_vencimiento[Index] - get_systime( )) / 86400) + 1)
    else
        
client_print(Indexprint_chat"No eres VIP.")
}
// Guardado de datos tipo: Adv-Vault.
public Vault(IndexGuardar_Cargar)
{
    if(
Guardar_Cargar == 1// Si al usar la funcion puse Guardar_Cargar en 1
    
{
        
adv_vault_set_start(g_vault// Preparamos para modificar los datos, es decir, Guardarlos en este caso.
        
adv_vault_set_field(g_vaultadv_vault[VIP], g_vip[Index]) // Modificamos los datos con los actuales.
        
adv_vault_set_field(g_vaultadv_vault[GANANCIA], g_ganancia[Index])
        
adv_vault_set_field(g_vaultadv_vault[VENC], g_vencimiento[Index])
        
adv_vault_set_end(g_vault0g_steam[Index]) // Actualizamos los datos seteados anteriormente.
    
}
    else if(
Guardar_Cargar == 2)
    {
        
// Si el jugador no tiene datos guardados.
        
if(!adv_vault_get_prepare(g_vault0g_steam[Index]))
            return
        
// Obtenemos los datos guardados del jugador en nuestras variables.
        
g_vip[Index] = adv_vault_get_field(g_vaultadv_vault[VIP])
        
g_ganancia[Index] = adv_vault_get_field(g_vaultadv_vault[GANANCIA])
        
g_vencimiento[Index] = adv_vault_get_field(g_vaultadv_vault[VENC])
    }



Lo puedes adaptar para el modo jctf ? te addjunto el sma


Archivos adjuntos
.sma   Descargar AMXX / jctf.sma (Tamaño: 141.61 KB / Descargas: 9)
[Imagen: ban1.jpg]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)