admin con frags x2
#1
hola alguien me ayuda a hacer lo que estoy pidiendo es hacer que un admin gane frags x2
Responder
#2
Te puedes explicar un poco mas?
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#3
Código PHP:
#include <amxmodx>
#include <fun>

#define PLUGIN "Frags Admin"
#define VERSION "0.1"

#pragma semicolon 1

const NIVEL_DE_ADMIN ADMIN_KICK;
new 
cvar_fragscvar_deathfrags;

public 
plugin_init()
{
    
register_plugin(PLUGINVERSION"Mario AR.");
    
register_event("DeathMsg""event_DeathMsg""a");

    
// Frags adicionales que reciben los admins
    
cvar_frags register_cvar("frags_para_admin""1");

    
// Frags que pierdes al morir
    
cvar_deathfrags register_cvar("frags_al_morir""1");
}

public 
event_DeathMsg()
{
    static 
killervictim;
    
killer read_data(1);
    
victim read_data(2);

    static 
vfrags get_user_frags(victim) - get_pcvar_num(cvar_deathfrags);
    if (
vfrags >= 0)
        
set_user_frags(victimvfrags);
    
    if (!
is_user_connected(killer) || killer == victim)
        return;
    
    if (
get_user_flags(killer) & NIVEL_DE_ADMIN)
        
set_user_frags(killerget_user_frags(killer) + get_pcvar_num(cvar_frags));

Responder
#4
tenes que chequear q victim y attacker no sean el mismo id por que cuando pones kill en consola tanto el attacker como victim es el mismo id
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#5
Muchas gracias pero ahora necesito que se te reste 1 frag por muerte por ejemplo: si matas 100 y moris 20 te quedan 80 frags
Responder
#6
(24/06/2014, 04:02 PM)Elite V2 escribió: Muchas gracias pero ahora necesito que se te reste 1 frag por muerte por ejemplo: si matas 100 y moris 20 te quedan 80 frags

Edité arriba, revisa.
PD: Que reste frags solo a los admins o a todos?
Responder
#7
Código PHP:
#include <amxmodx>
#include <fun>

#define PLUGIN "Frags Admin"
#define VERSION "0.1"

//#pragma semicolon 1 I HATE THAT SHIT

const NIVEL_DE_ADMIN ADMIN_KICK;
new 
cvar_frags;

public 
plugin_init()
{
    
register_plugin(PLUGINVERSION"Mario AR.");
    
register_event("DeathMsg""event_DeathMsg""a");
    
cvar_frags register_cvar("frags_para_admin""1");
}

public 
event_DeathMsg()
{
    static 
killervictimvfrags;
    
killer read_data(1);
    
victim read_data(2);
    
    
vfrags get_user_frags(victim)
    
    
set_user_frags(victim,  !vfrags : (vfrags-1))    //kashdksjahdkashdkjashd tengo sueño ._.
    
    
if (!is_user_connected(killer) || killer == victim)
        return;
    
    static 
flagsflags get_user_flags(killer);
    
    if (
flags NIVEL_DE_ADMIN)
        
set_user_frags(killerget_user_frags(killer) + get_pcvar_num(cvar_frags));
    


edit: ahi ta mejor
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#8
Como hago para agregarle eso a esto
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <nvault>

#define PLUGIN "Buy Hitzone"
#define VERSION "1.1.4"
#define AUTHOR "[R]ak"

// Enums

enum _:MenuConstData {
    
    
mHITZONE[32],
    
mPRICE[5]
    
}

// Offset

const PDATA_OFFSET_HITZONE 75

// Const

const MAX_NUM_HITZONE 8

const DEFAULT_HITZONE HIT_HEAD

new const CONST_MENU_DATA[][MenuConstData] = {
    
    {
        
"Head"
    
        
0
    
    
},
    
    {
        
"Pecho"

        
127

    
},

    {
        
"Estomago"

        
127

    
},

    {
        
"Brazo izquierdo"

        
127

    
},

    {
        
"Brazo derecho"

        
127

    
},

    {
        
"Pierna izquierda"

        
127

    
},

    {
        
"Pierna derecha"

        
127

    
}
}

const 
DMG_GRENADE = (1<<24)

// Global Vars

new g_MaxPlayersg_MakeCallBackg_Frags[33], g_Vaultg_VaultKey[33][35]

// Bits

#define MarkBite(%0,%1)    %0 |= ( 1 << ( %1 & 31 ) )
#define ClearBite(%0,%1)    %0 &= ~( 1 << ( %1 & 31 ) )
#define IsBite(%0,%1)    ( %0 & ( 1 << ( %1 & 31 ) ) )

new g_BitHitzone[MAX_NUM_HITZONE]

// Macro

#define player_valid(%1)    (1 <= %1 <= g_MaxPlayers)

#define menu_hitzone(%1)    (%1+1)

public plugin_init() {
    
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHam(Ham_TakeDamage"player""fw_PlayerTakeDamagePre"false)
    
    
register_clcmd("say /menu""cmdMenu")
    
    
register_event("DeathMsg""event_DeathMsg""a""1>0""2>0")
    
    
g_MaxPlayers get_maxplayers()
    
    
g_MakeCallBack menu_makecallback("menu_CallBack")
    
}

public 
plugin_cfg() {
    
    
g_Vault nvault_open("VaultHitzone")
    
    if(
g_Vault == INVALID_HANDLE)
        
set_fail_state("[R]ak Acme Inc.- Error al abrir el vault")
    
}

public 
event_DeathMsg() {
    
    static 
iAttacker
    
    iAttacker 
read_data(1)
    
    if(
read_data(2) == iAttacker)
        return
    
    
g_Frags[iAttacker]++
    
}

public 
cmdMenu(id) {
    
    new 
Buffer[128], Data[2]
    
    
formatex(Buffercharsmax(Buffer), "Comprar Hitzone ^n^nFrags:%d"g_Frags[id])
    
    new 
menu menu_create(Buffer"menu_handler")
    
    for(new 
isizeof(CONST_MENU_DATA); i++) {
        
        
formatex(Buffercharsmax(Buffer), "Hitzone %s [Frags %d]"CONST_MENU_DATA[i][mHITZONE], CONST_MENU_DATA[i][mPRICE])
        
        
Data[0] = CONST_MENU_DATA[i][mPRICE]
        
        
menu_additem(menuBufferData, .callback g_MakeCallBack)
        
    }
    
    
menu_display(idmenu)
    
    return 
PLUGIN_HANDLED
    
}

public 
menu_CallBack(idmenuitem) {
    
    if(!
is_user_connected(id) || IsBite(g_BitHitzone[menu_hitzone(item)], id))
        return 
ITEM_DISABLED
    
    
new Data[2], Crap
    
    menu_item_getinfo
(menuitemCrapDatacharsmax(Data), __Crap)
    
    if(
g_Frags[id] < Data[0])
        return 
ITEM_DISABLED
    
    
return ITEM_ENABLED
    
}

public 
menu_handler(idmenuitem) {
    
    if(!
is_user_connected(id) || item == MENU_EXIT) {
        
        
menu_destroy(menu)
        
        return
        
    }
    
    new 
Data[2], Crap
    
    menu_item_getinfo
(menuitemCrapDatacharsmax(Data), __Crap)
    
    
MarkBite(g_BitHitzone[menu_hitzone(item)], id)
    
    
g_Frags[id] -= Data[0]
    
    
client_print(idprint_chat"Raz3r.- Ahora haces danio en %s"CONST_MENU_DATA[item][mHITZONE])
    
}

public 
client_putinserver(id) {
    
    
MarkBite(g_BitHitzone[DEFAULT_HITZONE], id)
    
    
g_Frags[id] = 0
    
    get_user_authid
(idg_VaultKey[id], charsmax(g_VaultKey[]))
    
    
LoadData(id)
    
}

public 
client_disconnect(id) {
        
    
SaveData(id)
    
    for(new 
iMAX_NUM_HITZONEi++) {
        
        
ClearBite(g_BitHitzone[i], id)
        
    }    
}

public 
fw_PlayerTakeDamagePre(victiminflictorattackerFloat:damagedamage_type) {
    
    if(
victim == attacker || !player_valid(attacker))
        return 
HAM_IGNORED
    
    
static vHitzone
    
    vHitzone 
get_pdata_int(victimPDATA_OFFSET_HITZONE)
    
    if(
IsBite(g_BitHitzone[vHitzone], attacker) || vHitzone == HIT_GENERIC || damage_type == DMG_GRENADE)
        return 
HAM_IGNORED
    
    
return HAM_SUPERCEDE
    
}

LoadData(id) {
        
    static 
Data[64], BitData
    
    
if(nvault_get(g_Vault g_VaultKey[id], Datacharsmax(Data))) {
        
        
rak_cut_data(Datag_Frags[id], BitData)
    
        for(new 
iMAX_NUM_HITZONEi++)
            if(
IsBite(BitDatai))
                
MarkBite(g_BitHitzone[i], id)
        
        
    }
}

SaveData(id) {
    
    static 
VaultData[20], BitData
    
    BitData 
0
    
    
for(new iMAX_NUM_HITZONEi++)
        if(
IsBite(g_BitHitzone[i], id))
            
MarkBite(BitDatai)
    
    
formatex(VaultDatacharsmax(VaultData), "%d %d"g_Frags[id], BitData)
    
    
nvault_set(g_Vaultg_VaultKey[id], VaultData)
    
}

stock rak_cut_data(source[], &dest1, &dest2) {
    
    static 
i
    
    i 
0
    
    
while(source[i] != ' ')
        
i++
    
    
source[i] = 0
    
    dest1 
str_to_num(source)
    
    
dest2 str_to_num(source[i+1])
    
}

public 
plugin_end()
    
nvault_close(g_Vault
Pd: Aprovecho para informar un error que tengo con el plugin, si pongo el costo a mas de 127 frags se bugea todo y me deja comprar gratis
Edit: Quiero ponerle las 2 cosas que pidio :3
Responder
#9
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <nvault>

#define PLUGIN "Buy Hitzone"
#define VERSION "1.2.0"
#define AUTHOR "[R]ak"

// Enums

enum _:MenuConstData {
    
    
mHITZONE[32],
    
mPRICE
    
}

// Offset

const PDATA_OFFSET_HITZONE 75

// Const

const MAX_NUM_HITZONE 8

const DEFAULT_HITZONE HIT_HEAD

new const CONST_MENU_DATA[][MenuConstData] = {
    
    {
        
"Head"
    
        
0
    
    
},
    
    {
        
"Pecho"

        
127

    
},

    {
        
"Estomago"

        
127

    
},

    {
        
"Brazo izquierdo"

        
127

    
},

    {
        
"Brazo derecho"
    
        
127

    
},

    {
        
"Pierna izquierda"

        
127

    
},

    {
        
"Pierna derecha"

        
127

    
}
}

const 
DMG_GRENADE = (1<<24)

// Global Vars

new g_MaxPlayersg_MakeCallBackg_Frags[33], g_Vaultg_VaultKey[33][35]

// Bits

#define MarkBite(%0,%1)    %0 |= ( 1 << ( %1 & 31 ) )
#define ClearBite(%0,%1)    %0 &= ~( 1 << ( %1 & 31 ) )
#define IsBite(%0,%1)    ( %0 & ( 1 << ( %1 & 31 ) ) )

new g_BitHitzone[MAX_NUM_HITZONE]

// Macro

#define player_valid(%1)    (1 <= %1 <= g_MaxPlayers)

#define menu_hitzone(%1)    (%1+1)

public plugin_init() {
    
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHam(Ham_TakeDamage"player""fw_PlayerTakeDamagePre"false)
    
    
register_clcmd("say /menu""cmdMenu")
    
    
register_event("DeathMsg""event_DeathMsg""a""1>0""2>0")
    
    
g_MaxPlayers get_maxplayers()
    
    
g_MakeCallBack menu_makecallback("menu_CallBack")
    
}

public 
plugin_cfg() {
    
    
g_Vault nvault_open("VaultHitzone")
    
    if(
g_Vault == INVALID_HANDLE)
        
set_fail_state("[R]ak Acme Inc.- Error al abrir el vault")
    
}

public 
event_DeathMsg() {
    
    static 
iAttackeriVictim
    
    iAttacker 
read_data(1)
    
iVictim read_data(2)
    
    !
g_Frags[iVictim] ? /*magic*/ g_Frags[iVictim]--
    
    if(
iVictim == iAttacker)        
        return
    
    
g_Frags[iAttacker]+= is_user_admin(iAttacker) +1
    
}

public 
cmdMenu(id) {
    
    new 
Buffer[128], Data[5]
    
    
formatex(Buffercharsmax(Buffer), "Comprar Hitzone ^n^nFrags:%d"g_Frags[id])
    
    new 
menu menu_create(Buffer"menu_handler")
    
    for(new 
isizeof(CONST_MENU_DATA); i++) {
        
        
formatex(Buffercharsmax(Buffer), "Hitzone %s [Frags %d]"CONST_MENU_DATA[i][mHITZONE], CONST_MENU_DATA[i][mPRICE])
        
        
Data[0] = CONST_MENU_DATA[i][mPRICE]
        
        
menu_additem(menuBufferData, .callback g_MakeCallBack)
        
    }
    
    
menu_display(idmenu)
    
    return 
PLUGIN_HANDLED
    
}

public 
menu_CallBack(idmenuitem) {
    
    if(!
is_user_connected(id) || IsBite(g_BitHitzone[menu_hitzone(item)], id))
        return 
ITEM_DISABLED
    
    
new Data[5], Crap
    
    menu_item_getinfo
(menuitemCrapDatacharsmax(Data), __Crap)
    
    if(
g_Frags[id] < Data[0])
        return 
ITEM_DISABLED
    
    
return ITEM_ENABLED
    
}

public 
menu_handler(idmenuitem) {
    
    if(!
is_user_connected(id) || item == MENU_EXIT) {
        
        
menu_destroy(menu)
        
        return
        
    }
    
    new 
Data[5], Crap
    
    menu_item_getinfo
(menuitemCrapDatacharsmax(Data), __Crap)
    
    
MarkBite(g_BitHitzone[menu_hitzone(item)], id)
    
    
g_Frags[id] -= Data[0]
    
    
client_print(idprint_chat"Raz3r.- Ahora haces danio en %s"CONST_MENU_DATA[item][mHITZONE])
    
}

public 
client_putinserver(id) {
    
    
MarkBite(g_BitHitzone[DEFAULT_HITZONE], id)
    
    
g_Frags[id] = 0
    
    get_user_authid
(idg_VaultKey[id], charsmax(g_VaultKey[]))
    
    
LoadData(id)
    
}

public 
client_disconnect(id) {
    
    
SaveData(id)
    
    for(new 
iMAX_NUM_HITZONEi++) {
        
        
ClearBite(g_BitHitzone[i], id)
        
    }    
}

public 
fw_PlayerTakeDamagePre(victiminflictorattackerFloat:damagedamage_type) {
    
    if(
victim == attacker || !player_valid(attacker))
        return 
HAM_IGNORED
    
    
static vHitzone
    
    vHitzone 
get_pdata_int(victimPDATA_OFFSET_HITZONE)
    
    if(
IsBite(g_BitHitzone[vHitzone], attacker) || vHitzone == HIT_GENERIC || damage_type == DMG_GRENADE)
        return 
HAM_IGNORED
    
    
return HAM_SUPERCEDE
    
}

LoadData(id) {
    
    static 
Data[64], BitData
    
    
if(nvault_get(g_Vault g_VaultKey[id], Datacharsmax(Data))) {
        
        
rak_cut_data(Datag_Frags[id], BitData)
        
        for(new 
iMAX_NUM_HITZONEi++)
            if(
IsBite(BitDatai))
            
MarkBite(g_BitHitzone[i], id)
        
        
    }
}

SaveData(id) {
    
    static 
VaultData[20], BitData
    
    BitData 
0
    
    
for(new iMAX_NUM_HITZONEi++)
        if(
IsBite(g_BitHitzone[i], id))
        
MarkBite(BitDatai)
    
    
formatex(VaultDatacharsmax(VaultData), "%d %d"g_Frags[id], BitData)
    
    
nvault_set(g_Vaultg_VaultKey[id], VaultData)
    
}

stock rak_cut_data(source[], &dest1, &dest2) {
    
    static 
i
    
    i 
0
    
    
while(source[i] != ' ')
        
i++
    
    
source[i] = 0
    
    dest1 
str_to_num(source)
    
    
dest2 str_to_num(source[i+1])
    
}

public 
plugin_end()
    
nvault_close(g_Vault

edit: a que esta no la sabias Mario

Código PHP:
!g_Frags[iVictim] ? /*magic*/ g_Frags[iVictim]-- 

edit2: ahi te arregle el "bug" del "127"
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#10
Sigue sin funcionar, dejo una imagen del bug
[Imagen: 3378ae3e0728d5f5aad9a736beb07479o.jpg]
Responder
#11
gracias funciona
Responder
#12
(24/06/2014, 05:06 PM)[R]ak escribió: edit: a que esta no la sabias Mario

Código PHP:
!g_Frags[iVictim] ? /*magic*/ g_Frags[iVictim]-- 

edit2: ahi te arregle el "bug" del "127"

A ysiA ysi
Ten el warning que te mereces por desperdiciar CPU:
Código:
Warning: Expression has no effect on line *

ON: Por qué no -1 frags?
Responder
#13
A la noche lo arreglo.. o si Mario quiere transformar los int en string en CONST_MENU_DATA xq ahora no estoy en casa..

La gente mala no se merece -100
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#14
(24/06/2014, 07:23 PM)[R]ak escribió: A la noche lo arreglo.. o si Mario quiere transformar los int en string en CONST_MENU_DATA xq ahora no estoy en casa..

La gente mala no se merece -100

Na, lo arreglé de otra manera.
Buen punto eso del -100 pero con tu magia si tengo -1 frags y me matan tendre -2 Whatever
Código PHP:
!g_Frags[iVictim] ? /*magic*/ g_Frags[iVictim]-- 
-->
Código PHP:
g_Frags[iVictim] <= /*magic*/ g_Frags[iVictim]-- 
-->
Código PHP:
if (g_Frags[iVictim] > 0g_Frags[iVictim]-- 
Responder
#15
Nunca g_frags puede ser -1
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#16
(24/06/2014, 08:31 PM)[R]ak escribió: Nunca g_frags puede ser -1

Editando el vault Whatever
PD: Me gustó el plugin, lo estoy usando con bots Fuck yeah
Responder
#17
(24/06/2014, 08:31 PM)[R]ak escribió: Nunca g_frags puede ser -1

nunca digas nunca
[TUT] Carnage

Fight

"El limite de los backdoors de gente q sabe programar como nostros lo impone nuestra maldad interior y creeme q soy muy malo en el interior"

Anónimo
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)