27/04/2021, 04:13 AM
(Última modificación: 27/04/2021, 04:27 AM por [E]manuelitop15. Edited 3 times in total.)
Buenas, ofrezco mis servicios para hacer plugins personalizados de lo que andes necesitando. Tengo conocimiento en Pawn desde hace mas de 6 años, algo de conocimiento en MYSQL y HTLM.
Una parte de un plugin actual que hice hace 1 semana para una comunidad, asi ven como hago mis codigos...
Algunos mini-plugins que hice para ayudar a usuarios:
- Respawn Reverso
- Menu de Armas por flags
Si el plugin es complejo y lleva tiempo el precio será mas caro. En mi perfil pueden ver alguno de los "aportes" que hice (sin embargo codeaba mal en ese entonces asi que no recomiendo usarlos xd)
PD: Soy de argentina
Una parte de un plugin actual que hice hace 1 semana para una comunidad, asi ven como hago mis codigos...
Código PHP:
//===================================
//========= GRUPOS v3.0 ===========
//===================================
/* CHANGELOG */
// v1.0: Lanzamiento del Plugin
// v1.5: Menus re-diseñados, adaptado para bots y arreglo de bugs
// v2.0: Codigo renovado y se agrego la funcion de pedir unirse a un grupo y bloquear solicitudes!
// v2.5: Fix de bug en el say, combo renovado y es optimizo el codigo
// v3.0: Se removió el tiempo de invitación y se agregó recompensa al suprear 10millones de daño en combo (ZU ADAPTATION)
/*[ LIBRERIAS ]*/
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <zombie_universo>
/*[ PLUGIN ]*/
#define CREADOR "Emanuelitop15"
#define PLUGIN "[ZU-X] Grupos"
#define VERSION "3.0"
/*[ DEFINES ]*/
#define TAG "^x04[GRUPO]^x01"
#define usuario_valido_conectado(%1) (1 <= %1 <= g_max_jugadores && g_conectado[%1])
#define MAX_GRUPOS 10
#define TASK_COMBO 7555
#define ID_COMBO (taskid - TASK_COMBO)
/*[ VARIABLES ]*/
new g_texto[850], g_max_jugadores
new g_conectado[33], g_nombre[33][32], g_nombre_creador[MAX_GRUPOS+1][32]
new g_combo[33][2][MAX_GRUPOS+1], g_combo_dmg[33][2][MAX_GRUPOS+1], g_msgsync_combo
/*[ GRUPOS ]*/
enum _: _grupitos
{
G_NOMBRE[16],
G_CREADOR,
G_MIEMBROS,
G_SOLICITUDES,
G_GANANCIA,
}
new i_grupo[MAX_GRUPOS+1][_grupitos], g_grupo[33], g_creando_grupo[33], g_invitacion[33], g_bloquear_solicitud[33]
/*[ COMBO ]*/
enum _: _combito
{
COMBO_NOMBRE[33], /*Texto del combo que estas haciendo*/
COMBO_DMG, /*Daño necesario para subir el multiplicador del combo*/
COMBO_MULTI, /*Multiplica la ganancia que acumulas cada vez que superes el daño requerido*/
COMBO_COLOR_ROJO, /*Color rojo del hud*/
COMBO_COLOR_VERDE, /*Color verde del hud*/
COMBO_COLOR_AZUL /*Color azul del hud*/
}
new const combo[8][_combito] =
{
{ "Empezando", 100000, 0, 150, 150, 150 },
{ "Combeador Novato", 1000000, 1, 60, 255, 0 },
{ "Cazadores", 2500000, 2, 200, 0, 200 },
{ "Asesinos", 4500000, 3, 0, 100, 255 },
{ "Leyenda", 7500000, 4, 255, 100, 0 },
{ "Exterminadores", 10000000, 5, 0, 90, 255 },
{ "Descomunal", 50000000, 6, 100, 255, 0 },
{ "INALCANZABLES", 200000000, 8, 150, 255, 0 }
}
/*[ CVARS ]*/
new cvar_grupos_bots, cvar_max_miembros, cvar_ganancia_total, cvar_drop_de_rangos
/*[ PLUGIN INIT ]*/
public plugin_init()
{
register_plugin(PLUGIN, VERSION, CREADOR)
RegisterHam(Ham_TakeDamage, "player", "fw_danyo")
cvar_grupos_bots = register_cvar("grupos_bots_activado", "1") // Los bots tambien puedes usar los grupos (esto es medio beta asi que capaz tenga bugs xd)
cvar_max_miembros = register_cvar("grupos_maximo_de_miembros", "3") // Maximo de miembros permitido por grupo
cvar_ganancia_total = register_cvar("grupos_ganancia_total_division", "490") // Basicamente divide el daño total hecho que es la ganancia
cvar_drop_de_rangos = register_cvar("grupos_drop_de_rangos", "1") // Esto de los rangos lo adaptan dependiend sus flags
g_msgsync_combo = CreateHudSyncObj()
g_max_jugadores = get_maxplayers()
register_clcmd("CREAR_GRUPO", "crear__grupo")
register_clcmd("say_team", "say_grupo")
register_clcmd("say /grupo", "menu_grupos")
}
/*[ NATIVES ]*/
public plugin_natives()
{
register_native("zu_menu_grupo", "native_menu_grupo", 1)
register_native("zu_en_grupo", "native_en_grupo", 1)
}
public native_en_grupo(id)
{
return g_grupo[id];
}
public native_menu_grupo(id)
{
return menu_grupos(id, 0);
}
/*[ PLUGIN CFG ]*/
public plugin_cfg()
{
for (new grupo = 1; grupo <= MAX_GRUPOS; grupo++)
{
copy(i_grupo[grupo][G_NOMBRE], 15, "Crear un Grupo")
copy(g_nombre_creador[grupo], 31, "Ninguno")
i_grupo[grupo][G_MIEMBROS] = 0
i_grupo[grupo][G_CREADOR] = 0
i_grupo[grupo][G_GANANCIA] = 0
}
}
/*[ PUTIN SERVER ]*/
public client_putinserver(id)
{
g_conectado[id] = true
get_user_name(id, g_nombre[id], charsmax(g_nombre[]))
g_grupo[id] = 0
g_invitacion[id] = false
g_creando_grupo[id] = 0
g_bloquear_solicitud[id] = 0
for (new grupo = 1; grupo <= MAX_GRUPOS; grupo++)
{
g_combo[id][0][grupo] = 0
g_combo[id][1][grupo] = 0
g_combo_dmg[id][0][grupo] = 0
g_combo_dmg[id][1][grupo] = 0
}
}
Algunos mini-plugins que hice para ayudar a usuarios:
- Respawn Reverso
Código PHP:
// =====================================================|
// ================ RESPAWN REVERSO 1.0 ================|
// =====================================================|
// ================== EMANUELITOP15 ====================|
// =====================================================|
// [ LIBRERIAS ]
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta_util>
// [ PLUGIN ]
#define PLUGIN "Respawn Reverso [R-R]"
#define VERSION "1.0"
#define AUTHOR "Emanuelitop15"
// [ TASK ]
#define TASK_RESURECCION 85500
#define ID_RESURRECCION (taskid - TASK_RESURECCION)
// [ VARIABLE/CVARS/ENUM ]
new g_reverso[33]
new cvar_rr_activado, cvar_rr_tiempo, cvar_rr_inverso
enum{
iCS_SIN_EQUIPO = 0,
iCS_EQUIPO_T,
iCS_EQUIPO_CT,
iCS_EQUIPO_ESPECTADOR
}
// [ PLUGIN INIT ]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Killed, "player", "jugador_asesinado")
//RegisterHam(Ham_Spawn, "player", "aparicion_del_jugador", 1)
cvar_rr_activado = register_cvar("rr_activar", "1") // Activa el respawn (la reaparicion del jugador)
cvar_rr_tiempo = register_cvar("rr_tiempo", "3.0") // Tiempo que debe esperar para volver a reaparecer
cvar_rr_inverso = register_cvar("rr_inverso", "1") // Para que reviva en el equipo contrario (si sos CT reviivar como T y viceversa)
}
// [ PUTIN SERVER / USUARIO DESCONECTADO ]
public client_putinserver(id) g_reverso[id] = false
public client_disconnect(id) g_reverso[id] = false
// [ FUNCIONES ]
public jugador_asesinado(victima, atacante){
if (!get_pcvar_num(cvar_rr_activado)) return
remove_task(victima+TASK_RESURECCION)
if (get_pcvar_num(cvar_rr_inverso)){
if (fm_cs_get_user_team(victima) != fm_cs_get_user_team(atacante)){
g_reverso[victima] = true
set_task(get_pcvar_float(cvar_rr_tiempo), "revivir_jugadores", victima+TASK_RESURECCION)
}
}else{
g_reverso[victima] =false
set_task(get_pcvar_float(cvar_rr_tiempo), "revivir_jugadores", victima+TASK_RESURECCION)
}
}
public revivir_jugadores(taskid){
new id; id = ID_RESURRECCION
if (is_user_alive(id)) return;
if (g_reverso[id]){
if (fm_cs_get_user_team(id) == iCS_EQUIPO_CT) fm_cs_set_user_team(id, iCS_EQUIPO_T)
else if (fm_cs_get_user_team(id) == iCS_EQUIPO_T) fm_cs_set_user_team(id, iCS_EQUIPO_CT)
}else{
if (fm_cs_get_user_team(id) == iCS_EQUIPO_CT) fm_cs_set_user_team(id, iCS_EQUIPO_CT)
else fm_cs_set_user_team(id, iCS_EQUIPO_T)
}
ExecuteHamB(Ham_CS_RoundRespawn, id)
}
// [ STOCKS ]
stock fm_cs_get_user_team(id)
{
return get_pdata_int(id, 114,5);
}
stock fm_cs_set_user_team(id, team)
{
set_pdata_int(id, 114, team, 5)
}
- Menu de Armas por flags
Código PHP:
// [ LIBRERIAS ]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fakemeta_util>
#include <fun>
// [ MENU DE ARMAS PARA ADMIN - EMANUELITOP15 ]
#define PLUGIN "Emanuelito15"
#define VERSION "1.0"
#define AUTHOR "ARMAS DE ADMIN"
// [ FLAGS ]
#define FLAG_ADMIN ADMIN_LEVEL_A // Aca le pones el flag que quieras!
// [ CONSTANTES ]
const iARMAS_PRIMARIAS = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
const iARMAS_SECUNDARIAS = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)
new const MAXBPAMMO[] = { -1, 52, -1, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, -1, 100 }
new const AMMOTYPE[][] = { "", "357sig", "", "762nato", "", "buckshot", "", "45acp", "556nato", "", "9mm", "57mm", "45acp",
"556nato", "556nato", "556nato", "45acp", "9mm", "338magnum", "9mm", "556natobox", "buckshot", "556nato", "9mm", "762nato", "", "50ae", "556nato", "762nato", "", "57mm" }
// [ CVARS ]
new cvar_menu_armas_de_admin
// [ PLUGIN INIT ]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "aparicion_de_usuario", 1)
cvar_menu_armas_de_admin = register_cvar("menu_de_armas_admin", "1") // Acivar el menu?
}
// [ APARICION DEL JUGADOR (PLAYER SPAWN) ]
public aparicion_de_usuario(id){
if (!is_user_alive(id)) return;
if (!(get_user_flags(id) & FLAG_ADMIN) || !get_pcvar_num(cvar_menu_armas_de_admin)) return;
mArmasAdmin(id)
}
// [ FUNCIONES ]
public mArmasAdmin(id) {
new Menu = menu_create("\yArmas de Admin^t^t^t^t^t^t\d", "hmArmasAdmin")
menu_additem(Menu, "AK CS-GO", "1")
menu_additem(Menu, "XM1014 CS-GO", "2")
menu_additem(Menu, "MACHINE GUN", "3")
menu_setprop(Menu, MPROP_EXIT, MEXIT_NORMAL)
menu_display(id, Menu, 0)
}
public hmArmasAdmin(id, menu, boton) {
if (!(get_user_flags(id) & FLAG_ADMIN) || !get_pcvar_num(cvar_menu_armas_de_admin)) return PLUGIN_HANDLED;
if(boton == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED;
}
switch(boton){
case 0:{
tirar_armas(id,1)
give_item(id, "weapon_ak47")
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[CSW_AK47], AMMOTYPE[CSW_AK47], MAXBPAMMO[CSW_AK47])
}case 1:{
tirar_armas(id,1)
give_item(id, "weapon_xm1014")
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[CSW_XM1014], AMMOTYPE[CSW_XM1014], MAXBPAMMO[CSW_XM1014])
}case 2:{
tirar_armas(id,1)
give_item(id, "weapon_m249")
ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[CSW_M249], AMMOTYPE[CSW_M249], MAXBPAMMO[CSW_M249])
}
}
return PLUGIN_HANDLED;
}
// [ STOCKS ]
stock tirar_armas(id, arma)
{
static armas[32], numero, i, id_del_arma
numero = 0
get_user_weapons(id, armas, numero)
for (i = 0; i < numero; i++)
{
id_del_arma = armas[i]
if ((arma == 1 && ((1<<id_del_arma) & iARMAS_PRIMARIAS)) || (arma == 2 && ((1<<id_del_arma) & iARMAS_SECUNDARIAS)))
{
static nombre_del_arma[32], entidad_del_arma
get_weaponname(id_del_arma, nombre_del_arma, charsmax(nombre_del_arma))
entidad_del_arma = find_ent_by_owner(-1, nombre_del_arma, id)
set_pev(entidad_del_arma, pev_iuser1, cs_get_user_bpammo(id, id_del_arma))
engclient_cmd(id, "drop", nombre_del_arma)
cs_set_user_bpammo(id, id_del_arma, 0)
}
}
}
Si el plugin es complejo y lleva tiempo el precio será mas caro. En mi perfil pueden ver alguno de los "aportes" que hice (sin embargo codeaba mal en ese entonces asi que no recomiendo usarlos xd)
PD: Soy de argentina
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15