Cerere editare plugin
Posted: 21 Dec 2013, 12:53
by [RNG]EAGame
Salut. Am si eu o problema cu plugin-ul cu XP pentru Furien:
Il aveti aici:
Si am doua probleme:
1. La inceput imi da viteza mare chiar daca am primul nivel, as dori daca se poate viteza sa fie cea normala.
2. Nu imi merge Regenerarea, adica eu imi cresc nivelul si nimic.
Multumesc anticipat.
Il aveti aici:
- .SMA | Afiseaza codul
[code]#include <amxmodx> #include <amxmisc> #include <cstrike> #include <csx> #include <fakemeta> #include <fun> #include <hamsandwich> #include <nvault> #define TASK_REGEN 134926 #define ID_REGEN (taskid - TASK_REGEN) #define EFFECT_LENGTH 3 const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 const FR_KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 const A_FR_KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 // Definitia la salvarea pe nvault new salvare_date; // Nivele si XP new XP[33]; new hp_level_f[33], ap_level_f[33], speed_lvl_f[33], gravity_lvl_f[33], damage_lvl_f[33], regenerare_lvl_f[33]; new hp_level_a_f[33], ap_level_a_f[33], speed_lvl_a_f[33], gravity_lvl_a_f[33], damage_lvl_a_f[33], regenerare_lvl_a_f[33]; // Functiile puterilor (regenerare si respawn) new maximhp[33]; public plugin_init() { register_plugin("XP & POWERS", "1.1b", "cyby") register_concmd("amx_givexp", "givexp_cmd", ADMIN_KICK, "<nume> <xp>") // Comenzi ale jucatorilor register_clcmd("say /xp", "show_game") register_clcmd("say_team /xp", "show_game") // Eventuri si procese ale jucatorilor // Moarte register_event("DeathMsg", "ucidere", "a") // Prethink(executa mereu) register_forward(FM_PlayerPreThink, "player_prethink") // Spawn Event RegisterHam(Ham_Spawn, "player", "spawn_player_post", 1) // Damage RegisterHam(Ham_TakeDamage, "player", "damage_player") // Regenerare (separat) RegisterHam(Ham_TakeDamage, "player", "take_damage") // Event castigare register_event("SendAudio", "Win_Furien", "a", "2=%!MRAD_terwin") register_event("SendAudio", "Win_Anti_Furien", "a", "2=%!MRAD_ctwin") // Preluare date NVAULT salvare_date = nvault_open("FURIEN_LVL"); register_menu("Game Menu", KEYSMENU, "menu_game") register_menu("Furien Menu", FR_KEYSMENU, "menu_furien") register_menu("AntiF Menu", A_FR_KEYSMENU, "menu_afurien") } public client_putinserver(id) { preluaredate(id) } public client_disconnect(id) { salvaredate(id) XP[id] = 0 hp_level_f[id] = 0 ap_level_f[id] = 0 speed_lvl_f[id] = 0 gravity_lvl_f[id] = 0 damage_lvl_f[id] = 0 regenerare_lvl_f[id] = 0 hp_level_a_f[id] = 0 ap_level_a_f[id] = 0 speed_lvl_a_f[id] = 0 gravity_lvl_a_f[id] = 0 damage_lvl_a_f[id] = 0 regenerare_lvl_a_f[id] = 0 } public salvaredate(id) { new nume[32] get_user_name(id,nume,31) new vaultnume[32],vaultdate[256] format(vaultnume,31,"%s", nume) format(vaultdate,255,"%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#", XP[id], hp_level_f[id], ap_level_f[id], speed_lvl_f[id], gravity_lvl_f[id], damage_lvl_f[id], regenerare_lvl_f[id], hp_level_a_f[id], ap_level_a_f[id], speed_lvl_a_f[id], gravity_lvl_a_f[id], damage_lvl_a_f[id], regenerare_lvl_a_f[id]) nvault_set(salvare_date,vaultnume,vaultdate) return PLUGIN_CONTINUE } public preluaredate(id) { new nume[32] get_user_name(id,nume,31) new vaultnume[32],vaultdate[256] format(vaultnume,31,"%s", nume) format(vaultdate,255,"%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#", XP[id], hp_level_f[id], ap_level_f[id], speed_lvl_f[id], gravity_lvl_f[id], damage_lvl_f[id], regenerare_lvl_f[id], hp_level_a_f[id], ap_level_a_f[id], speed_lvl_a_f[id], gravity_lvl_a_f[id], damage_lvl_a_f[id], regenerare_lvl_a_f[id]) nvault_get(salvare_date,vaultnume,vaultdate,255) replace_all(vaultdate, 255, "#", " ") new playerxp[32], hp_n_f[32], ap_n_f[32], speed_n_f[32], grav_n_f[32], dmg_n_f[32], regen_n_f[32], hp_n_a_f[32], ap_n_a_f[32], speed_n_a_f[32], grav_n_a_f[32], dmg_n_a_f[32], regen_n_a_f[32] parse(vaultdate, playerxp, 31, hp_n_f, 31, ap_n_f, 31, speed_n_f, 31, grav_n_f, 31, dmg_n_f, 31, regen_n_f, 31, hp_n_a_f, 31, ap_n_a_f, 31, speed_n_a_f, 31, grav_n_a_f, 31, dmg_n_a_f, 31, regen_n_a_f, 31) XP[id] = str_to_num(playerxp) hp_level_f[id] = str_to_num(hp_n_f) ap_level_f[id] = str_to_num(ap_n_f) speed_lvl_f[id] = str_to_num(speed_n_f) gravity_lvl_f[id] = str_to_num(grav_n_f) damage_lvl_f[id] = str_to_num(dmg_n_f) regenerare_lvl_f[id] = str_to_num(regen_n_f) hp_level_a_f[id] = str_to_num(hp_n_a_f) ap_level_a_f[id] = str_to_num(ap_n_a_f) speed_lvl_a_f[id] = str_to_num(speed_n_a_f) gravity_lvl_a_f[id] = str_to_num(grav_n_a_f) damage_lvl_a_f[id] = str_to_num(dmg_n_a_f) regenerare_lvl_a_f[id] = str_to_num(regen_n_a_f) return PLUGIN_CONTINUE } public givexp_cmd(id,level,cid) { if(!cmd_access(id, level, cid, 2)) { return PLUGIN_HANDLED; } new arg[32], name[32]; read_argv(1, arg, 31) get_user_name(id, name, 31) new jucator = cmd_target(id, arg, 31) if(!jucator) { return PLUGIN_HANDLED } if(!is_user_connected(jucator)) { return PLUGIN_HANDLED } new cant[4], name2[32]; get_user_name(jucator, name2, 31) read_argv(2, cant, 3) new XP_plus = str_to_num(cant) XP[jucator] += XP_plus mesaj_color(0, ".v[Furien].g Adminul.e %s.g a dat.e %d.g XP lui.e %s.g.", name, XP_plus, name2) return PLUGIN_HANDLED; } public ucidere() { new atacator, victim; atacator = read_data(1) victim = read_data(2) if(!is_user_connected(atacator) || !is_user_connected(victim)) { return } if(atacator == victim) { return; } XP[atacator] += 10; set_hudmessage(200, 100, 50, -1.0, -1.0, 0, 6.0, 2.5) show_hudmessage(atacator, "+10 XP") } public bomb_planted(id) { XP[id] +=15 mesaj_color(id, ".v[Furien].g Ai primit.e 15 XP.g pentru plantarea bombei.") } public bomb_defused(id) { XP[id] +=15 mesaj_color(id, ".v[Furien].g Ai primit.e 15 XP.g pentru dezamorsarea bombei.") } public player_prethink(id) { if(!is_user_alive(id)) { return PLUGIN_HANDLED; } if(cs_get_user_team(id) == CS_TEAM_T) { set_pev(id, pev_maxspeed, 500.0 + speed_lvl_f[id] * 25.0) if(gravity_lvl_f[id] == 1) { set_pev(id, pev_gravity, 400.0/800.0) } else if(gravity_lvl_f[id] == 2) { set_pev(id, pev_gravity, 375.0/800.0) } else if(gravity_lvl_f[id] == 3) { set_pev(id, pev_gravity, 350.0/800.0) } else if(gravity_lvl_f[id] == 4) { set_pev(id, pev_gravity, 325.0/800.0) } else if(gravity_lvl_f[id] == 5) { set_pev(id, pev_gravity, 300.0/800.0) } else if(gravity_lvl_f[id] == 6) { set_pev(id, pev_gravity, 275.0/800.0) } else if(gravity_lvl_f[id] == 7) { set_pev(id, pev_gravity, 250.0/800.0) } } if(cs_get_user_team(id) == CS_TEAM_CT) { set_pev(id, pev_maxspeed, 250.0 + speed_lvl_a_f[id] * 25.0) if(gravity_lvl_a_f[id] == 1) { set_pev(id, pev_gravity, 750.0/800.0) } else if(gravity_lvl_a_f[id] == 2) { set_pev(id, pev_gravity, 700.0/800.0) } else if(gravity_lvl_a_f[id] == 3) { set_pev(id, pev_gravity, 650.0/800.0) } else if(gravity_lvl_a_f[id] == 4) { set_pev(id, pev_gravity, 600.0/800.0) } else if(gravity_lvl_a_f[id] == 5) { set_pev(id, pev_gravity, 550.0/800.0) } else if(gravity_lvl_a_f[id] == 6) { set_pev(id, pev_gravity, 500.0/800.0) } else if(gravity_lvl_a_f[id] == 7) { set_pev(id, pev_gravity, 450.0/800.0) } } return PLUGIN_CONTINUE } public spawn_player_post(id) { if(!is_user_alive(id)) { return PLUGIN_HANDLED; } if(cs_get_user_team(id) == CS_TEAM_T) { set_user_health(id, 100 + hp_level_f[id] * 25) set_pev(id, pev_armorvalue, ap_level_f[id] * 25.0) } if(cs_get_user_team(id) == CS_TEAM_CT) { set_user_health(id, 100 + hp_level_a_f[id] * 25) set_pev(id, pev_armorvalue, ap_level_a_f[id] * 25.0) } maximhp[id] = get_user_health(id) return PLUGIN_CONTINUE } public damage_player(victim, inflictor, attacker, Float:damage, damage_type) { if(cs_get_user_team(attacker) == CS_TEAM_CT) { damage += damage_lvl_a_f[attacker] * 10 } if(cs_get_user_team(attacker) == CS_TEAM_T) { if(get_user_weapon(attacker) == CSW_KNIFE) { damage += damage_lvl_a_f[attacker] * 10 } } SetHamParamFloat(4, damage); } public take_damage(victim, inflictor, attacker, Float:damage, damage_type) { if(cs_get_user_team(victim) == CS_TEAM_CT) { set_task(1.0, "regen_hp_a_f", victim+TASK_REGEN) } if(cs_get_user_team(victim) == CS_TEAM_T) { if(get_user_weapon(victim) == CSW_KNIFE) { remove_task(victim+TASK_REGEN) set_task(1.0, "regen_hp_f", victim+TASK_REGEN) } } } public Win_Furien() { new players[32], num, player; get_players(players, num, "", "TERRORIST") for(new i = 0; i < num; i++) { player = players if(!is_user_alive(player)) { return PLUGIN_HANDLED } XP[player] += 10 msg_screen_fade(player, EFFECT_LENGTH, 175, 0, 0, 115); mesaj_color(player, ".v[Furien].g Ai castigat bonus.e 10 XP.g pentru castigarea rundei.") } return PLUGIN_CONTINUE } public Win_Anti_Furien() { new players[32], num, player; get_players(players, num, "", "CT") for(new i = 0; i < num; i++) { player = players if(!is_user_alive(player)) { return PLUGIN_HANDLED } XP[player] += 10 msg_screen_fade(player, EFFECT_LENGTH, 175, 0, 0, 115); mesaj_color(player, ".v[Furien].g Ai castigat bonus.e 10 XP.g pentru castigarea rundei.") } return PLUGIN_CONTINUE } public regen_hp_a_f(taskid) { if(is_user_connected(ID_REGEN) && is_user_alive(ID_REGEN)) { if(maximhp[ID_REGEN] != -1) { new curenthp; curenthp = get_user_health(ID_REGEN) if(curenthp < maximhp[ID_REGEN]) { if(curenthp > maximhp[ID_REGEN]) { set_user_health(ID_REGEN, maximhp[ID_REGEN]) } set_user_health(ID_REGEN, get_user_health(ID_REGEN) + regenerare_lvl_a_f[ID_REGEN] * 5) set_task(5.0, "regen_hp_a_f", ID_REGEN+TASK_REGEN) } } } } public regen_hp_f(taskid) { if(is_user_connected(ID_REGEN) && is_user_alive(ID_REGEN)) { if(maximhp[ID_REGEN] != -1) { new curenthp = get_user_health(ID_REGEN) if(curenthp < maximhp[ID_REGEN]) { if(curenthp > maximhp[ID_REGEN]) { set_user_health(ID_REGEN, maximhp[ID_REGEN]) } set_user_health(ID_REGEN, get_user_health(ID_REGEN) + regenerare_lvl_f[ID_REGEN] * 5) set_task(5.0, "regen_hp_f", ID_REGEN+TASK_REGEN) } } } } public show_game(id) { if(is_user_alive(id)) { show_menu_game(id) return PLUGIN_HANDLED } return PLUGIN_CONTINUE } show_menu_game(id) { static menu[250], len len = 0 len += formatex(menu[len], charsmax(menu) - len, "\yFurien\r [XP:%d]^n^n", XP[id]) len += formatex(menu[len], charsmax(menu) - len, "\y1.\w Furien XP Buying^n") len += formatex(menu[len], charsmax(menu) - len, "\y2.\w Anti-Furien XP Buying^n") show_menu(id, KEYSMENU, menu, -1, "Game Menu") } public menu_game(id, key) { switch (key) { case 0: { furiens_ability(id) } case 1: { anti_furiens_ability(id) } } } furiens_ability(id) { if(is_user_alive(id)) { new xp_need_hp, xp_need_ap, xp_need_speed, xp_need_gravity, xp_need_damage, xp_need_regen; xp_need_hp = hp_level_f[id] * 99 xp_need_ap = ap_level_f[id] * 99 xp_need_speed = speed_lvl_f[id] * 111 xp_need_gravity = gravity_lvl_f[id] * 100 xp_need_damage = damage_lvl_f[id] * 122 xp_need_regen = regenerare_lvl_f[id] * 144 static menu[250], len len = 0 len += formatex(menu[len], charsmax(menu) - len, "\yAbilitati Furien\r [XP:%d]^n^n", XP[id]) if(hp_level_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y1.\w HP + 25\r [LV.%d/XP UP:%d]^n", hp_level_f[id], xp_need_hp) } else { len += formatex(menu[len], charsmax(menu) - len, "\d1.\d HP + 25\d [LV.%d MAX]^n", hp_level_f[id]) } if(ap_level_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y2.\w AP + 25\r [LV.%d/XP UP:%d]^n", ap_level_f[id], xp_need_ap) } else { len += formatex(menu[len], charsmax(menu) - len, "\d2. AP + 25 [LV.%d MAX]^n", ap_level_f[id]) } if(speed_lvl_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y3.\w SPEED +25\r [LV.%d/XP UP:%d]^n", speed_lvl_f[id], xp_need_speed) } else { len += formatex(menu[len], charsmax(menu) - len, "\d3. SPEED +25 [LV.%d MAX]^n", speed_lvl_f[id]) } if(gravity_lvl_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y4.\w GRAVITY -25\r [LV.%d/XP UP:%d]^n", gravity_lvl_f[id], xp_need_gravity) } else { len += formatex(menu[len], charsmax(menu) - len, "\d4. GRAVITY -25 [LV.%d MAX]^n", gravity_lvl_f[id]) } if(damage_lvl_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y5.\w DAMAGE +10\r [LV.%d/XP UP:%d]^n", damage_lvl_f[id], xp_need_damage) } else { len += formatex(menu[len], charsmax(menu) - len, "\d5. DAMAGE +10 [LV.%d MAX]^n", damage_lvl_f[id]) } if(regenerare_lvl_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y6.\w REGEN +5 HP\r [LV.%d/XP UP:%d]", regenerare_lvl_f[id], xp_need_regen) } else { len += formatex(menu[len], charsmax(menu) - len, "\d6. REGEN +5 HP [LV.%d MAX]", regenerare_lvl_f[id]) } show_menu(id, FR_KEYSMENU, menu, -1, "Furien Menu") return PLUGIN_HANDLED; } return PLUGIN_HANDLED; } public menu_furien(id, key) { new xp_need_hp, xp_need_ap, xp_need_speed, xp_need_gravity, xp_need_damage, xp_need_regen; xp_need_hp = hp_level_f[id] * 99 xp_need_ap = ap_level_f[id] * 99 xp_need_speed = speed_lvl_f[id] * 111 xp_need_gravity = gravity_lvl_f[id] * 100 xp_need_damage = damage_lvl_f[id] * 122 xp_need_regen = regenerare_lvl_f[id] * 144 switch(key) { case 0: { if(hp_level_f[id] < 7) { if(XP[id] >= xp_need_hp) { XP[id] -= xp_need_hp hp_level_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la HP pentru.e Furieni.g.", hp_level_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_hp - XP[id]) } } if(hp_level_f[id] >= 7) { hp_level_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim la.e HP.g.") } } case 1: { if(ap_level_f[id] < 7) { if(XP[id] >= xp_need_ap) { XP[id] -= xp_need_ap ap_level_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la AP pentru.e Furieni.g.", ap_level_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_ap - XP[id]) } } if(ap_level_f[id] >= 7) { ap_level_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim.") } } case 2: { if(speed_lvl_f[id] < 7) { if(XP[id] >= xp_need_speed) { XP[id] -= xp_need_speed speed_lvl_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la SPEED pentru.e Furieni.g.", speed_lvl_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_speed - XP[id]) } } if(speed_lvl_f[id] >= 7) { speed_lvl_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim.") } } case 3: { if(gravity_lvl_f[id] < 7) { if(XP[id] >= xp_need_gravity) { XP[id] -= xp_need_gravity gravity_lvl_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la GRAVITY pentru.e Furieni.g.", gravity_lvl_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_gravity - XP[id]) } } if(gravity_lvl_f[id] >= 7) { gravity_lvl_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim.") } } case 4: { if(damage_lvl_f[id] < 7) { if(XP[id] >= xp_need_damage) { XP[id] -= xp_need_damage damage_lvl_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la DAMAGE pentru.e Furieni.g.", damage_lvl_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_damage - XP[id]) } } if(damage_lvl_f[id] >= 7) { damage_lvl_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim.") } } case 5: { if(regenerare_lvl_f[id] < 7) { if(XP[id] >= xp_need_regen) { XP[id] -= xp_need_regen regenerare_lvl_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la REGEN pentru.e Furieni.g.", regenerare_lvl_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_regen - XP[id]) } } if(regenerare_lvl_f[id] >= 7) { regenerare_lvl_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim.") } } } return PLUGIN_HANDLED } anti_furiens_ability(id) { if(is_user_alive(id)) { new xp_need_hp, xp_need_ap, xp_need_speed, xp_need_gravity, xp_need_damage, xp_need_regen; xp_need_hp = hp_level_a_f[id] * 99 xp_need_ap = ap_level_a_f[id] * 99 xp_need_speed = speed_lvl_a_f[id] * 111 xp_need_gravity = gravity_lvl_a_f[id] * 100 xp_need_damage = damage_lvl_a_f[id] * 122 xp_need_regen = regenerare_lvl_a_f[id] * 144 static menu[250], len len = 0 len += formatex(menu[len], charsmax(menu) - len, "\yAbilitati AntiFurien\r [XP:%d]^n^n", XP[id]) if(hp_level_a_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y1.\w HP + 25\r [LV.%d/XP UP:%d]^n", hp_level_a_f[id], xp_need_hp) } else { len += formatex(menu[len], charsmax(menu) - len, "\d1. HP + 25 [LV.%d MAX]^n", hp_level_a_f[id]) } if(ap_level_a_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y2.\w AP + 25\r [LV.%d/XP UP:%d]^n", ap_level_a_f[id], xp_need_ap) } else { len += formatex(menu[len], charsmax(menu) - len, "\d2. AP + 25 [LV.%d MAX]^n", ap_level_a_f[id]) } if(speed_lvl_a_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y3.\w SPEED +25\r [LV.%d/XP UP:%d]^n", speed_lvl_a_f[id], xp_need_speed) } else { len += formatex(menu[len], charsmax(menu) - len, "\d3. SPEED +25 [LV.%d MAX]^n", speed_lvl_a_f[id]) } if(gravity_lvl_a_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y4.\w GRAVITY -25\r [LV.%d/XP UP:%d]^n", gravity_lvl_a_f[id], xp_need_gravity) } else { len += formatex(menu[len], charsmax(menu) - len, "\d4. GRAVITY -25 [LV.%d MAX]^n", gravity_lvl_a_f[id]) } if(damage_lvl_a_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y5.\w DAMAGE +10\r [LV.%d/XP UP:%d]^n", damage_lvl_a_f[id], xp_need_damage) } else { len += formatex(menu[len], charsmax(menu) - len, "\d5. DAMAGE +10 [LV.%d MAX]^n", damage_lvl_a_f[id]) } if(regenerare_lvl_a_f[id] < 7) { len += formatex(menu[len], charsmax(menu) - len, "\y6.\w REGEN +5 HP\r [LV.%d/XP UP:%d]", regenerare_lvl_a_f[id], xp_need_regen) } else { len += formatex(menu[len], charsmax(menu) - len, "\d6. REGEN +5 HP [LV.%d MAX]", regenerare_lvl_a_f[id]) } show_menu(id, A_FR_KEYSMENU, menu, -1, "AntiF Menu") return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public menu_afurien(id, key) { new xp_need_hp, xp_need_ap, xp_need_speed, xp_need_gravity, xp_need_damage, xp_need_regen; xp_need_hp = hp_level_a_f[id] * 99 xp_need_ap = ap_level_a_f[id] * 99 xp_need_speed = speed_lvl_a_f[id] * 111 xp_need_gravity = gravity_lvl_a_f[id] * 100 xp_need_damage = damage_lvl_a_f[id] * 122 xp_need_regen = regenerare_lvl_a_f[id] * 144 switch (key) { case 0: { if(hp_level_a_f[id] < 7) { if(XP[id] >= xp_need_hp) { XP[id] -= xp_need_hp hp_level_a_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la HP pentru.e Anti-Furieni.g.", hp_level_a_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_hp - XP[id]) } } if(hp_level_a_f[id] >= 7) { hp_level_a_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim la.e HP.g.") } } case 1: { if(ap_level_a_f[id] < 7) { if(XP[id] >= xp_need_ap) { XP[id] -= xp_need_ap ap_level_a_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la AP pentru.e Anti-Furieni.g.", ap_level_a_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_ap - XP[id]) } } if(ap_level_a_f[id] >= 7) { ap_level_a_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim.") } } case 2: { if(speed_lvl_a_f[id] < 7) { if(XP[id] >= xp_need_speed) { XP[id] -= xp_need_speed speed_lvl_a_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la SPEED pentru.e Anti-Furieni.g.", speed_lvl_a_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_speed - XP[id]) } } if(speed_lvl_a_f[id] >= 7) { speed_lvl_a_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim.") } } case 3: { if(gravity_lvl_a_f[id] < 7) { if(XP[id] >= xp_need_gravity) { XP[id] -= xp_need_gravity gravity_lvl_a_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la GRAVITY pentru.e Anti-Furieni.g.", gravity_lvl_a_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_gravity - XP[id]) } } if(gravity_lvl_a_f[id] >= 7) { gravity_lvl_a_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim.") } } case 4: { if(damage_lvl_a_f[id] < 7) { if(XP[id] >= xp_need_damage) { XP[id] -= xp_need_damage damage_lvl_a_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la DAMAGE pentru.e Anti-Furieni.g.", damage_lvl_a_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_damage - XP[id]) } } if(damage_lvl_a_f[id] >= 7) { damage_lvl_a_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim.") } } case 5: { if(regenerare_lvl_a_f[id] < 7) { if(XP[id] >= xp_need_regen) { XP[id] -= xp_need_regen regenerare_lvl_a_f[id] += 1 mesaj_color(id, ".v[Furien].g Ai avansat la nivelul.e %d.g la REGEN pentru.e Anti-Furieni.g.", regenerare_lvl_a_f[id]) salvaredate(id) } else { mesaj_color(id, ".v[Furien].g Nu ai destul XP. XP necesar.e %d.g.", xp_need_regen - XP[id]) } } if(regenerare_lvl_a_f[id] >= 7) { regenerare_lvl_a_f[id] = 7 mesaj_color(id, ".v[Furien].g Ai nivelul maxim.") } } } return PLUGIN_HANDLED; } stock mesaj_color(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, ".v", "^4") replace_all(msg, 190, ".g", "^1") replace_all(msg, 190, ".e", "^3") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players)) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players) write_byte(players); write_string(msg); message_end(); } } } } stock msg_screen_fade(id, holdtime, r, g, b, a) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), { 0, 0, 0 }, id) write_short(seconds_to_units(holdtime)) write_short(seconds_to_units(holdtime)) write_short(0) write_byte(r) write_byte(g) write_byte(b) write_byte(a) message_end() } stock seconds_to_units(time) { return ((1 << 12) * (time)) }[/code]
Si am doua probleme:
1. La inceput imi da viteza mare chiar daca am primul nivel, as dori daca se poate viteza sa fie cea normala.
2. Nu imi merge Regenerarea, adica eu imi cresc nivelul si nimic.
Multumesc anticipat.