#include <amxmodx>
#include <engine>
#include <nvault>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>
#define PLUGIN "usp+bolt"
#define VERSION "1.0"
#define AUTHOR "dector"
new pont[33], usp[33], vault
new bool:b_sebzes[33]
public plugin_precache() {
precache_model("models/v_usp.mdl")
precache_model("models/usp/1.mdl")
precache_model("models/usp/2.mdl")
precache_model("models/usp/3.mdl")
precache_model("models/usp/4.mdl")
precache_model("models/usp/5.mdl")
precache_model("models/usp/6.mdl")
precache_model("models/usp/7.mdl")
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg","death","a")
register_clcmd("say /uspmenu","menu")
register_clcmd("say /skin","menu")
register_clcmd("say /bolt","bolt")
//register_clcmd("say /shop","bolt")
register_clcmd("say /pont","pontod")
register_clcmd("say pont","pontod")
register_clcmd("say_team /pont","pontod")
register_clcmd("say_team pont","pontod")
vault = nvault_open("ment_nvault")
register_event("CurWeapon", "ecw", "be", "1=1")
RegisterHam(Ham_TakeDamage, "player", "damagetake")
}
public ecw(id)
{
new fegyver = get_user_weapon(id)
if(usp[id] == 0 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/v_usp.mdl")
}
if(usp[id] == 1 && fegyver == CSW_USP)
{
b_sebzes[id] = true
set_pev(id, pev_viewmodel2, "models/usp/1.mdl")
}
if(usp[id] == 2 && fegyver == CSW_USP)
{
b_sebzes[id] = true
set_pev(id, pev_viewmodel2, "models/usp/2.mdl")
}
if(usp[id] == 3 && fegyver == CSW_USP)
{
b_sebzes[id] = true
set_pev(id, pev_viewmodel2, "models/usp/3.mdl")
}
if(usp[id] == 4 && fegyver == CSW_USP)
{
b_sebzes[id] = true
set_pev(id, pev_viewmodel2, "models/usp/4.mdl")
}
if(usp[id] == 5 && fegyver == CSW_USP)
{
b_sebzes[id] = true
set_pev(id, pev_viewmodel2, "models/usp/5.mdl")
}
if(usp[id] == 6 && fegyver == CSW_USP)
{
b_sebzes[id] = true
set_pev(id, pev_viewmodel2, "models/usp/6.mdl")
{
if(usp[id] == 7 && fegyver == CSW_USP)
{
b_sebzes[id] = true
set_pev(id, pev_viewmodel2, "models/usp/7.mdl")
}
public death(victim){
new killer = read_data(1)
new victim = read_data(2)
if(killer == victim)
{
return PLUGIN_HANDLED
}
pont[killer] += 2 // mennyi pontot kapjon egy olesert?!
return PLUGIN_HANDLED
}
public menu(id) {
new cim[121]
format(cim, charsmax(cim), "\\rHal?lfutam \\wDeathRun^n\\yPont:\\r %d \\d|made in: kokii92|\\r%d \\d| \\wDoboz: \\r%d",pont[id],get_user_deaths(id),pont[id])
new menu = menu_create(cim, "menu_h" )
menu_additem(menu,"\\rAlap USP \\r| \\y[Megszerezve]","1",0)
if(pont[id] >= 250)
menu_additem(menu,"\\rUSP \\w[2] \\r| \\y[Megszerezve]","2",0)
else
menu_additem(menu,"\\wUSP 2 \\d| \\w250 Pont \\y(1.7x DMG) \r[Zarolva]","2",0)
if(pont[id] >= 500)
menu_additem(menu,"\rUSP \\w[3] \\r| \\y[Megszerezve] \y","3",0)
else
menu_additem(menu,"\wUSP 3 \d| \w500 Pont \y(1.9x DMG) \r[Z?rolva]","2",0)
if(pont[id] >= 1100)
menu_additem(menu,"\rUSP \w[4] \r| \y[Megszerezve] \y","4",0)
else
menu_additem(menu,"\wUSP 4 \d| \w1100 Pont \y(2.0x DMG) \r[Z?rolva]","2",0)
if(pont[id] >= 3000)
menu_additem(menu,"\rUSP \w[5] \r| \y[Megszerezve] ","5",0)
else
menu_additem(menu,"\wUSP 5 \d| \w3000 Pont \y(2.2x DMG) \r[Zarolva]","2",0)
if(pont[id] >= 3400)
menu_additem(menu,"\rUSP \w[6] \r| \y[Megszerezve] ","6",0)
else
menu_additem(menu,"\wUSP 6 \d| \w3400 Pont \y(2.5x DMG) \r[Zarolva]","2",0)
if(pont[id] >= 4000)
menu_additem(menu,"\rUSP \w[7] \r| \y[Megszerezve] ","7",0)
else
menu_additem(menu,"\wUSP 7 \d| \w4000 Pont \y(3.1x DMG) \r[Zarolva]","2",0)
if(pont[id] >= 10000)
menu_additem(menu,"\rUSP \w[8] \r| \y[Megszerezve] ","8",0)
else
menu_additem(menu,"\wLimit?lt USP \d| \w10000 doboz \y(3.3x DMG) \r[Zarolva]","2",0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public menu_h(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1:{
if(pont[id] >= 0)
usp[id] = 0
else
ColorChat(id, GREEN, "^3Ez alap usp,nem kell feloldani!")
}
case 2:{
give_item(id, "weapon_usp")
if(pont[ id] >= 250)
usp[ id] = 1
else
ColorChat(id, RED, "^3T?l kev?s pontod van!")
}
case 3:{
give_item(id, "weapon_usp")
if(pont[id] >= 500)
usp[id] = 2
else
ColorChat(id, RED, "^3T?l kev?s pontod van!")
}
case 4:{
give_item(id, "weapon_usp")
if(pont[id] >= 1100)
usp[id] = 3
else
ColorChat(id, RED, "^3T?l kev?s pontod van!")
}
case 5:{
give_item(id, "weapon_usp")
if(pont[id] >= 3000)
usp[id] = 4
else
ColorChat(id, RED, "^3T?l kev?s pontod van!")
}
case 6:{
give_item(id, "weapon_usp")
if(pont[id] >= 3400)
usp[id] = 5
else
ColorChat(id, RED, "^3T?l kev?s pontod van!")
}
case 7:{
give_item(id, "weapon_usp")
if(pont[id] >= 4000)
usp[id] = 6
else
ColorChat(id, RED, "^3T?l kev?s pontod van!")
}
case 8:{
give_item(id, "weapon_usp")
if(pont[id] >= 10000)
usp[id] = 7
else
ColorChat(id, RED, "^3T?l kev?s dobozod van!^4*")
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public mentes(id)
{
new vaultkey[64],vaultdata[256], name[32]
get_user_name(id, name, 31)
format(vaultkey,63,"%s-USP", name)
format(vaultdata,255,"%d", pont[id])
nvault_set(vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public betoltes(id)
{
new vaultkey[64],vaultdata[256], name[32]
get_user_name(id, name, 31)
format(vaultkey,63,"%s-KES", name)
nvault_get(vault,vaultkey,vaultdata,255)
pont[id] = str_to_num(vaultdata)
return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
mentes(id)
}
public client_connect(id)
{
betoltes(id)
}
public kijelzo(){
new players[32], szam, id
get_players(players, szam)
for(new i; i<szam; i++){
id = players[i]
}
}
public bolt(id)
{
new cim[121]
format(cim, charsmax(cim), "\rHal?lfutam \wDeathRun^n\wPont:\r %d \d| \wHal?laid: \r%d \d| \wDoboz: \r%d",pont[id],get_user_deaths(id),pont[id])
new menu = menu_create(cim, "menu_handler" )
menu_additem(menu, "\w+\w10 HP \d| \r3 Pont", "1", 0);
menu_additem(menu, "\wUjraeledes \d| \r3 Pont", "3", 0);
menu_additem(menu, "\wNagyobb sebesseg \d| \r2 Dobozt", "5", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_PERPAGE, 6);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Kovetkezo");
menu_setprop(menu, MPROP_EXITNAME, "Kilepes");
menu_setprop(menu, MPROP_NUMBER_COLOR, "\r");
menu_display(id, menu, 0);
}
public menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1:{
if(pont[id] >= 3)
set_user_health( id , get_user_health( id ) + 50 ) // +50 HP
pont[id] -= 3
}
case 3:{
if(pont[id] >= 3)
ExecuteHamB(Ham_CS_RoundRespawn, id);
pont[id] -= 3
}
case 4:{
pont[id] += 1
cs_set_user_deaths(id, 10)
}
case 5:{
pont[id] -= 2
set_user_maxspeed(id, 800.0)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public pontod(id){
ColorChat(0, RED, "^x04[Hal?lfutam]x03 Server protection by:^x04kokii")
ColorChat(id, RED, "^x04[Hal?lfutam]x03 Pontod: %d^x04 *", pont[id])
ColorChat(id, RED, "^x04[Hal?lfutam]x03 Doboz: %d^x04 *", pont[id])
}
public damagetake(victim, inflictor, attacker, Float:damage) {
if(b_sebzes[attacker] && get_user_weapon(attacker) == CSW_USP)
{
if(usp[attacker] == 1) { // 1-es usp
SetHamParamFloat(4, damage * 1.40)
}
if(usp[attacker] == 2) { // 2-es usp
SetHamParamFloat(4, damage * 1.60)
}
if(usp[attacker] == 3) { // 3-as usp
SetHamParamFloat(4, damage * 2.00)
}
if(usp[attacker] == 4) { // 4-es usp
SetHamParamFloat(4, damage * 2.20)
}
if(usp[attacker] == 5) { // 5-?s usp
SetHamParamFloat(4, damage * 2.50)
}
if(usp[attacker] == 6) { // 6-os usp
SetHamParamFloat(4, damage * 3.10)
}
if(usp[attacker] == 7) { // 6-os usp
SetHamParamFloat(4, damage * 3.80)
}
}
}