[CODIGO] Records
#1
Idea que salio por un usuario en un foro de una comunidad mexicana

Dejo mi codigo aqui a la rapidita

Son records, al final del mapa hay una meta y guardara el tiempo que tardaste en pasar el mapa, y ademas viene con un top de los mejores 5 records por cada mapa

Este plugin les puede servir para: Deathrun, Zombie Escape, KZ

Codigo
Código PHP:
#include <amxmodx>
#include <adv_vault>
#include <fakemeta>
#include <engine>

#define PLUGIN "Codigo de records"
#define VERSION "1.0"
#define AUTHOR "Metrikcz"

#define MODEL_meta "models/meta.mdl"

new const g_maps[][] = { 
    
"ze_area51_lg",
    
"ze_5tazona_lg"
}

new const 
Float:g_map_origin[][3] = { 
    {-
384.30617.4086.03}, //{"ze_area51_lg"},
    
{-898.741530.76810.03//{"ze_5tazona_lg"},
}

new 
Float:g_record[33][30], g_touched[33], Float:g_tiempo[33], g_sort_map[30], g_menu_map[30], g_vault_mapFloat:g_gametimeg_mapag_vdatamap[30]
new 
g_user[33][32]

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_forward(FM_Touch"fw_Touch")
    
register_logevent("logevent_round_start"2"1=Round_Start")
    
register_logevent("logevent_round_end"2"1=Round_End")
    
register_clcmd("say /records""show_menu_records")
    new 
mapname[32]; get_mapname(mapname31)
    for(new 
0sizeof g_mapsi++) {
        if(
equal(mapnameg_maps[i])) {
            
g_mapa i
            
break;
        }
    }
    
load_adv_vault() 
    
create_meta()
    
}

public 
plugin_precache()
    
precache_model(MODEL_meta)

public 
logevent_round_start() {
    
g_gametime get_gametime()
    for(new 
id 1id <= 32id++) g_tiempo[id] = 1.00 // con arrayset me da waring :P
    
arrayset(g_touched033)
}
public 
logevent_round_end() {
    
adv_vault_sort_update(g_vault_mapg_sort_map[g_mapa])
    
set_task(3.0"load_top_records")
}
public 
fw_Touch(entvictim) {
    if (!
pev_valid(ent))
        return 
FMRES_IGNORED;

    new 
EntClassName[32]
    
entity_get_string(entEV_SZ_classnameEntClassNamecharsmax(EntClassName))
        
    if(
equal(EntClassName"meta") && is_user_alive(victim) && !g_touched[victim])
        
load_record(victim)
        
    return 
FMRES_IGNORED;
}

load_record(id) {
    
g_touched[id] = true
    g_tiempo
[id] = get_gametime() - g_gametime
    
    
if(g_tiempo[id] < g_record[id][g_mapa]) {
        
g_record[id][g_mapa] = g_tiempo[id]
        
client_print(idprint_chat"Tienes un nuevo record: %.2f"g_tiempo[id])
        
        
adv_vault_set_start(g_vault_map)
        
adv_vault_set_field(g_vault_mapg_vdatamap[g_mapa], _:g_tiempo[id])
        
adv_vault_set_end(g_vault_map_g_user[id])
    }
    else
        
client_print(idprint_chat"Hiciste un tiempo de %.2f pero no fue suficiente"g_tiempo[id])
}

create_meta()
{
    
log_amx("mapa %s (%d)"g_maps[g_mapa], g_mapa)
    
    new 
ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))    
    if(!
ent) return;

    
engfunc(EngFunc_SetModelentMODEL_meta)
    
set_pev(entpev_solidSOLID_TRIGGER)
    
set_pev(entpev_classname"meta")
    
engfunc(EngFunc_SetSizeentFloat:{-150.0, -1.0, -150.0}, Float:{150.01.0150.0})
    
set_pev(entpev_minsFloat:{-150.0, -1.0, -150.0})
    
set_pev(entpev_maxsFloat:{150.01.0150.0})
    
engfunc(EngFunc_SetOriginentg_map_origin[g_mapa])    
}

