[ZP] Как да добавиме цени на оръжията

В този раздел можете да намерите полезни кодове и уроци свързани с PAWN скриптинга.
Аватар
LAWLIET
Извън линия
Потребител
Потребител
Мнения: 51
Регистриран на: 08 Окт 2016, 14:24
Местоположение: СофияЕИстината
Обратна връзка:

[ZP] Как да добавиме цени на оръжията

Мнение от LAWLIET » 13 Окт 2016, 09:44

Отваряме изходният файл на Zombie Plague (.sma файла) и след #include-тата добавяме:

Код за потвърждение: Избери целия код

#define cost_glock18	1
#define cost_usp	1
#define cost_p228	1
#define cost_deagle	1
#define cost_fiveseven	2
#define cost_elite	2

#define cost_m3	3
#define cost_xm1014	6

#define cost_tmp	3
#define cost_mac10	3
#define cost_mp5navy	3
#define cost_ump45	3
#define cost_p90	5

#define cost_galil	4
#define cost_famas	5
#define cost_ak47	5
#define cost_m4a1	6
#define cost_aug	7
#define cost_sg552	7

#define cost_scout	6
#define cost_sg550	8
#define cost_g3sg1	10
#define cost_awp	10

#define cost_m249	12
намираме:
Извън темата
// Primary and Secondary Weapon Names
и виждаме:

Код за потвърждение: Избери целия код

new const WEAPONNAMES[][] = { "", "P228 Compact", "", "Schmidt Scout", "", "XM1014 M4", "", "Ingram MAC-10", "Steyr AUG A1",
"", "Dual Elite Berettas", "FiveseveN", "UMP 45", "SG-550 Auto-Sniper", "IMI Galil", "Famas",
"USP .45 ACP Tactical", "Glock 18C", "AWP Magnum Sniper", "MP5 Navy", "M249 Para Machinegun",
"M3 Super 90", "M4A1 Carbine", "Schmidt TMP", "G3SG1 Auto-Sniper", "", "Desert Eagle .50 AE",
"SG-552 Commando", "AK-47 Kalashnikov", "", "ES P90" }
тук са имената на оръжията в нашето Buy menu в началото на рунда. Променяме ги по наш вкус като напишеме кое колко аммо пакове е (както сме го задали в defines по-горе в кода). Ето пример:

Код за потвърждение: Избери целия код

