Mensajes: 8
Temas: 2
Registro en: Jun 2014
Reputación:
0
hola alguien me ayuda a hacer lo que estoy pidiendo es hacer que un admin gane frags x2
Mensajes: 4,247
Temas: 94
Registro en: Mar 2014
Reputación:
58
Te puedes explicar un poco mas?
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
PLUGINSMAPAS
Menú LANG
[SF] Sistema de Frags
Say System (Admin Prefix)
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
24/06/2014, 03:07 PM
(Última modificación: 28/07/2014, 03:57 PM por Mía.)
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_frags, cvar_deathfrags;
public plugin_init() { register_plugin(PLUGIN, VERSION, "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 killer, victim; 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(victim, vfrags); if (!is_user_connected(killer) || killer == victim) return; if (get_user_flags(killer) & NIVEL_DE_ADMIN) set_user_frags(killer, get_user_frags(killer) + get_pcvar_num(cvar_frags)); }
Mensajes: 2,870
Temas: 13
Registro en: Oct 2013
Reputación:
24
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
Mensajes: 8
Temas: 2
Registro en: Jun 2014
Reputación:
0
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
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
(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?
Mensajes: 2,870
Temas: 13
Registro en: Oct 2013
Reputación:
24
24/06/2014, 04:14 PM
(Última modificación: 24/06/2014, 04:21 PM por [R]ak.)
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(PLUGIN, VERSION, "Mario AR."); register_event("DeathMsg", "event_DeathMsg", "a"); cvar_frags = register_cvar("frags_para_admin", "1"); }
public event_DeathMsg() { static killer, victim, vfrags; killer = read_data(1); victim = read_data(2); vfrags = get_user_frags(victim) set_user_frags(victim, !vfrags ? 0 : (vfrags-1)) //kashdksjahdkashdkjashd tengo sueño ._. if (!is_user_connected(killer) || killer == victim) return; static flags; flags = get_user_flags(killer); if (flags & NIVEL_DE_ADMIN) set_user_frags(killer, get_user_frags(killer) + get_pcvar_num(cvar_frags)); }
edit: ahi ta mejor
Mensajes: 27
Temas: 4
Registro en: Jun 2014
Reputación:
0
24/06/2014, 04:52 PM
(Última modificación: 24/06/2014, 04:53 PM por ZCyl.)
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_MaxPlayers, g_MakeCallBack, g_Frags[33], g_Vault, g_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(PLUGIN, VERSION, AUTHOR) 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(Buffer, charsmax(Buffer), "Comprar Hitzone ^n^nFrags:%d", g_Frags[id]) new menu = menu_create(Buffer, "menu_handler") for(new i; i < sizeof(CONST_MENU_DATA); i++) { formatex(Buffer, charsmax(Buffer), "Hitzone %s [Frags %d]", CONST_MENU_DATA[i][mHITZONE], CONST_MENU_DATA[i][mPRICE]) Data[0] = CONST_MENU_DATA[i][mPRICE] menu_additem(menu, Buffer, Data, .callback = g_MakeCallBack) } menu_display(id, menu) return PLUGIN_HANDLED }
public menu_CallBack(id, menu, item) { if(!is_user_connected(id) || IsBite(g_BitHitzone[menu_hitzone(item)], id)) return ITEM_DISABLED new Data[2], Crap menu_item_getinfo(menu, item, Crap, Data, charsmax(Data), _, _, Crap) if(g_Frags[id] < Data[0]) return ITEM_DISABLED return ITEM_ENABLED }
public menu_handler(id, menu, item) { if(!is_user_connected(id) || item == MENU_EXIT) { menu_destroy(menu) return } new Data[2], Crap menu_item_getinfo(menu, item, Crap, Data, charsmax(Data), _, _, Crap) MarkBite(g_BitHitzone[menu_hitzone(item)], id) g_Frags[id] -= Data[0] client_print(id, print_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(id, g_VaultKey[id], charsmax(g_VaultKey[])) LoadData(id) }
public client_disconnect(id) { SaveData(id) for(new i; i < MAX_NUM_HITZONE; i++) { ClearBite(g_BitHitzone[i], id) } }
public fw_PlayerTakeDamagePre(victim, inflictor, attacker, Float:damage, damage_type) { if(victim == attacker || !player_valid(attacker)) return HAM_IGNORED static vHitzone vHitzone = get_pdata_int(victim, PDATA_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], Data, charsmax(Data))) { rak_cut_data(Data, g_Frags[id], BitData) for(new i; i < MAX_NUM_HITZONE; i++) if(IsBite(BitData, i)) MarkBite(g_BitHitzone[i], id) } }
SaveData(id) { static VaultData[20], BitData BitData = 0 for(new i; i < MAX_NUM_HITZONE; i++) if(IsBite(g_BitHitzone[i], id)) MarkBite(BitData, i) formatex(VaultData, charsmax(VaultData), "%d %d", g_Frags[id], BitData) nvault_set(g_Vault, g_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
Mensajes: 2,870
Temas: 13
Registro en: Oct 2013
Reputación:
24
24/06/2014, 05:06 PM
(Última modificación: 24/06/2014, 05:13 PM por [R]ak.)
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_MaxPlayers, g_MakeCallBack, g_Frags[33], g_Vault, g_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(PLUGIN, VERSION, AUTHOR) 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, iVictim iAttacker = read_data(1) iVictim = read_data(2) !g_Frags[iVictim] ? 0 /*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(Buffer, charsmax(Buffer), "Comprar Hitzone ^n^nFrags:%d", g_Frags[id]) new menu = menu_create(Buffer, "menu_handler") for(new i; i < sizeof(CONST_MENU_DATA); i++) { formatex(Buffer, charsmax(Buffer), "Hitzone %s [Frags %d]", CONST_MENU_DATA[i][mHITZONE], CONST_MENU_DATA[i][mPRICE]) Data[0] = CONST_MENU_DATA[i][mPRICE] menu_additem(menu, Buffer, Data, .callback = g_MakeCallBack) } menu_display(id, menu) return PLUGIN_HANDLED }
public menu_CallBack(id, menu, item) { if(!is_user_connected(id) || IsBite(g_BitHitzone[menu_hitzone(item)], id)) return ITEM_DISABLED new Data[5], Crap menu_item_getinfo(menu, item, Crap, Data, charsmax(Data), _, _, Crap) if(g_Frags[id] < Data[0]) return ITEM_DISABLED return ITEM_ENABLED }
public menu_handler(id, menu, item) { if(!is_user_connected(id) || item == MENU_EXIT) { menu_destroy(menu) return } new Data[5], Crap menu_item_getinfo(menu, item, Crap, Data, charsmax(Data), _, _, Crap) MarkBite(g_BitHitzone[menu_hitzone(item)], id) g_Frags[id] -= Data[0] client_print(id, print_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(id, g_VaultKey[id], charsmax(g_VaultKey[])) LoadData(id) }
public client_disconnect(id) { SaveData(id) for(new i; i < MAX_NUM_HITZONE; i++) { ClearBite(g_BitHitzone[i], id) } }
public fw_PlayerTakeDamagePre(victim, inflictor, attacker, Float:damage, damage_type) { if(victim == attacker || !player_valid(attacker)) return HAM_IGNORED static vHitzone vHitzone = get_pdata_int(victim, PDATA_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], Data, charsmax(Data))) { rak_cut_data(Data, g_Frags[id], BitData) for(new i; i < MAX_NUM_HITZONE; i++) if(IsBite(BitData, i)) MarkBite(g_BitHitzone[i], id) } }
SaveData(id) { static VaultData[20], BitData BitData = 0 for(new i; i < MAX_NUM_HITZONE; i++) if(IsBite(g_BitHitzone[i], id)) MarkBite(BitData, i) formatex(VaultData, charsmax(VaultData), "%d %d", g_Frags[id], BitData) nvault_set(g_Vault, g_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] ? 0 /*magic*/ : g_Frags[iVictim]--
edit2: ahi te arregle el "bug" del "127"
Mensajes: 27
Temas: 4
Registro en: Jun 2014
Reputación:
0
Sigue sin funcionar, dejo una imagen del bug
Mensajes: 8
Temas: 2
Registro en: Jun 2014
Reputación:
0
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
(24/06/2014, 05:06 PM)[R]ak escribió: edit: a que esta no la sabias Mario
Código PHP: !g_Frags[iVictim] ? 0 /*magic*/ : g_Frags[iVictim]--
edit2: ahi te arregle el "bug" del "127"
Ten el warning que te mereces por desperdiciar CPU:
Código: Warning: Expression has no effect on line *
ON: Por qué no -1 frags?
Mensajes: 2,870
Temas: 13
Registro en: Oct 2013
Reputación:
24
24/06/2014, 07:23 PM
(Última modificación: 24/06/2014, 07:23 PM por [R]ak.)
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
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
24/06/2014, 08:26 PM
(Última modificación: 24/06/2014, 08:29 PM por Mía.)
(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
Código PHP: !g_Frags[iVictim] ? 0 /*magic*/ : g_Frags[iVictim]--
-->
Código PHP: g_Frags[iVictim] <= 0 ? 0 /*magic*/ : g_Frags[iVictim]--
-->
Código PHP: if (g_Frags[iVictim] > 0) g_Frags[iVictim]--
Mensajes: 2,870
Temas: 13
Registro en: Oct 2013
Reputación:
24
24/06/2014, 08:31 PM
(Última modificación: 24/06/2014, 08:42 PM por [R]ak.)
Nunca g_frags puede ser -1
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
(24/06/2014, 08:31 PM)[R]ak escribió: Nunca g_frags puede ser -1
Editando el vault
PD: Me gustó el plugin, lo estoy usando con bots
Mensajes: 2,459
Temas: 15
Registro en: Feb 2014
Reputación:
28
(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
|