29/06/2018, 06:32 PM
(Última modificación: 24/05/2020, 10:39 PM por Hinami. Edited 3 times in total.)
puedes crear otra categoría de armas especiales, hace mucho tiempo hice un menú para agregar items ( no sé si funciona )
para agregar un arma mira el tutorial de Mario AR de subplugins, de ahí aprendí..
Como agregar un item al plugin?
para agregar un arma mira el tutorial de Mario AR de subplugins, de ahí aprendí..
Código PHP:
/*
Script generated by Pawn Studio
Uso:
*************************************************************************
native zp_item( const nombre[], precio, adm, descrip[], admt[] );
forward dar_item( id, item_id );
*************************************************************************
*/
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <api_oldmenu>
#define PLUGIN "Plugin"
#define AUTHOR "Hypnotize"
#define VERSION "1.0"
new Array:gName, Array:gPrecio, Array:gDescripcion, Array:gTipo, Array:gTipoTxt, fw_Item_Selected, gTotalItems;
new ItemSelected[ 33 ];
new g_isReset[ 33 ];
#if AMXX_VERSION_NUM > 182
#define client_disconnect client_disconnected
#endif
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
// Add your own code here
fw_Item_Selected = CreateMultiForward("dar_item", ET_STOP, FP_CELL, FP_CELL);
register_clcmd("say /shop", "Items");
oldmenu_register();
}
public plugin_natives()
{
register_native("zp_item", "item_register", 0);
}
public plugin_precache()
{
gName = ArrayCreate(50);
gDescripcion = ArrayCreate(62);
gTipoTxt = ArrayCreate(42);
gPrecio = ArrayCreate();
gTipo = ArrayCreate();
}
public Items(id)
{
new szItem[ 90 ], szTipo[ 90 ], admin, precio, menu = menu_create("\wExtraItems n\bBy Hypnotize", "GiveItems_Handler");
new g_isLen[ 400 ];
for(new i = 0; i < gTotalItems; ++i)
{
ArrayGetString(gName, i, szItem, charsmax(szItem) )
ArrayGetString(gTipoTxt, i, szTipo, charsmax(szTipo) )
admin = ArrayGetCell( gTipo, i );
precio = ArrayGetCell( gPrecio, i );
if( admin == ADMIN_ALL )
{
if( g_isReset[ id ] >= precio )
{
formatex(g_isLen, charsmax(g_isLen), "%s | \y[ \r%d \y]", szItem, precio);
}
else
{
formatex(g_isLen, charsmax(g_isLen), "\d%s | \y[ \r%d \y]", szItem, precio);
}
}
else
{
if( get_user_flags(id) & admin )
{
if( g_isReset[ id ] >= precio )
{
formatex(g_isLen, charsmax(g_isLen), "%s | \y[ \r%d \y]", szItem, precio);
}
else
{
formatex(g_isLen, charsmax(g_isLen), "\d%s | \y[ \r%d \y]", szItem, precio);
}
}
else
{
formatex(g_isLen, charsmax(g_isLen), "\d%s | ADMIN: \y[ \r%s \y]", szItem, szTipo);
}
}
menu_additem(menu, g_isLen);
}
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public GiveItems_Handler(id, menu, item)
{
if( item == MENU_EXIT || !(0 <= item < gTotalItems) )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new admin = ArrayGetCell( gTipo, item );
new precio = ArrayGetCell( gPrecio, item );
if( g_isReset[ id ] < precio )
{
chatcolor(id, "RR insuficiente");
return PLUGIN_HANDLED;
}
if( admin == ADMIN_ALL )
{
ItemSelected[ id ] = item;
GiveItems(id, item);
}
else
{
if( get_user_flags(id) & admin )
{
ItemSelected[ id ] = item;
GiveItems(id, item);
}
else
{
chatcolor(id, "Compra un ^4ADMIN^1 para ese ^4ITEM^1");
Items(id);
}
}
return PLUGIN_HANDLED;
}
public GiveItems(id, item)
{
oldmenu_create("hGive_Items", "\wExtraItems ^n\bBy Hypnotize");
new szItem[ 90 ], szTipo[ 90 ], precio;
ArrayGetString(gName, item, szItem, charsmax(szItem) )
ArrayGetString(gDescripcion, item, szTipo, charsmax(szTipo) )
precio = ArrayGetCell( gPrecio, item );
oldmenu_additem(-1, 0, "%s | \y[ \r%d \y]", szItem, precio );
oldmenu_additem(-1, 0, "Descripcion: \y[ \r%s \y]^n", szTipo );
oldmenu_additem(1, 0, "\r1. \wComprar?");
oldmenu_additem(0, 0, "^n^n\r0. \wSalir");
oldmenu_display(id);
return PLUGIN_HANDLED;
}
public hGive_Items(id, item, value, page)
{
if( item == 0 )
return PLUGIN_HANDLED;
new aItem = ItemSelected[ id ];
new ret;
ExecuteForward(fw_Item_Selected, ret, id, aItem);
if ( ret == PLUGIN_HANDLED )
chatcolor(id, "No puedes comprarlo ahora.");
else
{
new szItemName[32];
ArrayGetString(gName, aItem, szItemName, charsmax(szItemName));
chatcolor(id, "Has comprado: !g%s!y", szItemName);
}
return PLUGIN_HANDLED;
}
public item_register(plugin, params)
{
new szNombre[32]; get_string(1, szNombre, charsmax(szNombre));
ArrayPushString(gName, szNombre);
ArrayPushCell(gPrecio, get_param(2));
ArrayPushCell(gTipo, get_param(3));
new szDesp[32]; get_string(4, szDesp, charsmax(szDesp));
ArrayPushString(gDescripcion, szDesp);
new szTip[32]; get_string(5, szTip, charsmax(szTip));
ArrayPushString(gTipoTxt, szTip);
++gTotalItems;
return gTotalItems-1;
}
stock chatcolor(id, const input[], any:...)
{
static szMsg[191], msgSayText;
if (!msgSayText)
msgSayText = get_user_msgid("SayText");
vformat(szMsg, 190, input, 3);
replace_all(szMsg, 190, "!g", "^4");
replace_all(szMsg, 190, "!y", "^1");
replace_all(szMsg, 190, "!team", "^3");
message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id);
write_byte(id ? id : 33);
write_string(szMsg);
message_end();
}
Como agregar un item al plugin?
Código PHP:
/* Script generated by Pawn Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plugin"
#define AUTHOR "Unknown"
#define VERSION "1.0"
native zp_item( const nombre[], precio, adm, descrip[], admt[] );
forward dar_item( id, item_id );
new iItem;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
// Add your own code here
iItem = zp_item( "Nombre ITEM", 35, ADMIN_BAN, "Descripcion Item", "ADMIN BAN" );
}
public dar_item( id, item_id ){
if( iItem != item_id )
return;
//dar el item
}