new const WEAPONNAMES[][] = { "", "P228 [\r1 ammo\w]", "", "Scout [\r6 ammo\w]", "", "XM1014 [\r6 ammo\w]", "", "MAC-10 [\r3 ammo\w]", 
"Steyr AUG [\r7 ammo\w]", "", "Dual Elite [\r2 ammo\w]", "Fiveseven [\r2 ammo\w]", "UMP 45 [\r3 ammo\w]", "SG-550 [\r8 ammo\w]", 
"Galil [\r4 ammo\w]", "Famas [\r5 ammo\w]", "USP45 [\r1 ammo\w]", "Glock [\r1 ammo\w]", "AWP [\r10 ammo\w]", "MP5 Navy [\r3 ammo\w]", 
"M249 [\r12 ammo\w]", "M3 [\r3 ammo\w]", "M4A1 [\r6 ammo\w]", "TMP [\r3 ammo\w]", "G3SG1 [\r10 ammo\w]", "", "Desert Eagle [\r1 ammo\w]", 
"SG-552 [\r7 ammo\w]", "AK-47 [\r5 ammo\w]", "", "P90 [\r5 ammo\w]" }
след това намираме този код:
Извън темата
// Buy Primary Weapon
buy_primary_weapon(id, selection)
{
// Drop previous weapons
drop_weapons(id, 1)
drop_weapons(id, 2)

// Strip off from weapons
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")

// Get weapon's id and name
static weaponid, wname[32]
weaponid = ArrayGetCell(g_primary_weaponids, selection)
ArrayGetString(g_primary_items, selection, wname, charsmax(wname))
и след него добавяме:

Код за потвърждение: Избери целия код

if(weaponid == CSW_M3) 
{
if(g_ammopacks[id] < cost_m3)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_m3
fm_give_item(id, "weapon_m3")
}
if(weaponid == CSW_XM1014) 
{
if(g_ammopacks[id] < cost_xm1014)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_xm1014
fm_give_item(id, "weapon_xm1014")
}
if(weaponid == CSW_TMP) 
{
if(g_ammopacks[id] < cost_tmp)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_tmp
fm_give_item(id, "weapon_tmp")
}
if(weaponid == CSW_MAC10) 
{
if(g_ammopacks[id] < cost_mac10)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_mac10
fm_give_item(id, "weapon_mac10")
}
if(weaponid == CSW_MP5NAVY) 
{
if(g_ammopacks[id] < cost_mp5navy)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_mp5navy
fm_give_item(id, "weapon_mp5")
}
if(weaponid == CSW_UMP45) 
{
if(g_ammopacks[id] < cost_ump45)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_ump45
fm_give_item(id, "weapon_ump45")
}
if(weaponid == CSW_P90) 
{
if(g_ammopacks[id] < cost_p90)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_p90
fm_give_item(id, "weapon_p90")
}
if(weaponid == CSW_GALIL) 
{
if(g_ammopacks[id] < cost_galil)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_galil
fm_give_item(id, "weapon_galil")
}
if(weaponid == CSW_FAMAS) 
{ 
if(g_ammopacks[id] < cost_famas)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_famas
fm_give_item(id, "weapon_famas")
} 
if(weaponid == CSW_AK47) 
{
if(g_ammopacks[id] < cost_ak47)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_ak47
fm_give_item(id, "weapon_ak47")
}
if(weaponid == CSW_M4A1) 
{
if(g_ammopacks[id] < cost_m4a1)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_m4a1
fm_give_item(id, "weapon_m4a1")
}
if(weaponid == CSW_AUG) 
{ 
if(g_ammopacks[id] < cost_aug)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_aug
fm_give_item(id, "weapon_aug")
} 
if(weaponid == CSW_SG552) 
{
if(g_ammopacks[id] < cost_sg552)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_sg552
fm_give_item(id, "weapon_sg552")
}
if(weaponid == CSW_SCOUT) 
{
if(g_ammopacks[id] < cost_scout)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_scout
fm_give_item(id, "weapon_scout")
}
if(weaponid == CSW_SG550) 
{ 
if(g_ammopacks[id] < cost_sg550)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_sg550
fm_give_item(id, "weapon_sg550")
} 
if(weaponid == CSW_G3SG1) 
{
if(g_ammopacks[id] < cost_g3sg1)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_g3sg1
fm_give_item(id, "weapon_g3sg1")
}
if(weaponid == CSW_AWP) 
{
if(g_ammopacks[id] < cost_awp)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_awp
fm_give_item(id, "weapon_awp")
}
if(weaponid == CSW_M249) 
{
if(g_ammopacks[id] = ArraySize(g_secondary_items))
{
// Toggle autoselect
if (key == MENU_KEY_AUTOSELECT)
WPN_AUTO_ON = 1 - WPN_AUTO_ON

// Reshow menu unless user exited
if (key != MENU_KEY_EXIT)
show_menu_buy2(id)

return PLUGIN_HANDLED;
}

// Store selected weapon
WPN_AUTO_SEC = key

// Drop secondary gun again, in case we picked another (bugfix)
drop_weapons(id, 2)

// Get weapon's id
static weaponid, wname[32]
weaponid = ArrayGetCell(g_secondary_weaponids, key)
ArrayGetString(g_secondary_items, key, wname, charsmax(wname))

и след него добавяме:

Код за потвърждение: Избери целия код

if(weaponid == CSW_GLOCK18) 
{
if(g_ammopacks[id] < cost_glock18)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_glock18
fm_give_item(id, "weapon_glock18")
}
if(weaponid == CSW_USP) 
{
if(g_ammopacks[id] < cost_usp)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_usp
fm_give_item(id, "weapon_usp")
}
if(weaponid == CSW_P228) 
{
if(g_ammopacks[id] < cost_p228)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_p228
fm_give_item(id, "weapon_p228")
}
if(weaponid == CSW_DEAGLE) 
{
if(g_ammopacks[id] < cost_deagle)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_deagle
fm_give_item(id, "weapon_deagle")
}
if(weaponid == CSW_FIVESEVEN) 
{
if(g_ammopacks[id] < cost_fiveseven)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_fiveseven
fm_give_item(id, "weapon_fiveseven")
}
if(weaponid == CSW_ELITE) 
{
if(g_ammopacks[id] < cost_elite)
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "NOT_ENOUGH_AMMO")
return PLUGIN_HANDLED
}
g_ammopacks[id] -= cost_elite
fm_give_item(id, "weapon_elite")
}
и това е всичко.

Урока е написан от: LARS-BLOODKILLER
Превод от руски: LAWLIET
Изображение
Изображение ИзображениеИзображение ИзображениеИзображение

  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Полезни кодове/уроци”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта