[ ZE ] Experiencia al llegar a la meta
#1
Hola les dejo este plugin que tengo desde hace mucho y no lo utilizo.

crea un boton y te da XP ( hay que editar la native y poner la suya ) al tocar el boton. Whatever


Código PHP:
/* Script generated by Pawn Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <xs>
#include <engine>
#include <cstrike>

new const iPlugin[][] = {"ZE TOUCH XP""0.1""Hypnotize""[ ZE ]" };

new const 
Model[] = "models/zombie_escape/modelo_boton.mdl";
new const 
iEnt[] = "ZonaSegura";

new 
Float:fOrigin[3];

new 
Path[256];
new 
iMap[90]; 
new 
iRuta[900]; 

new 
g_isTouch33 ];

native get_exp(id);
native set_expidvalue );
native get_ptsid );
native set_ptsidvalue );

#define reward 20

public plugin_init()
{
    
register_plugin(iPlugin[0], iPlugin[1], iPlugin[2])
    
// Add your own code here
    
    
RegisterHam(Ham_Use"func_button""HamUseButton");
    
    
register_event("HLTV""event_RoundStart""a""1=0""2=0");
    
    
register_clcmd("say /zona""f_Menu");
    
get_mapname(iMapcharsmax(iMap));
    
get_configsdir(Pathcharsmax(Path));
    
formatex(iRutacharsmax(iRuta), "%s/%s.ini"PathiMap);
    
    
ReadPos();
}
public 
plugin_precache() precache_model(Model);
public 
event_RoundStart()
{
    
arrayset(g_isTouchfalsesizeof(g_isTouch));
}
public 
HamUseButton(entvictim)
{
    if(!
ent || victim 32)
        return 
HAM_IGNORED
    
    
if(!is_user_alive(victim))
        return 
HAM_IGNORED
    
    
static szTarget[32];
    
entity_get_string(entEV_SZ_targetszTargetcharsmax(szTarget));
     
    if( 
equalszTarget"end_map" ) && is_user_alive(victim) &&  !g_isTouch[victim] )
    {    
        if(
is_user_connected(victim) && cs_get_user_team(victim) == CS_TEAM_CT)
        {
            
g_isTouchvictim ] = true;
            
            
set_dhudmessage2552550, -1.00.6501.03.0 );
            
show_dhudmessagevictim"TERMINASTE EL MAPA WACHIN!!!");
            
            
set_expvictimreward );
            
set_ptsvictim, ( get_ptsvictim ) + reward ) );
            
            
chatcolorvictim"^4%s^1 ^1Ganaste ^4%d^1 de ^4Experiencia^1 por llegar a la meta!"iPlugin[3], reward );
        }
    }
    
    return 
HAM_IGNORED
}
public 
f_Menu(id)
{
    if( ~
get_user_flagsid ) & ADMIN_RCON )
        return 
PLUGIN_HANDLED;
    
    new 
menu menu_create("Registrar Touch","hn_poner");
    
    
menu_additem(menu,"Registrar Entidad");
    
menu_additem(menu,"Borrar Entidad");
    
menu_additem(menu,"Guardar Entidad");
    
    
menu_display(idmenu);
    return 
PLUGIN_HANDLED;
}
public 
hn_poner(idmenuitem)
{
    if ( 
item == MENU_EXIT || ~get_user_flagsid ) & ADMIN_RCON )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    switch(
item){
        case 
0:{
            new 
iOrigin[3]; get_user_origin(idiOrigin3);
            
IVecFVec(iOriginfOrigin); CreateEnt(fOrigin);
        }
        case 
1:{ 
            new 
iEntity = -1;
            while((
iEntity find_ent_by_class(iEntityiEnt)) != 0remove_entityiEntity );
            }
        case 
2SaveEnt(fOrigin);
    }
    
f_Menu(id);
    return 
PLUGIN_HANDLED;  


CreateEnt(const Float:Origin[3])
{
    new 
ent create_entity("func_button")
            
    if(!
is_valid_ent(ent))
        return 
PLUGIN_CONTINUE;
    
    
entity_set_string(entEV_SZ_classnameiEnt);
    
entity_set_string(entEV_SZ_target"end_map");
    
entity_set_int(entEV_INT_solidSOLID_BBOX);
    
entity_set_model(entModel);
    
    
#define INFENT_MINS { -16.0, -16.0, 0.0 }
    #define INFENT_MAXS { 16.0, 16.0, 72.0 }
    
entity_set_sizeentFloat:INFENT_MINSFloat:INFENT_MAXS );
    
engfunc(EngFunc_SetOriginentOrigin); 
    
    
set_rendering(entkRenderFxGlowShell125125125kRenderNormal16);
    
    
drop_to_floor(ent);
    return 
PLUGIN_HANDLED;
}
SaveEnt(const Float:Origin[3]){
    new 
iCoordenada[90]; formatex(iCoordenadacharsmax(iCoordenada),  "%.2f %.2f %.2f"Origin[0], Origin[1], Origin[2]);
    new 
szText[300];
    
    if(!
file_exists(iRuta)) {
        
log_amx("[ZE] Archivo '%s' No existe, pero lo creamos."iRuta);
        
write_file(iRuta"; Archivo creado automaticamente");
        
formatex(szTextcharsmax(szText), "; El mapa es %s:"iMap); write_file(iRutaszText);
        
write_file(iRuta"; Plugin Made By Hypnotize");
        
write_file(iRuta"; Las Coordenadas son:");
    }
    
write_file(iRutaiCoordenada);
}
public 
ReadPos()
{
    if(!
file_exists(iRuta)) {
        
client_print(0print_chat"[ZE] Archivo '%s' NO Existe."iRuta);
        return;
    }
    new 
iDat[40], iDat2[40], iDat3[40];
    new 
szLine[700], Float:iPoss[3];
    
    new 
filefile fopen(iRuta"r");
    while(
file && !feof(file))
    {
        
fgets(fileszLinecharsmax(szLine));
        
        if(
szLine[0] == ';' || szLine[0] == '/' && szLine[1] == '/' || !szLine[0])
            continue;
        
        
parseszLineiDatcharsmax(iDat), iDat2charsmax(iDat2), iDat3charsmax(iDat3));
        
        
iPoss] = str_to_floatiDat );
        
iPoss] = str_to_floatiDat2 );
        
iPoss] = str_to_floatiDat3 );
        
        
CreateEntiPoss );
    }
    
fclose(file);

stock chatcolor(id, const input[], any:...)
{
    static 
szMsg[191], msgSayText;
    
    if (!
msgSayText)
        
msgSayText get_user_msgid("SayText");
    
    
vformat(szMsg190input3);
    
    
replace_all(szMsg190"!g""^4");
    
replace_all(szMsg190"!y""^1");
    
replace_all(szMsg190"!team""^3");
    
    
message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .player id);
    
write_byte(id id 33);
    
write_string(szMsg);
    
message_end();

Responder
#2
(03/02/2019, 02:25 PM)Hypnotize escribió: Hola les dejo este plugin que tengo desde hace mucho y no lo utilizo.

crea un boton y te da XP ( hay que editar la native y poner la suya ) al tocar el boton. Whatever


Código PHP:
/* Script generated by Pawn Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <xs>
#include <engine>
#include <cstrike>

new const iPlugin[][] = {"ZE TOUCH XP""0.1""Hypnotize""[ ZE ]" };

new const 
Model[] = "models/zombie_escape/modelo_boton.mdl";
new const 
iEnt[] = "ZonaSegura";

new 
Float:fOrigin[3];

new 
Path[256];
new 
iMap[90]; 
new 
iRuta[900]; 

new 
g_isTouch33 ];

native get_exp(id);
native set_expidvalue );
native get_ptsid );
native set_ptsidvalue );

#define reward 20

public plugin_init()
{
    
register_plugin(iPlugin[0], iPlugin[1], iPlugin[2])
    
// Add your own code here
    
    
RegisterHam(Ham_Use"func_button""HamUseButton");
    
    
register_event("HLTV""event_RoundStart""a""1=0""2=0");
    
    
register_clcmd("say /zona""f_Menu");
    
get_mapname(iMapcharsmax(iMap));
    
get_configsdir(Pathcharsmax(Path));
    
formatex(iRutacharsmax(iRuta), "%s/%s.ini"PathiMap);
    
    
ReadPos();
}
public 
plugin_precache() precache_model(Model);
public 
event_RoundStart()
{
    
arrayset(g_isTouchfalsesizeof(g_isTouch));
}
public 
HamUseButton(entvictim)
{
    if(!
ent || victim 32)
        return 
HAM_IGNORED
    
    
if(!is_user_alive(victim))
        return 
HAM_IGNORED
    
    
static szTarget[32];
    
entity_get_string(entEV_SZ_targetszTargetcharsmax(szTarget));
     
    if( 
equalszTarget"end_map" ) && is_user_alive(victim) &&  !g_isTouch[victim] )
    {    
        if(
is_user_connected(victim) && cs_get_user_team(victim) == CS_TEAM_CT)
        {
            
g_isTouchvictim ] = true;
            
            
set_dhudmessage2552550, -1.00.6501.03.0 );
            
show_dhudmessagevictim"TERMINASTE EL MAPA WACHIN!!!");
            
            
set_expvictimreward );
            
set_ptsvictim, ( get_ptsvictim ) + reward ) );
            
            
chatcolorvictim"^4%s^1 ^1Ganaste ^4%d^1 de ^4Experiencia^1 por llegar a la meta!"iPlugin[3], reward );
        }
    }
    
    return 
HAM_IGNORED
}
public 
f_Menu(id)
{
    if( ~
get_user_flagsid ) & ADMIN_RCON )
        return 
PLUGIN_HANDLED;
    
    new 
menu menu_create("Registrar Touch","hn_poner");
    
    
menu_additem(menu,"Registrar Entidad");
    
menu_additem(menu,"Borrar Entidad");
    
menu_additem(menu,"Guardar Entidad");
    
    
menu_display(idmenu);
    return 
PLUGIN_HANDLED;
}
public 
hn_poner(idmenuitem)
{
    if ( 
item == MENU_EXIT || ~get_user_flagsid ) & ADMIN_RCON )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    switch(
item){
        case 
0:{
            new 
iOrigin[3]; get_user_origin(idiOrigin3);
            
IVecFVec(iOriginfOrigin); CreateEnt(fOrigin);
        }
        case 
1:{ 
            new 
iEntity = -1;
            while((
iEntity find_ent_by_class(iEntityiEnt)) != 0remove_entityiEntity );
            }
        case 
2SaveEnt(fOrigin);
    }
    
f_Menu(id);
    return 
PLUGIN_HANDLED;  


CreateEnt(const Float:Origin[3])
{
    new 
ent create_entity("func_button")
            
    if(!
is_valid_ent(ent))
        return 
PLUGIN_CONTINUE;
    
    
entity_set_string(entEV_SZ_classnameiEnt);
    
entity_set_string(entEV_SZ_target"end_map");
    
entity_set_int(entEV_INT_solidSOLID_BBOX);
    
entity_set_model(entModel);
    
    
#define INFENT_MINS { -16.0, -16.0, 0.0 }
    #define INFENT_MAXS { 16.0, 16.0, 72.0 }
    
entity_set_sizeentFloat:INFENT_MINSFloat:INFENT_MAXS );
    
engfunc(EngFunc_SetOriginentOrigin); 
    
    
set_rendering(entkRenderFxGlowShell125125125kRenderNormal16);
    
    
drop_to_floor(ent);
    return 
PLUGIN_HANDLED;
}
SaveEnt(const Float:Origin[3]){
    new 
iCoordenada[90]; formatex(iCoordenadacharsmax(iCoordenada),  "%.2f %.2f %.2f"Origin[0], Origin[1], Origin[2]);
    new 
szText[300];
    
    if(!
file_exists(iRuta)) {
        
log_amx("[ZE] Archivo '%s' No existe, pero lo creamos."iRuta);
        
write_file(iRuta"; Archivo creado automaticamente");
        
formatex(szTextcharsmax(szText), "; El mapa es %s:"iMap); write_file(iRutaszText);
        
write_file(iRuta"; Plugin Made By Hypnotize");
        
write_file(iRuta"; Las Coordenadas son:");
    }
    
write_file(iRutaiCoordenada);
}
public 
ReadPos()
{
    if(!
file_exists(iRuta)) {
        
client_print(0print_chat"[ZE] Archivo '%s' NO Existe."iRuta);
        return;
    }
    new 
iDat[40], iDat2[40], iDat3[40];
    new 
szLine[700], Float:iPoss[3];
    
    new 
filefile fopen(iRuta"r");
    while(
file && !feof(file))
    {
        
fgets(fileszLinecharsmax(szLine));
        
        if(
szLine[0] == ';' || szLine[0] == '/' && szLine[1] == '/' || !szLine[0])
            continue;
        
        
parseszLineiDatcharsmax(iDat), iDat2charsmax(iDat2), iDat3charsmax(iDat3));
        
        
iPoss] = str_to_floatiDat );
        
iPoss] = str_to_floatiDat2 );
        
iPoss] = str_to_floatiDat3 );
        
        
CreateEntiPoss );
    }
    
fclose(file);

stock chatcolor(id, const input[], any:...)
{
    static 
szMsg[191], msgSayText;
    
    if (!
msgSayText)
        
msgSayText get_user_msgid("SayText");
    
    
vformat(szMsg190input3);
    
    
replace_all(szMsg190"!g""^4");
    
replace_all(szMsg190"!y""^1");
    
replace_all(szMsg190"!team""^3");
    
    
message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .player id);
    
write_byte(id id 33);
    
write_string(szMsg);
    
message_end();


Me parece un muy buen plugin, pero estas seguro que no tiene un bug o algun error? Whatever (Solo pregunto)
Ze_Jurassic_World_Z [52%]
Ze_Jumping_Area [37%]
(04/02/2019, 05:15 PM)kikizon2 escribió: Me voy por un tiempo y cuando regreso veo esto... Oh god why
Responder
#3
Usar write_file es muy malo.
Responder
#4
(05/02/2019, 04:35 PM)w0w escribió: Usar write_file es muy malo.

por que?
Responder
#5
(05/02/2019, 09:53 PM)hud escribió:
(05/02/2019, 04:35 PM)w0w escribió: Usar write_file es muy malo.

por que?

Creo que hay nuevas funciones que hacen mejor el trabajo de write_file, puedo estar equivocado pero creo que leí algo así hace un par de meses.
[Imagen: ZPChileOficial.png]

[Imagen: b_350_20_323957_202743_f19a15_111111.png]
Zombie Plague Chile

Discord AMXX: Click URL invitación
Venta Jailbreak: Click aca
Responder
#6
(05/02/2019, 09:53 PM)hud escribió:
(05/02/2019, 04:35 PM)w0w escribió: Usar write_file es muy malo.

por que?

Porque lo pone en la documentación, se lleva demaiados recursos, hay natives mejores.
Responder
#7
(06/02/2019, 03:39 AM)w0w escribió:
(05/02/2019, 09:53 PM)hud escribió:
(05/02/2019, 04:35 PM)w0w escribió: Usar write_file es muy malo.

por que?

Porque lo pone en la documentación, se lleva demaiados recursos, hay natives mejores.

a si tenes razón, en mi cabeza pensé que era esa la native.

Usa fprintf Hypnotize.

(06/02/2019, 02:11 AM)metita escribió: Creo que hay nuevas funciones que hacen mejor el trabajo de write_file, puedo estar equivocado pero creo que leí algo así hace un par de meses.

estas en lo correcto.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)