Автори: Craxor и Bugsy
Кратко описание:
- Даване на оръжие/граната само с 1 ред.
Цел:
- Улеснение работата на скриптъра
- Подпомагане на начинаещите да си свършат работата бързо, лесно и качествено
Начин на употреба:
Код за потвърждение: Избери целия код
give_user_weapon( index , iWeaponTypeID , iClip=0 , iBPAmmo=0 , szWeapon[]="" , maxchars=0)
- index е индексът на играча
- iWeaponTypeID е оръжието, което искате да дадете в стил CSW_WEAPONID
- iClip е с колко патрони да дойде оръжието
- iBPAmmo е с колко пълнител да дойде оръжието
- szWeapon (незадължително) - оръжието без weapon_
- Показано в примерна - за получаването на гранатите - maxchars (незадължително) - максималният брой символи ако използвате szWeapon
- Препоръчително: 20 символа
- Показано в примерна - за получаването на гранатите
Изисквания:
- Cstrike
- Fun
- Engine
Предимства:
- Проверка дали играчът е жив
- Проверка дали играчът има даденото оръжие и само му добавя clip/ammo, без да му дава самото оръжие (защото вече го има)
- Настройка с колко clip да дойде оръжието
- Настройка с колко ammo да дойде оръжието
- Може да се използва за гранати
- Връща името на оръжието без weapon_ префикса
- Използват се CSW_ константите за даване на оръжието вместо weapon_ id.
Пример:
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <engine>
public plugin_init()
{
register_plugin("Weapons Menu", "0.1", "Nikolow")
register_clcmd("say /weapons", "WeaponPacks");
}
public WeaponPacks(id)
{
new menu = menu_create("Weapons Menu", "WeaponPacksFunc");
menu_additem(menu, "Pistols", "1", 0);
menu_additem(menu, "ShotGuns / Machine Gun", "2", 0);
menu_additem(menu, "SMGs ", "3", 0);
menu_additem(menu, "Snipers Rifle", "4", 0);
menu_additem(menu, "Snipers", "5", 0);
menu_additem(menu, "Grenades", "6", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
menu_display(id, menu, 0);
}
public WeaponPacksFunc(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
give_user_weapon(id, CSW_GLOCK18, 12, 120);
give_user_weapon(id, CSW_USP, 12, 100);
give_user_weapon(id, CSW_P228, 12, 52);
give_user_weapon(id, CSW_FIVESEVEN, 12, 100);
give_user_weapon(id, CSW_ELITE, 12, 120);
client_print(id, print_chat, "You have got all Pistols");
}
case 2:
{
give_user_weapon(id, CSW_M3,10, 32);
give_user_weapon(id, CSW_XM1014, 10, 32);
give_user_weapon(id, CSW_M249,120, 200);
client_print(id, print_chat, "You have got all ShotGuns");
}
case 3:
{
give_user_weapon(id, CSW_MAC10, 30, 100);
give_user_weapon(id, CSW_UMP45, 30, 100);
give_user_weapon(id, CSW_MP5NAVY, 30, 120);
give_user_weapon(id, CSW_TMP, 30, 120);
give_user_weapon(id, CSW_P90, 30, 100);
client_print(id, print_chat, "You have got all SMGs");
}
case 4:
{
give_user_weapon(id, CSW_AUG, 30, 90);
give_user_weapon(id, CSW_GALIL, 30, 90);
give_user_weapon(id, CSW_FAMAS, 30, 90);
give_user_weapon(id, CSW_M4A1, 30, 90);
give_user_weapon(id, CSW_SG552, 30, 90);
give_user_weapon(id, CSW_AK47, 30, 90);
client_print(id, print_chat, "You have got all Sniper Rifles");
}
case 5:
{
give_user_weapon(id, CSW_SG550, 10, 90);
give_user_weapon(id, CSW_AWP, 10, 30);
give_user_weapon(id, CSW_G3SG1, 10, 90);
give_user_weapon(id, CSW_SCOUT, 10, 90);
client_print(id, print_chat, "You have got all Snipers");
}
case 6:
{
new WeaponName[20];
give_user_weapon( id, CSW_HEGRENADE, _, 1, WeaponName, charsmax( WeaponName ) );
client_print( id, print_chat, " You have got 1 %s", WeaponName );
give_user_weapon( id, CSW_FLASHBANG, _, 1, WeaponName, charsmax( WeaponName ) );
client_print( id, print_chat, " You have got 1 %s", WeaponName );
give_user_weapon( id, CSW_SMOKEGRENADE, _, 1, WeaponName, charsmax( WeaponName ) );
client_print( id, print_chat, " You have got 1 %s", WeaponName );
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
give_user_weapon( index , iWeaponTypeID , iClip=0 , iBPAmmo=0 , szWeapon[]="" , maxchars=0 )
{
if ( !( CSW_P228 <= iWeaponTypeID <= CSW_P90 ) || ( iClip < 0 ) || ( iBPAmmo < 0 ) || !is_user_alive( index ) )
return -1;
new szWeaponName[ 20 ] , iWeaponEntity , bool:bIsGrenade;
const GrenadeBits = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_C4 ) );
if ( ( bIsGrenade = bool:!!( GrenadeBits & ( 1 << iWeaponTypeID ) ) ) )
iClip = clamp( iClip ? iClip : iBPAmmo , 1 );
get_weaponname( iWeaponTypeID , szWeaponName , charsmax( szWeaponName ) );
if ( ( iWeaponEntity = user_has_weapon( index , iWeaponTypeID ) ? find_ent_by_owner( -1 , szWeaponName , index ) : give_item( index , szWeaponName ) ) > 0 )
{
if ( iWeaponTypeID != CSW_KNIFE )
{
if ( iClip && !bIsGrenade )
cs_set_weapon_ammo( iWeaponEntity , iClip );
if ( iWeaponTypeID == CSW_C4 )
cs_set_user_plant( index , 1 , 1 );
else
cs_set_user_bpammo( index , iWeaponTypeID , bIsGrenade ? iClip : iBPAmmo );
}
if ( maxchars )
copy( szWeapon , maxchars , szWeaponName[7] );
}
return iWeaponEntity;
}
Stock:
Код за потвърждение: Избери целия код
give_user_weapon( index , iWeaponTypeID , iClip=0 , iBPAmmo=0 , szWeapon[]="" , maxchars=0 )
{
if ( !( CSW_P228 <= iWeaponTypeID <= CSW_P90 ) || ( iClip < 0 ) || ( iBPAmmo < 0 ) || !is_user_alive( index ) )
return -1;
new szWeaponName[ 20 ] , iWeaponEntity , bool:bIsGrenade;
const GrenadeBits = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_C4 ) );
if ( ( bIsGrenade = bool:!!( GrenadeBits & ( 1 << iWeaponTypeID ) ) ) )
iClip = clamp( iClip ? iClip : iBPAmmo , 1 );
get_weaponname( iWeaponTypeID , szWeaponName , charsmax( szWeaponName ) );
if ( ( iWeaponEntity = user_has_weapon( index , iWeaponTypeID ) ? find_ent_by_owner( -1 , szWeaponName , index ) : give_item( index , szWeaponName ) ) > 0 )
{
if ( iWeaponTypeID != CSW_KNIFE )
{
if ( iClip && !bIsGrenade )
cs_set_weapon_ammo( iWeaponEntity , iClip );
if ( iWeaponTypeID == CSW_C4 )
cs_set_user_plant( index , 1 , 1 );
else
cs_set_user_bpammo( index , iWeaponTypeID , bIsGrenade ? iClip : iBPAmmo );
}
if ( maxchars )
copy( szWeapon , maxchars , szWeaponName[7] );
}
return iWeaponEntity;
}