(PEDIDO) Asignar skin con flag para admins o vips
#1
Información 
necesitaría ese plugin para mi sv, si conoces de algún aporte seria de gran ayuda! gracias por leer!
Responder
#2
Lo acabo de hacer, fijate si te sirve!
Código PHP:
// === SISTEMA DE SKINS ===
// ===== VERSION: 1.0 =====

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>

new const PLUGIN[][] = { "Sys de Skins""1.0""Emanuelitop15""^4[^3SKINS^4]^1"  };

// FLAGS
#define JUGADOR ADMIN_ALL
#define ADMIN ADMIN_BAN // flag: d
#define VIP ADMIN_LEVEL_B // flag: n

// SKINS
new g_skin[33];

enum _DATA_SKINS
{
    
SKIN[32],
    
SKIN_MDL[32],
    
SKIN_FLAG
};

new const 
i_skins[][DATA_SKINS] =
{
    { 
"Terrateniente""terrateniente"JUGADOR },
    { 
"Skiny Girl""skinnygirl"ADMIN },
    { 
"Soldado""soldado"ADMIN },
    { 
"Predator""predator"VIP },
}

// Funciones Principales
public plugin_init()
{
    
register_plugin(PLUGIN[0], PLUGIN[1], PLUGIN[2]);

    
register_clcmd("say skin""clcmd_skin");

    
RegisterHam(Ham_Spawn"player""ham_jugador_spawn_post"true);
}

public 
client_putinserver(idg_skin[id] = -1;

public 
plugin_precache()
{
    new 
smdl[106], mdlT[106];

    for (
0sizeof (i_skins); s++)
    {
        
formatex(mdlcharsmax(mdl), "models/player/%s/%s.mdl"i_skins[s][SKIN_MDL], i_skins[s][SKIN_MDL]);
        
precache_model(mdl);

        
// T
        
formatex(mdlTcharsmax(mdlT), "models/player/%s/%sT.mdl"i_skins[s][SKIN_MDL], i_skins[s][SKIN_MDL]);
        if (
file_exists(mdlT)) precache_model(mdlT);
    }
}

public 
clcmd_skin(id)
{
    
menu_skins(id);
    return 
PLUGIN_HANDLED;
}

public 
ham_jugador_spawn_post(id)
{
    if (
is_user_alive(id) && get_user_team(id) == || get_user_team(id) == 2)
        
colocar_skin(id);
}

menu_skins(id)
{
    new 
menussz_txt[206], pos[3];

    
menu menu_create("\ySELECCIONA UNA SKIN\d\R""hdr_skins");

    
menu_additem(menu"\dQUITARSE LA SKIN^n");

    for (
0sizeof (i_skins); s++)
    {
        if (
g_skin[id] == s)
            
formatex(sz_txtcharsmax(sz_txt), "\d%s \r(EQUIPADA)"i_skins[s][SKIN]);
        else if (!
access(idi_skins[s][SKIN_FLAG]))
            
formatex(sz_txtcharsmax(sz_txt), "\d%s \r(SOLO %s)"i_skins[s][SKIN], i_skins[s][SKIN_FLAG] == ADMIN "ADMINS" i_skins[s][SKIN_FLAG] == VIP "VIP" "JUGADORES");    
        else
            
formatex(sz_txtcharsmax(sz_txt), i_skins[s][SKIN]);

        
num_to_str(sposcharsmax(pos));
        
menu_additem(menusz_txtpos);    
    }

    
menu_setprop(menuMPROP_NEXTNAME"Siguiente");
    
menu_setprop(menuMPROP_BACKNAME"Volver");
    
menu_setprop(menuMPROP_EXITNAME"Salir");
    
menu_display(idmenu);
}
public 
hdr_skins(idmenuitem)
{
    
menu_destroy(menu);

    if (!
is_user_connected(id) || item == MENU_EXIT)
        return 
PLUGIN_HANDLED;

    if (!
item)
    {
        if (
g_skin[id] != -1)
        {
            
g_skin[id] = -1;
            
client_print_color(id0"%s Te has quitado la skin!"PLUGIN[3]);
        }

        return 
PLUGIN_HANDLED;
    }

    
item--;

    if (
g_skin[id] == item)
    {
        
menu_skins(id);
        return 
PLUGIN_HANDLED;
    }

    if (!
access(idi_skins[item][SKIN_FLAG]))
    {
        
client_print_color(id0"%s Esta skin es para los^4 %s^1 :("PLUGIN[3], i_skins[item][SKIN_FLAG] == ADMIN "ADMINS" i_skins[item][SKIN_FLAG] == VIP "VIP" "JUGADORES");
        return 
PLUGIN_HANDLED;
    }

    
g_skin[id] = item;
    
client_print_color(id0"%s Te has colocado la skin:^4 %s^1"PLUGIN[3], i_skins[g_skin[id]][SKIN]);
    
client_print_color(id0"%s En la siguiente ronda se te colocará la skin!"PLUGIN[3]);
    
    
menu_skins(id);
    return 
PLUGIN_HANDLED;
}

colocar_skin(id)
{
    if (!
is_user_alive(id))
        return;

    if (
g_skin[id] == -1)
    {
        
cs_reset_user_model(id);
        return;
    }

    if (!
access(idi_skins[g_skin[id]][SKIN_FLAG]))
    {
        
client_print_color(id0"%s Se te ha quitado la skin porque no tienes el acceso para usarla!"PLUGIN[3]);
        
g_skin[id] = -1;
        return;
    }    

    
cs_set_user_model(idi_skins[g_skin[id]][SKIN_MDL]);    

___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Responder
#3
(19/12/2021, 12:47 AM)[E]manuelitop15 escribió: Lo acabo de hacer, fijate si te sirve!
Código PHP:
// === SISTEMA DE SKINS ===
// ===== VERSION: 1.0 =====

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>

new const PLUGIN[][] = { "Sys de Skins""1.0""Emanuelitop15""^4[^3SKINS^4]^1"  };

// FLAGS
#define JUGADOR ADMIN_ALL
#define ADMIN ADMIN_BAN // flag: d
#define VIP ADMIN_LEVEL_B // flag: n

// SKINS
new g_skin[33];

enum _DATA_SKINS
{
 
SKIN[32],
 
SKIN_MDL[32],
 
SKIN_FLAG
};

new const 
i_skins[][DATA_SKINS] =
{
 { 
"Terrateniente""terrateniente"JUGADOR },
 { 
"Skiny Girl""skinnygirl"ADMIN },
 { 
"Soldado""soldado"ADMIN },
 { 
"Predator""predator"VIP },
}

// Funciones Principales
public plugin_init()
{
 
register_plugin(PLUGIN[0], PLUGIN[1], PLUGIN[2]);

 
register_clcmd("say skin""clcmd_skin");

 
RegisterHam(Ham_Spawn"player""ham_jugador_spawn_post"true);
}

public 
client_putinserver(idg_skin[id] = -1;

public 
plugin_precache()
{
 new 
smdl[106], mdlT[106];

 for (
0sizeof (i_skins); s++)
 {
 
formatex(mdlcharsmax(mdl), "models/player/%s/%s.mdl"i_skins[s][SKIN_MDL], i_skins[s][SKIN_MDL]);
 
precache_model(mdl);

 
// T
 
formatex(mdlTcharsmax(mdlT), "models/player/%s/%sT.mdl"i_skins[s][SKIN_MDL], i_skins[s][SKIN_MDL]);
 if (
file_exists(mdlT)) precache_model(mdlT);
 }
}

public 
clcmd_skin(id)
{
 
menu_skins(id);
 return 
PLUGIN_HANDLED;
}

public 
ham_jugador_spawn_post(id)
{
 if (
is_user_alive(id) && get_user_team(id) == || get_user_team(id) == 2)
 
colocar_skin(id);
}

menu_skins(id)
{
 new 
menussz_txt[206], pos[3];

 
menu menu_create("\ySELECCIONA UNA SKIN\d\R""hdr_skins");

 
menu_additem(menu"\dQUITARSE LA SKIN^n");

 for (
0sizeof (i_skins); s++)
 {
 if (
g_skin[id] == s)
 
formatex(sz_txtcharsmax(sz_txt), "\d%s \r(EQUIPADA)"i_skins[s][SKIN]);
 else if (!
access(idi_skins[s][SKIN_FLAG]))
 
formatex(sz_txtcharsmax(sz_txt), "\d%s \r(SOLO %s)"i_skins[s][SKIN], i_skins[s][SKIN_FLAG] == ADMIN "ADMINS" i_skins[s][SKIN_FLAG] == VIP "VIP" "JUGADORES"); 
 else
 
formatex(sz_txtcharsmax(sz_txt), i_skins[s][SKIN]);

 
num_to_str(sposcharsmax(pos));
 
menu_additem(menusz_txtpos); 
 }

 
menu_setprop(menuMPROP_NEXTNAME"Siguiente");
 
menu_setprop(menuMPROP_BACKNAME"Volver");
 
menu_setprop(menuMPROP_EXITNAME"Salir");
 
menu_display(idmenu);
}
public 
hdr_skins(idmenuitem)
{
 
menu_destroy(menu);

 if (!
is_user_connected(id) || item == MENU_EXIT)
 return 
PLUGIN_HANDLED;

 if (!
item)
 {
 if (
g_skin[id] != -1)
 {
 
g_skin[id] = -1;
 
client_print_color(id0"%s Te has quitado la skin!"PLUGIN[3]);
 }

 return 
PLUGIN_HANDLED;
 }

 
item--;

 if (
g_skin[id] == item)
 {
 
menu_skins(id);
 return 
PLUGIN_HANDLED;
 }

 if (!
access(idi_skins[item][SKIN_FLAG]))
 {
 
client_print_color(id0"%s Esta skin es para los^4 %s^1 :("PLUGIN[3], i_skins[item][SKIN_FLAG] == ADMIN "ADMINS" i_skins[item][SKIN_FLAG] == VIP "VIP" "JUGADORES");
 return 
PLUGIN_HANDLED;
 }

 
g_skin[id] = item;
 
client_print_color(id0"%s Te has colocado la skin:^4 %s^1"PLUGIN[3], i_skins[g_skin[id]][SKIN]);
 
client_print_color(id0"%s En la siguiente ronda se te colocará la skin!"PLUGIN[3]);
 
 
menu_skins(id);
 return 
PLUGIN_HANDLED;
}

colocar_skin(id)
{
 if (!
is_user_alive(id))
 return;

 if (
g_skin[id] == -1)
 {
 
cs_reset_user_model(id);
 return;
 }

 if (!
access(idi_skins[g_skin[id]][SKIN_FLAG]))
 {
 
client_print_color(id0"%s Se te ha quitado la skin porque no tienes el acceso para usarla!"PLUGIN[3]);
 
g_skin[id] = -1;
 return;
 } 

 
cs_set_user_model(idi_skins[g_skin[id]][SKIN_MDL]); 


En donde tengo que modificar para que me coloque la skin al seleccionarlo y no tenga que esperar a la siguiente ronda.
Responder
#4
(11/02/2022, 02:41 PM)Axon escribió: En donde tengo que modificar para que me coloque la skin al seleccionarlo y no tenga que esperar a la siguiente ronda.

Código PHP:
// === SISTEMA DE SKINS ===
// ===== VERSION: 1.0 =====

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>

new const PLUGIN[][] = { "Sys de Skins""1.0""Emanuelitop15""^4[^3SKINS^4]^1"  };

// FLAGS
#define JUGADOR ADMIN_ALL
#define ADMIN ADMIN_BAN // flag: d
#define VIP ADMIN_LEVEL_B // flag: n

// SKINS
new g_skin[33];

enum _DATA_SKINS
{
    
SKIN[32],
    
SKIN_MDL[32],
    
SKIN_FLAG
};

new const 
i_skins[][DATA_SKINS] =
{
    { 
"Terrateniente""terrateniente"JUGADOR },
    { 
"Skiny Girl""skinnygirl"ADMIN },
    { 
"Soldado""soldado"ADMIN },
    { 
"Predator""predator"VIP },
}

// Funciones Principales
public plugin_init()
{
    
register_plugin(PLUGIN[0], PLUGIN[1], PLUGIN[2]);

    
register_clcmd("say skin""clcmd_skin");

    
RegisterHam(Ham_Spawn"player""ham_jugador_spawn_post"true);
}

public 
client_putinserver(idg_skin[id] = -1;

public 
plugin_precache()
{
    new 
smdl[106], mdlT[106];

    for (
0sizeof (i_skins); s++)
    {
        
formatex(mdlcharsmax(mdl), "models/player/%s/%s.mdl"i_skins[s][SKIN_MDL], i_skins[s][SKIN_MDL]);
        
precache_model(mdl);

        
// T
        
formatex(mdlTcharsmax(mdlT), "models/player/%s/%sT.mdl"i_skins[s][SKIN_MDL], i_skins[s][SKIN_MDL]);
        if (
file_exists(mdlT)) precache_model(mdlT);
    }
}

public 
clcmd_skin(id)
{
    
menu_skins(id);
    return 
PLUGIN_HANDLED;
}

public 
ham_jugador_spawn_post(id)
{
    if (
is_user_alive(id) && get_user_team(id) == || get_user_team(id) == 2)
        
colocar_skin(id);
}

menu_skins(id)
{
    new 
menussz_txt[206], pos[3];

    
menu menu_create("\ySELECCIONA UNA SKIN\d\R""hdr_skins");

    
menu_additem(menu"\dQUITARSE LA SKIN^n");

    for (
0sizeof (i_skins); s++)
    {
        if (
g_skin[id] == s)
            
formatex(sz_txtcharsmax(sz_txt), "\d%s \r(EQUIPADA)"i_skins[s][SKIN]);
        else if (!
access(idi_skins[s][SKIN_FLAG]))
            
formatex(sz_txtcharsmax(sz_txt), "\d%s \r(SOLO %s)"i_skins[s][SKIN], i_skins[s][SKIN_FLAG] == ADMIN "ADMINS" i_skins[s][SKIN_FLAG] == VIP "VIP" "JUGADORES");    
        else
            
formatex(sz_txtcharsmax(sz_txt), i_skins[s][SKIN]);

        
num_to_str(sposcharsmax(pos));
        
menu_additem(menusz_txtpos);    
    }

    
menu_setprop(menuMPROP_NEXTNAME"Siguiente");
    
menu_setprop(menuMPROP_BACKNAME"Volver");
    
menu_setprop(menuMPROP_EXITNAME"Salir");
    
menu_display(idmenu);
}
public 
hdr_skins(idmenuitem)
{
    
menu_destroy(menu);

    if (!
is_user_connected(id) || item == MENU_EXIT)
        return 
PLUGIN_HANDLED;

    if (!
item)
    {
        if (
g_skin[id] != -1)
        {
            
g_skin[id] = -1;
            
client_print_color(id0"%s Te has quitado la skin!"PLUGIN[3]);
        }

        return 
PLUGIN_HANDLED;
    }

    
item--;

    if (
g_skin[id] == item)
    {
        
menu_skins(id);
        return 
PLUGIN_HANDLED;
    }

    if (!
access(idi_skins[item][SKIN_FLAG]))
    {
        
client_print_color(id0"%s Esta skin es para los^4 %s^1 :("PLUGIN[3], i_skins[item][SKIN_FLAG] == ADMIN "ADMINS" i_skins[item][SKIN_FLAG] == VIP "VIP" "JUGADORES");
        return 
PLUGIN_HANDLED;
    }

    
g_skin[id] = item;
    
client_print_color(id0"%s Te has colocado la skin:^4 %s^1"PLUGIN[3], i_skins[g_skin[id]][SKIN]);
    
colocar_skin(id);
    
    
menu_skins(id);
    return 
PLUGIN_HANDLED;
}

colocar_skin(id)
{
    if (!
is_user_alive(id))
        return;

    if (
g_skin[id] == -1)
    {
        
cs_reset_user_model(id);
        return;
    }

    if (!
access(idi_skins[g_skin[id]][SKIN_FLAG]))
    {
        
client_print_color(id0"%s Se te ha quitado la skin porque no tienes el acceso para usarla!"PLUGIN[3]);
        
g_skin[id] = -1;
        return;
    }    

    
cs_set_user_model(idi_skins[g_skin[id]][SKIN_MDL]);    

Responder
#5
en mi firma hay uno si te sirve
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)