load_adv_vault() {
    
g_vault_map adv_vault_open("Record"true)
    
    for(new 
0sizeof g_mapsi++) 
        
g_vdatamap[i] = adv_vault_register_field(g_vault_mapg_maps[i])

    
adv_vault_init(g_vault_map)    
    for(new 
0sizeof g_mapsi++) {
        
g_sort_map[i] = adv_vault_sort_create(g_vault_mapORDER_ASC05000g_vdatamap[i])
        
adv_vault_sort_update(g_vault_mapg_sort_map[i])
    }
    
    
set_task(3.0"create_tops")
    
}
public 
create_tops() {
    new 
keykeyname[32], len[150]
    
    for(new 
map 0map sizeof g_mapsmap++) {
        
formatex(lencharsmax(len), "^n\wTop Records^nMapa: \y%s^n"g_maps[map])
        
g_menu_map[map] = menu_create(len"handler_map")
        
        for(new 
1<= 5i++) {
            
key adv_vault_sort_position(g_vault_mapg_sort_map[map], i)
            
            
adv_vault_get_keyname(g_vault_mapkeykeynamecharsmax(keyname))

            if(!
adv_vault_get_prepare(g_vault_mapkey)) 
                continue;
                
            
formatex(lencharsmax(len), "%s:\y %.2f"keynameFloat:adv_vault_get_field(g_vault_mapg_vdatamap[map]))
            
menu_additem(g_menu_map[map], len"")
        }
    }
}

public 
load_top_records() {
    new 
keykeyname[32],  len[150], map
    map 
g_mapa

    menu_destroy
(g_menu_map[map])
    
formatex(lencharsmax(len), "^n \wTop Records^nMapa: \y%s^n"g_maps[map])
    
g_menu_map[map] = menu_create(len"handler_map")
        
    for(new 
1<= 5i++) {
        
key adv_vault_sort_position(g_vault_mapg_sort_map[map], i)
            
        
adv_vault_get_keyname(g_vault_mapkeykeynamecharsmax(keyname))
            
        if(!
adv_vault_get_prepare(g_vault_mapkey)) 
            continue;
                
        
formatex(lencharsmax(len), "%s:\y %.2f"keynameFloat:adv_vault_get_field(g_vault_mapg_vdatamap[map]))
        
menu_additem(g_menu_map[map], len"")
    }
}

public 
show_menu_records(id) {
    new 
len[70], menu menu_create("^n \yTop Records""handler_records")
    for(new 
0sizeof g_mapsx++) {
        
formatex(lencharsmax(len), "%s \y(\rTu Record: \y%.2f)"g_maps[x], g_record[id][x])
        
menu_additem(menulen"")
    }
    
menu_display(idmenu)
}
public 
handler_records(idmenuitem) {
    if(
item != MENU_EXIT)
        
menu_display(idg_menu_map[item])
}
public 
handler_map(idmenuitem) {


Nota: Para este plugin necesitaras modificar adv_vault ya que por cada mapa que agreges es un nuevo sort (top) asi que iras a
Código PHP:
const MAX_SORT            30 // Maximo numero de mapas que pondras 
Todos los MODS VHL totalmente gratuitos  Descarga Aqui

Mis plugins:
STEAM: https://steamcommunity.com/id/Metrikcz/
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
Responder
#2
Buen Aporte Metrikcz.

Lo unico que esto va en el otro sub-foro Aportes. Thats what she said
Responder
#3
Código PHP:
g_mapa 

?? Are you fucking kidding me?

Piensalo y luego dime. Thats what she said
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder
#4
Porque usas engine y fakemeta cuando podes usar solo 1? Ademas de que g_user no le asignas nada, y porque pones el adv_vault_open en true si cargas un par de datos nomas Whatever
Buen aporte.
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Responder
#5
Es un código, claramente necesita ser adaptado, la variable g_mapa es para saber el mapa actual se me olvido obtener su valor en plugin init y también usar load_top_récord al acabar la ronda
Todos los MODS VHL totalmente gratuitos  Descarga Aqui

Mis plugins:
STEAM: https://steamcommunity.com/id/Metrikcz/
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
Responder
#6
Usá solo engine, no sé para que filtrás el classname en la forward touch de fakemeta cuando engine te hace el trabajo de filtrarlo en el módulo.
No hago trabajos privados. Si necesitás ayuda, abrí un nuevo tema.
¿Buscás un ejemplo o algún modo de juego? Podés echarle un vistazo a mis aportes
.
Responder
#7
Buen aporte Yao ming
Responder
#8
hay agrege lo que me falto
Todos los MODS VHL totalmente gratuitos  Descarga Aqui

Mis plugins:
STEAM: https://steamcommunity.com/id/Metrikcz/
FB: fb.com/rwoong
Venta plugins a pedido en México mándame MP
Responder
#9
Hola, has agregado ya lo que te falto?
Estoy muy interesado en ese plugin.
Espero que todo va bien.
Responder
#10
(20/01/2016, 02:11 PM)poker escribió: Hola, has agregado ya lo que te falto?
Estoy muy interesado en ese plugin.
Espero que todo va bien.

No, es un plugin, es una porcion de codigo, para adpatarlo a tus necesidades, aunque esta bien, seria mejor agregar las coordenadas desde un .ini
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#11
Si de verdad.. ya lo hecho, pero todavia no se como puedo encontrar las coordenadas? Me lo explicas por favor?
Responder
#12
Código PHP:
#include <amxmodx>
#include <fakemeta>

public plugin_init()
    
register_clcmd("origin""Show_Origin")

public 
Show_Origin(id)
{
    new 
Float:Origin[3], szOrigin[3][20]
    
pev(idpev_originOrigin)
    
    
float_to_str(Origin[0], szOrigin[0], 19)
    
float_to_str(Origin[1], szOrigin[1], 19)
    
float_to_str(Origin[2], szOrigin[2], 19)
    
    
client_print(idprint_console"%s %s %s"szOrigin[0], szOrigin[1], szOrigin[2])


Yo uso ese codigo que lo encontre en el alliedmodders usa y me funciona repiola, escribes origin en consola y te aparece Gran sonrisa
[Imagen: EvoLogo.png.fbcccbc49fb32e6a4bf8f5e72d80c317.png]
nalgas

(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Responder
#13
Hola, no se si esto sera revivir pero, necesito solucionarlo, estoy usando este code, de stock, sin cambiar nada, solo cambie el model por un sprite, hasta ahi todo bien, pero cuando un usuario toca la meta, no se registra en el sort, cuando uno abre /records, aun asi alla terminado el mapa un usuario, no se registra, como lo soluciono?
[Imagen: EvoLogo.png.fbcccbc49fb32e6a4bf8f5e72d80c317.png]
nalgas

(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Responder
#14
No se si algo estoy haciendo mal, pero me dice este error Error: Expected token: "}", but found "-rational value-" on line 17 y este otro Warning: Loose indentation on line 104

Line 17: {1129.574829 2653.388428 -219.968750}
Line 104: adv_vault_init(g_vault_map)

Como lo soluciono?
[Imagen: 76561198258768928.png][Imagen: AddFriend.png]
Responder
#15
(18/07/2017, 06:13 PM)alanfx escribió: No se si algo estoy haciendo mal, pero me dice este error Error: Expected token: "}", but found "-rational value-" on line 17 y este otro Warning: Loose indentation on line 104

Line 17: {1129.574829 2653.388428 -219.968750}
Line 104: adv_vault_init(g_vault_map)

Como lo soluciono?

Crea un tema nuevo con el código que modificaste
Responder
#16
(09/07/2016, 03:00 AM)elpapimejor escribió: Hola, no se si esto sera revivir pero, necesito solucionarlo, estoy usando este code, de stock, sin cambiar nada, solo cambie el model por un sprite, hasta ahi todo bien, pero cuando un usuario toca la meta, no se registra en el sort, cuando uno abre /records, aun asi alla terminado el mapa un usuario, no se registra, como lo soluciono?

Pos ya un año desde esto, y nada...
El codigo esta de serie, no cambie nada, y no guarda los records, cuando el ususario pasa por el model definido, solo dice hiciste un tiempo de xx pero no fue suficiente.

PD: Hice 1 thread y nadie respondio tampoco
[Imagen: EvoLogo.png.fbcccbc49fb32e6a4bf8f5e72d80c317.png]
nalgas

(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Responder
#17
(18/07/2017, 07:59 PM)elpapimejor escribió:
(09/07/2016, 03:00 AM)elpapimejor escribió: Hola, no se si esto sera revivir pero, necesito solucionarlo, estoy usando este code, de stock, sin cambiar nada, solo cambie el model por un sprite, hasta ahi todo bien, pero cuando un usuario toca la meta, no se registra en el sort, cuando uno abre /records, aun asi alla terminado el mapa un usuario, no se registra, como lo soluciono?

Pos ya un año desde esto, y nada...
El codigo esta de serie, no cambie nada, y no guarda los records, cuando el ususario pasa por el model definido, solo dice hiciste un tiempo de xx pero no fue suficiente.

PD: Hice 1 thread y nadie respondio tampoco

Borra eso men es muy sad
[Imagen: C8JVgSxUwAAoj-v.jpg]

Responder
#18
(18/07/2017, 07:59 PM)elpapimejor escribió:
(09/07/2016, 03:00 AM)elpapimejor escribió: Hola, no se si esto sera revivir pero, necesito solucionarlo, estoy usando este code, de stock, sin cambiar nada, solo cambie el model por un sprite, hasta ahi todo bien, pero cuando un usuario toca la meta, no se registra en el sort, cuando uno abre /records, aun asi alla terminado el mapa un usuario, no se registra, como lo soluciono?

Pos ya un año desde esto, y nada...
El codigo esta de serie, no cambie nada, y no guarda los records, cuando el ususario pasa por el model definido, solo dice hiciste un tiempo de xx pero no fue suficiente.

PD: Hice 1 thread y nadie respondio tampoco
yo le escribí a ella que la amaba, lo sentía & la iba a echar de
menos y tampoco me respondió..
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#19
Mames, ya dejen de sumar post y aiudenme :'v
[Imagen: EvoLogo.png.fbcccbc49fb32e6a4bf8f5e72d80c317.png]
nalgas

(03/08/2018, 03:13 PM)Skylar escribió: Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
Responder
#20
(19/07/2017, 08:42 PM)elpapimejor escribió: Mames, ya dejen de sumar post y aiudenme :'v

Ya arregle mi problema, (mi mod es deathrun) y ahora es otro puto problema que no guarda los records que haz hecho :/, y al poner las coordenadas (mi model es una bandera) pues sale mal puesta, osea esta bien XD pero sale volteada no como debe de ser, como yo la quiero y ya intente varias coordenadas, tambien no sale un texto que diga tu tiempo en el hud ej: Tu tiempo: x:xx deberian ponerlo, y tambien los Terroristas (yo use noclip para salir a la bandera) y me marco como si hubiera hecho tiempo xd. Se supone que es solo para CT's. Ahora imagina que es un Zombie o algo asi los zombies les saldra el tiempo :/ creo yo que esta mal hecho xd. y deberian meterle varias cosas:c quien me ayuda a mi tambien xdddddd
[Imagen: 76561198258768928.png][Imagen: AddFriend.png]
Responder
#21
(19/07/2017, 08:57 PM)alanfx escribió:
(19/07/2017, 08:42 PM)elpapimejor escribió: Mames, ya dejen de sumar post y aiudenme :'v

Ya arregle mi problema, (mi mod es deathrun) y ahora es otro puto problema que no guarda los records que haz hecho :/, y al poner las coordenadas (mi model es una bandera) pues sale mal puesta, osea esta bien XD pero sale volteada no como debe de ser, como yo la quiero y ya intente varias coordenadas, tambien no sale un texto que diga tu tiempo en el hud ej: Tu tiempo: x:xx deberian ponerlo, y tambien los Terroristas (yo use noclip para salir a la bandera) y me marco como si hubiera hecho tiempo xd. Se supone que es solo para CT's. Ahora imagina que es un Zombie o algo asi los zombies les saldra el tiempo :/ creo yo que esta mal hecho xd. y deberian meterle varias cosas:c quien me ayuda a mi tambien xdddddd

Es un aporte que se puede adaptar a cualquier modo, en ninguna parte dice que es solo para el mod Zombie Plague o Deathrun y solo funciona para los CT's.

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)