/* Plugin generated by AMXX-Studio */ #include #include #include #include #include #include #include #include #define VERSION "0.4a" #define AUTHOR "funfel" #define PREFIX "MoneyMod" /* VIP ON THE SCORE */ #define ADMIN_VIP ADMIN_LEVEL_F #define SCOREATTRIB_NONE 0 #define SCOREATTRIB_DEAD (1 << 0) #define SCOREATTRIB_BOMB (1 << 1) #define SCOREATTRIB_VIP (1 << 2) /* HEAD SPLASH */ #define MINIMUM_FALL_SPEED 300 #define MAXIMUM_DAMAGE_FROM_JUMP 70.0 #define DAMAGE 30.0 #define DELAY 0.2 /* MENUS */ #define MONEY_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_0 #define QUEST_KEYS MENU_KEY_1|MENU_KEY_2 #define GUN_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_0 #define ITEMS_KEYS 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 #define ITEMS2_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0 #define WEAPON_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_0 #define LAST_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_0 /* TASKS */ enum (+= 1000) { TASK_SHOW = 1000, TASK_HELLO, TASK_HEALTH, TASK_RESPAWN, TASK_HE, TASK_USP, TASK_SCOUT, TASK_CHOOSE }; new sprite_blood, sprite_bloodspray; new mm_kill, mm_survive, mm_firstmoney, mm_cost_hp, mm_cost_armor, mm_cost_respawn, mm_cost_falldmg, mm_cost_superhe, mm_cost_bonus, mm_cost_walk, mm_cost_noflash, mm_cost_nosmoke, mm_cost_shock, mm_cost_he, mm_cost_usp, mm_cost_scout, mm_cost_am_usp, mm_cost_am_scout, mm_players, max_health, max_armor, max_respawn, max_falldmg, max_superhe, max_bonus, max_walk, max_noflash, max_nosmoke, max_shock, max_he, max_usp, max_scout, max_am_usp, max_am_scout, number_health, number_bonus, chance_armor, chance_respawnt, chance_respawnct, chance_he, chance_usp, chance_scout, chance_lastrespawn, percent_falldmg, percent_nosmoke, distance_superhe, idfirsttime[33], idmm[33], idhealth[33], idarmor[33], idrespawn[33], idfalldmg[33], idsuperhe[33], idbonus[33], idwalk[33], idnoflash[33], idnosmoke[33], idhe[33], idusp[33], idamusp[33], idscout[33], idamsco[33], idshock[33]; new next_lvlhp, next_hp, cost_hp, next_lvlarm, next_arm, cost_arm, next_lvlres, next_rest, next_resct, cost_res, next_lvlfd, next_fd, cost_fd, next_lvlsh, next_sh, cost_sh, next_lvlb, next_b, cost_b, next_lvlnos, next_nos, cost_nos, cost_wa, cost_nof, cost_sho, next_lvlhe, next_he, cost_he, next_lvlusp, next_usp, next_am_usp, cost_usp, cost_am_usp, next_lvlsco, next_sco, next_am_sco, cost_sco, cost_am_sco; new msgsaytext; new item[33], /* 1 - health 2 - armor 3 - respawn 4 - falldmg reductor 5 - super he 6 - bonus money 7 - walk 8 - no flash 9 - no smoke 10 - he 13 - Brak spowolnienia po strzale */ gun[33]; /* 1 - usp 2 - scout */ new Float:falling_speed[33]; new Float:damage_after[33][33]; new bool:ginfo[33]; new bool:glast[33]; new bool:gbuyed[33]; new bool:grespawned[33]; public plugin_init() { /* REGISTER PLG */ register_plugin("MoneyMod", VERSION, AUTHOR); /* EVENTS & LOGEVENTS */ register_event("DeathMsg", "event_death", "a"); register_event("SendAudio", "event_ctwin", "a", "2&%!MRAD_ctwin"); register_event("Damage", "event_hedamage", "b", "2!0", "4!0", "5!0", "6!0"); register_event("ScreenFade","event_checkflash","be","4=255","5=255","6=255","7>199") register_logevent("event_startround",2,"1=Round_Start"); register_logevent("event_endround", 2 , "1=Round_End"); /* HAMS */ RegisterHam(Ham_Spawn, "player" , "ham_spawn" , 1); RegisterHam(Ham_TraceAttack, "player", "ham_traceattack"); RegisterHam(Ham_TakeDamage, "player", "ham_takedamage", 1); RegisterHam(Ham_TakeDamage, "player", "ham_takedamage2"); /* FOWARDS */ register_forward(FM_Touch, "forward_touch"); /* MENUS */ register_menu("QuestMenu", QUEST_KEYS,"cbQuestMenu"); register_menu("GunMenu", GUN_KEYS,"cbGunMenu"); register_menu("MoneyMenu", MONEY_KEYS,"cbMoneyMenu"); register_menu("ItemsMenu", ITEMS_KEYS,"cbItemsMenu"); register_menu("Items2Menu", ITEMS2_KEYS,"cbItems2Menu"); register_menu("WeaponMenu", WEAPON_KEYS,"cbWeaponMenu"); /* CVARS TO GAME */ register_cvar("amx_savestyle", "1"); register_cvar("amx_headsplash", "0"); register_cvar("mm_players", "3"); register_cvar("mm_kill", "50"); register_cvar("mm_survive","25"); register_cvar("mm_firstmoney", "100"); register_cvar("mm_cost_hp", "600"); register_cvar("mm_cost_blows", "1000"); register_cvar("mm_cost_respawn", "3000"); register_cvar("mm_cost_falldmg", "2500"); register_cvar("mm_cost_superhe", "5000"); register_cvar("mm_cost_bonusmoney", "7500"); register_cvar("mm_cost_walk", "10000"); register_cvar("mm_cost_noflash", "50000"); register_cvar("mm_cost_nosmoke", "40000"); register_cvar("mm_cost_shock", "60000"); register_cvar("mm_cost_he", "750"); register_cvar("mm_cost_usp", "600"); register_cvar("mm_cost_scout", "1500"); register_cvar("mm_number_itemhealth", "50"); register_cvar("mm_number_itemarmor", "250"); register_cvar("mm_cost_ammo_usp", "4000"); register_cvar("mm_cost_ammo_scout", "7500"); register_cvar("mm_max_health", "4"); register_cvar("mm_max_blows", "5"); register_cvar("mm_max_respawn", "5"); register_cvar("mm_max_falldmg", "8"); register_cvar("mm_max_superhe", "4"); register_cvar("mm_max_bonusmoney", "4"); register_cvar("mm_max_walk", "1"); register_cvar("mm_max_noflash", "1"); register_cvar("mm_max_nosmoke", "2"); register_cvar("mm_max_shock", "1"); register_cvar("mm_max_he", "5"); register_cvar("mm_max_usp", "5"); register_cvar("mm_max_scout", "5"); register_cvar("mm_max_ammo_usp", "3"); register_cvar("mm_max_ammo_scout", "2"); register_cvar("mm_number_health", "25"); register_cvar("mm_number_bonusmoney", "10"); register_cvar("mm_distance_superhe", "5"); register_cvar("mm_chance_blows", "5"); register_cvar("mm_chance_respawnt", "10"); register_cvar("mm_chance_respawnct", "20"); register_cvar("mm_chance_he", "20"); register_cvar("mm_chance_usp", "8"); register_cvar("mm_chance_scout", "6"); register_cvar("mm_chance_itemrespawn", "10"); register_cvar("mm_percent_falldmg", "5"); register_cvar("mm_percent_nosmoke", "50"); /* GLOBALS */ mm_players = get_cvar_num("mm_players"); mm_kill = get_cvar_num("mm_kill"); mm_survive = get_cvar_num("mm_survive"); mm_cost_hp = get_cvar_num("mm_cost_hp"); mm_cost_armor = get_cvar_num("mm_cost_blows"); mm_cost_respawn = get_cvar_num("mm_cost_respawn"); mm_cost_falldmg = get_cvar_num("mm_cost_falldmg"); mm_cost_superhe = get_cvar_num("mm_cost_superhe"); mm_cost_bonus = get_cvar_num("mm_cost_bonusmoney"); mm_cost_walk = get_cvar_num("mm_cost_walk"); mm_cost_noflash = get_cvar_num("mm_cost_noflash"); mm_cost_nosmoke = get_cvar_num("mm_cost_nosmoke"); mm_cost_shock = get_cvar_num("mm_cost_shock"); mm_cost_he = get_cvar_num("mm_cost_he"); mm_cost_usp = get_cvar_num("mm_cost_usp"); mm_cost_scout = get_cvar_num("mm_cost_scout"); mm_cost_am_usp = get_cvar_num("mm_cost_ammo_usp"); mm_cost_am_scout = get_cvar_num("mm_cost_ammo_scout"); max_health = get_cvar_num("mm_max_health"); max_armor = get_cvar_num("mm_max_blows"); max_respawn = get_cvar_num("mm_max_respawn"); max_falldmg = get_cvar_num("mm_max_falldmg"); max_superhe = get_cvar_num("mm_max_superhe"); max_bonus = get_cvar_num("mm_max_bonusmoney"); max_walk = get_cvar_num("mm_max_walk"); max_noflash = get_cvar_num("mm_max_noflash"); max_nosmoke = get_cvar_num("mm_max_nosmoke"); max_shock = get_cvar_num("mm_max_shock"); max_he = get_cvar_num("mm_max_he"); max_usp = get_cvar_num("mm_max_usp"); max_scout = get_cvar_num("mm_max_scout"); max_am_usp = get_cvar_num("mm_max_ammo_usp"); max_am_scout = get_cvar_num("mm_max_ammo_scout"); number_health = get_cvar_num("mm_number_health"); number_bonus = get_cvar_num("mm_number_bonusmoney"); distance_superhe = get_cvar_num("mm_distance_superhe"); chance_armor = get_cvar_num("mm_chance_blows"); chance_respawnt = get_cvar_num("mm_chance_respawnt"); chance_respawnct = get_cvar_num("mm_chance_respawnct"); chance_he = get_cvar_num("mm_chance_he"); chance_usp = get_cvar_num("mm_chance_usp"); chance_scout = get_cvar_num("mm_chance_scout"); chance_lastrespawn = get_cvar_num("mm_chance_itemrespawn"); percent_falldmg = get_cvar_num("mm_percent_falldmg"); percent_nosmoke = get_cvar_num("mm_percent_nosmoke"); mm_firstmoney = get_cvar_num("mm_firstmoney"); /* NVAULT */ nvault_open("moneymod"); /* MESSAGES */ register_message(get_user_msgid("ScoreAttrib"), "message_score"); //msgstatustext = get_user_msgid("StatusText"); msgsaytext = get_user_msgid("SayText"); /* CLCMDS & CONCMDS */ register_concmd("mm_givemoney", "func_givemm", ADMIN_IMMUNITY , " "); register_concmd("mm_takemoney", "func_takemm", ADMIN_IMMUNITY , " "); register_clcmd("say /mm" , "moneyMenu"); register_clcmd("say /money" , "moneyMenu"); register_clcmd("say /moneymod" , "moneyMenu"); register_clcmd("say /mymoney" , "func_mymoney"); register_clcmd("say /items", "cmd_itemshelp"); register_clcmd("say_team /mm" , "moneyMenu"); register_clcmd("say_team /money" , "moneyMenu"); register_clcmd("say_team /moneymod" , "moneyMenu"); register_clcmd("say_team /mymoney" , "func_mymoney"); register_clcmd("say_team /last", "cmd_lastbuy"); register_clcmd("say_team /items", "cmd_itemshelp"); } public plugin_natives() { register_library("moneymod"); register_native("mm_get_money", "_get_money"); register_native("mm_get_nosmoke", "_get_nosmoke"); register_native("mm_set_money", "_set_money"); } public _get_money(plugin, params) { return idmm[get_param(1)]; } public _get_nosmoke(plugin, params) { return idnosmoke[get_param(1)]; } public _set_money(plugin, params) { new id = get_param(1); idmm[id] = max(0, get_param(2)); func_save(id); } public cmd_itemshelp(id) { static motd[2500]; new len = copy(motd, sizeof(motd) - 1, ""); len += format(motd[len], sizeof(motd) - len - 1, ""); len += format(motd[len], sizeof(motd) - len - 1, "Zycie: Dostajesz wiecej HP na poczatku rundy.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Odbicie: Masz szanse odbic atak.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Twarde buty: Obrazenia za upadek zostaja zmniejszone.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Odrodzenie: Masz szanse sie odrodzic po smierci.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Super HE: Twoj granat odpycha.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Wiecej kasy: Dostajesz wiecej kasy.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Anty-smoke: Zamrazajacy granat na Ciebie nie dziala.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Ciche chodzenie: Chodzisz ciszej.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Anty-flash: Dazzling grenade does not blind you.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Brak spowolnienia po strzale: No slowing down after the damage suffered.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, ""); len += format(motd[len], sizeof(motd) - len - 1, ""); show_motd(id, motd, "MoneyMod Items Help"); return PLUGIN_HANDLED; } public func_takemm(id, level, cid) { if(!cmd_access (id, level, cid, 3)) return PLUGIN_HANDLED; new target[32], amount[21], reason[21]; read_argv(1, target, 31); read_argv(2, amount, 20); read_argv(3, reason, 20); new player = cmd_target(id, target, 8); if(!player) return PLUGIN_HANDLED; new admin_name[32], player_name[32]; get_user_name(id, admin_name, 31); get_user_name(player, player_name, 31); new expnum = str_to_num(amount); idmm[player] -= expnum; if(idmm[player] < 0) { idmm[player] = 0; } func_save(id); return PLUGIN_CONTINUE; } public func_givemm( id, level, cid ) { if(!cmd_access (id, level, cid, 3)) return PLUGIN_HANDLED; new target[32], amount[21], reason[21]; read_argv(1, target, 31); read_argv(2, amount, 20); read_argv(3, reason, 20); new player = cmd_target(id, target, 8); if(!player) return PLUGIN_HANDLED; new admin_name[32], player_name[32]; get_user_name(id, admin_name, 31); get_user_name(player, player_name, 31); new expnum = str_to_num(amount); idmm[player] += expnum; func_save(id); return PLUGIN_CONTINUE; } public message_score(iMsgID , iDest , iReceiver) { new iPlayer = get_msg_arg_int(1); if(is_user_connected(iPlayer) && (get_user_flags(iPlayer) & ADMIN_VIP)) { set_msg_arg_int(2 ,ARG_BYTE , is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD); } } public ham_takedamage(id, inflictor, attacker, Float:damage, damagebits) { if(idshock[id] >= 1) { set_pdata_float(id, 108, 1.0); } } public ham_takedamage2(id, inflictor, attacker, Float:damage, damagebits) { if(is_user_alive(id) && (damagebits & DMG_FALL)) { if(idfalldmg[id] >= 1) { new percent = idfalldmg[id] * percent_falldmg; SetHamParamFloat(4, damage * (1.0 - (float(percent) / 100.0))); } } } public ham_traceattack(victim, attacker, Float:damage, Float:direction[3], ptr, bits) { if(idarmor[victim] <= 0) return; new chance_num = random_num(1, 100); new chance_player= idarmor[victim] * chance_armor; if(chance_num <= chance_player && 0 < attacker <= get_maxplayers()) { new name[64]; get_user_name(attacker, name, 63); damage = 0.0; SetHamParamFloat(3, damage); ColorChat(victim, "!g[%s]!y You did dodge a blow from player %s. (chance %d%%)", PREFIX, name, chance_player); } } public ham_spawn(id) { if(is_user_alive(id) && is_user_connected(id)) { glast[id] = false; gbuyed[id] = false; if(idhealth[id] > 0) { set_task(1.5, "func_health", id + TASK_HEALTH); } if(idhe[id] > 0) { set_task(1.5, "func_he", id + TASK_HE); } if(idusp[id] > 0) { set_task(1.5, "func_usp", id + TASK_USP); } if(idscout[id] > 0) { set_task(1.5, "func_scout", id + TASK_SCOUT); } if(idwalk[id] > 0) { set_user_footsteps(id, 1); } func_save(id); } } public event_checkflash(id) { if(idnoflash[id] > 0) { message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id); write_short(~0); write_short(~0); write_short(1<<12); write_byte(0); write_byte(0); write_byte(0); write_byte(0); message_end(); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public event_hedamage(id) { new MAXPLAYERS; MAXPLAYERS = get_maxplayers(); new inflictor = entity_get_edict(id, EV_ENT_dmg_inflictor); if(!is_valid_ent(inflictor)) return PLUGIN_HANDLED; if (inflictor <= MAXPLAYERS) return PLUGIN_CONTINUE; new classname2[8]; entity_get_string(inflictor, EV_SZ_classname, classname2, 7); if (!equal(classname2, "grenade")) return PLUGIN_CONTINUE; new Float:upVector[3]; upVector[0] = float(read_data(4)); upVector[1] = float(read_data(5)); upVector[2] = float(read_data(6)); new damagerept = read_data(2); new attacker = get_user_attacker(id); if(idsuperhe[attacker] > 0) { new dmg = idsuperhe[attacker] * distance_superhe; set_velocity_from_origin(id, upVector, dmg * damagerept + 0.0); } return PLUGIN_CONTINUE; } public event_ctwin() { for (new id= 1; id <= get_maxplayers(); id++) { if(get_user_team(id) == 2 && is_user_alive(id)) { } } } public event_startround() { for (new id= 1; id <= get_maxplayers(); id++) { grespawned[id] = false; } } public event_endround() { for (new id= 1; id <= get_maxplayers(); id++) { if(get_user_team(id) == 1 && is_user_alive(id)) { func_mm(id, mm_survive) } } } public event_death() { new attacker = read_data(1); new victim = read_data (2); if(victim == attacker || attacker == 0 || get_user_team(attacker) == get_user_team(victim)) { func_checkrespawn(victim); } else if(victim != attacker && attacker != 0 && get_user_team(attacker) != get_user_team(victim)) { func_mm(attacker, mm_kill); func_checkrespawn(victim); } return PLUGIN_CONTINUE; } public func_lastrespawn(task) { new iPlayers[32], iNum; get_players( iPlayers, iNum ); for(new i = 0; i 0) { new los = random_num(1, 100); new CsTeams:team = cs_get_user_team(id); new chance_player; if(team == CS_TEAM_T) chance_player = idrespawn[id] * chance_respawnt else if(team == CS_TEAM_CT) chance_player = idrespawn[id] * chance_respawnct if(los <= chance_player){ if(HasTeammateAlive(id, team)) { set_task(1.5, "func_respawn", id + TASK_RESPAWN); } } } } public func_respawn(id) { id -= TASK_RESPAWN; new CsTeams:team = cs_get_user_team(id); if(HasTeammateAlive(id, team) && grespawned[id] == false) { new chance_player; new name[64]; get_user_name(id, name, 63); if(team == CS_TEAM_T) chance_player = idrespawn[id] * chance_respawnt else if(team == CS_TEAM_CT) chance_player = idrespawn[id] * chance_respawnct ColorChat(0,"!g[%s]!y %s won the revival! (chance %d%%)", PREFIX, name, chance_player); ExecuteHamB(Ham_CS_RoundRespawn, id); grespawned[id] = true; } } public HasTeammateAlive(id, CsTeams:team) { /* Exolent function */ for(new i = 1; i <= get_maxplayers(); i++) { if(i == id) continue; if(is_user_alive(i) && cs_get_user_team(i) == team) return 1; } return 0; } public func_mm(id, money) { if(get_playersnum() < mm_players) { ColorChat(id, "!g[%s]!y Twoj stan kasy sie nie zmienia, poniewaz na serwerze nie ma %d graczy.", PREFIX, mm_players); return PLUGIN_CONTINUE; } if(money == mm_kill) { money += (number_bonus * idbonus[id]); ColorChat(id, "!g[%s]!y Otrzymujesz $%d za zabicie gracza", PREFIX, money); idmm[id] += money; } else if(money == mm_survive) { money += (number_bonus * idbonus[id]); ColorChat(id, "!g[%s]!y Otrzymujesz $%d za przezycie rundy", PREFIX, money); idmm[id] += money; } else { idmm[id] += money; } func_save(id); return PLUGIN_CONTINUE; } public func_hello(id) { id -= TASK_HELLO; if(get_user_team(id) == 2 || get_user_team(id) == 1) { new name1[64]; get_user_name(id, name1,63); ColorChat(id, "!g[%s]!y Witaj, %s! Ten serwer uzywa MoneyMod.", PREFIX, name1); if(idmm[id] == 0 && idfirsttime[id] != 1) { ColorChat(id, "!g[%s]!y Jestes u nas pierwszy raz, dlatego dostajesz $%d!", PREFIX, mm_firstmoney); idmm[id] += mm_firstmoney func_save(id); } } else { set_task(3.0,"func_hello",id + TASK_HELLO); } } public func_mymoney(id) { ColorChat(id, "!g[%s]!y Twoja kasa: %d", PREFIX, idmm[id]); func_save(id); } public func_show(id) { id -= TASK_SHOW; new index = entity_get_int(id, EV_INT_iuser2); new ent,body; get_user_aiming(id, ent, body); if(is_user_alive(id) && is_user_connected(id) && 0 < ent <= get_maxplayers() && is_user_alive(ent) && is_user_connected(ent) && get_user_team(id) == get_user_team(ent)) { new name1[32]; get_user_name(ent, name1, 31); set_hudmessage(255, 255, 0, -1.0, 0.80, 0, 0.0, 1.0, 0.1, 0.1); show_hudmessage(id, "Nick: %s^nKasa: %d" ,name1, idmm[ent]); } else if(!is_user_alive(id) && is_user_connected(id) && 0 < index <= get_maxplayers() && ginfo[id] != false && is_user_alive(index) && is_user_connected(index )) { new name2[32]; get_user_name(index, name2, 31); set_hudmessage(255, 255, 0, -1.0, 0.80, 0, 0.0, 1.0, 0.1, 0.1); show_hudmessage(id, "Nick: %s^nKasa: %d" ,name2, idmm[index]); } set_task(1.0,"func_show",id + TASK_SHOW); } public client_connect(id) { idmm[id] = 0; grespawned[id] = false; } public client_putinserver(id) { set_task(3.0,"func_load", id); set_task(3.0,"func_show",id + TASK_SHOW); set_task(3.0,"func_hello",id + TASK_HELLO); new authid[32]; get_user_authid(id,authid,31); } public client_disconnect(id) { if(task_exists(id + TASK_SHOW)) { remove_task( id + TASK_SHOW); } if(task_exists(id + TASK_HELLO)) { remove_task(id + TASK_HELLO); } if(task_exists(id + TASK_RESPAWN)) { remove_task(id + TASK_RESPAWN); } if(task_exists(id + TASK_HEALTH)) { remove_task(id + TASK_HEALTH); } if(task_exists(id + TASK_HE)) { remove_task(id + TASK_HE); } if(task_exists(id + TASK_USP)) { remove_task(id + TASK_USP); } if(task_exists(id + TASK_SCOUT)) { remove_task(id + TASK_SCOUT); } func_save(id); } public moneyMenu(id) { static msg[2500]; new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w ^nGlowne menu - Twoja kasa:\y %d^n^n", PREFIX, idmm[id]); len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w Info o graczu^n"); len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w Pomoc^n^n"); len += format(msg[len], sizeof(msg) - len - 1, "\r3.\w Umiejetnosci^n"); len += format(msg[len], sizeof(msg) - len - 1, "\r4.\w Bronie^n"); len += format(msg[len], sizeof(msg) - len - 1, "\r5.\w Informacje po smierci: "); if(ginfo[id] == true) { len += format(msg[len], sizeof(msg) - len - 1, "\yWlacz^n"); } else if(ginfo[id] == false) { len += format(msg[len], sizeof(msg) - len - 1, "\rWylacz^n"); } len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n\r0.\w Wyjdz"); show_menu(id,MONEY_KEYS, msg, -1,"MoneyMenu"); return PLUGIN_HANDLED; } public cbMoneyMenu(id, key) { switch(key) { case 0:{ playerInfoMenu(id); } case 1:{ motd_help(id); moneyMenu(id); } case 2:{ itemsMenu(id); } case 3:{ weaponMenu(id); } case 4:{ if(ginfo[id] == true) { ginfo[id] = false; } else if(ginfo[id] == false) { ginfo[id] = true; } moneyMenu(id); } } } public itemsMenu(id) { next_lvlhp = idhealth[id] + 1; next_hp = (idhealth[id] + 1) * number_health; cost_hp = (idhealth[id] + 1) * mm_cost_hp new a_hp = idhealth[id] * number_health; next_lvlarm = idarmor[id] + 1; next_arm = (idarmor[id] + 1) * chance_armor; cost_arm = (idarmor[id] + 1) * mm_cost_armor new a_arm = idarmor[id] * chance_armor; next_lvlres = idrespawn[id] + 1; next_rest= (idrespawn[id] + 1) * chance_respawnt; next_resct= (idrespawn[id] + 1) * chance_respawnct; cost_res = (idrespawn[id] + 1) * mm_cost_respawn new a_rest= idrespawn[id] * chance_respawnt; new a_resct= idrespawn[id] * chance_respawnct; next_lvlfd = idfalldmg[id] + 1; next_fd = (idfalldmg[id] + 1) * percent_falldmg; cost_fd = (idfalldmg[id] + 1) * mm_cost_falldmg new a_fd = idfalldmg[id] * percent_falldmg; next_lvlsh = idsuperhe[id] + 1; next_sh = (idsuperhe[id] + 1) * distance_superhe; cost_sh = (idsuperhe[id] + 1) * mm_cost_superhe; new a_sh = idsuperhe[id] * distance_superhe; next_lvlb = idbonus[id] + 1; next_b = (idbonus[id] + 1) * number_bonus; cost_b = (idbonus[id] + 1) * mm_cost_bonus; new a_b = idbonus[id] * number_bonus; next_lvlnos = idnosmoke[id] + 1; next_nos = (idnosmoke[id] + 1) * percent_nosmoke; cost_nos = (idnosmoke[id] + 1) * mm_cost_nosmoke; new a_nos = idnosmoke[id] * percent_nosmoke; static msg[2500]; new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w^nUmiejetnosci 1/2^n^n", PREFIX); /* HEALTH */ if(idmm[id] >= cost_hp && idhealth[id] != max_health) { len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w Zycie: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w+%d HP\r)\y $%d", next_lvlhp, next_hp, cost_hp ); } else if(idhealth[id] == max_health) { len += format(msg[len], sizeof(msg) - len - 1, "\d1. Zycie "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w+%d HP\r)", idhealth[id], a_hp); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d1. Zycie: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w+%d HP\r)\y $%d", next_lvlhp, next_hp, cost_hp ); } len += format(msg[len], sizeof(msg) - len - 1, "^n"); /* ARMOR */ if(idmm[id] >= cost_arm && idarmor[id] != max_armor) { len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w Odbicie: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlarm, next_arm, cost_arm); } else if(idarmor[id] == max_armor) { len += format(msg[len], sizeof(msg) - len - 1, "\d2. Odbicie: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idarmor[id],a_arm); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d2. Odbicie: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlarm, next_arm, cost_arm ); } len += format(msg[len], sizeof(msg) - len - 1, "^n"); /* RESPAWN */ if(idmm[id] >= cost_res && idrespawn[id] != max_respawn) { len += format(msg[len], sizeof(msg) - len - 1, "\r3.\w Odrodzenie: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r(\wT: %d%%\r/\wCT: %d%%\r)\y $%d", next_lvlres, next_rest,next_resct, cost_res); } else if(idrespawn[id] == max_respawn) { len += format(msg[len], sizeof(msg) - len - 1, "\d3. Odrodzenie: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r(\wT: %d%%\r/\wCT: %d%%\r)", idrespawn[id], a_rest, a_resct); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d3. Odrodzenie: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r(\wT: %d%%\r/\wCT: %d%%\r)\y $%d", next_lvlres, next_rest,next_resct, cost_res ); } len += format(msg[len], sizeof(msg) - len - 1, "^n"); /* FALLDMG REDUCOR */ if(idmm[id] >= cost_fd && idfalldmg[id] != max_falldmg) { len += format(msg[len], sizeof(msg) - len - 1, "\r4.\w Twarde buty: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlfd, next_fd, cost_fd); } else if(idfalldmg[id] == max_falldmg) { len += format(msg[len], sizeof(msg) - len - 1, "\d4. Twarde buty: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idfalldmg[id], a_fd); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d4. Twarde buty: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlfd, next_fd, cost_fd); } len += format(msg[len], sizeof(msg) - len - 1, "^n"); /* SUPER HE */ if(idmm[id] >= cost_sh && idsuperhe[id] != max_superhe) { len += format(msg[len], sizeof(msg) - len - 1, "\r5.\w Super HE: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\wFrom 1 to %d\r)\y $%d", next_lvlsh, next_sh, cost_sh); } else if(idsuperhe[id] == max_superhe) { len += format(msg[len], sizeof(msg) - len - 1, "\d5. Super HE: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\wFrom 1 to %d\r)", idsuperhe[id], a_sh); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d5. Super HE: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\wFrom 1 to %d\r)\y $%d", next_lvlsh, next_sh, cost_sh); } len += format(msg[len], sizeof(msg) - len - 1, "^n"); /* BOUNS MONEY */ if(idmm[id] >= cost_b && idbonus[id] != max_bonus) { len += format(msg[len], sizeof(msg) - len - 1, "\r6.\w Wiecej kasy: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w+$%d\r)\y $%d", next_lvlb, next_b, cost_b); } else if(idbonus[id] == max_bonus) { len += format(msg[len], sizeof(msg) - len - 1, "\d6. Wiecej kasy: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w+$%d\r)", idbonus[id], a_b); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d6. Wiecej kasy: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w+$%d\r)\y $%d", next_lvlb, next_b, cost_b); } len += format(msg[len], sizeof(msg) - len - 1, "^n"); /* ANTY FROST */ if(idmm[id] >= cost_nos && idnosmoke[id] != max_nosmoke) { len += format(msg[len], sizeof(msg) - len - 1, "\r7.\w Rozgrzewacz: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlnos, next_nos, cost_nos); } else if(idnosmoke[id] == max_nosmoke) { len += format(msg[len], sizeof(msg) - len - 1, "\d7. Rozgrzewacz: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idnosmoke[id], a_nos); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d7. Rozgrzewacz: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlnos, next_nos, cost_nos); } len += format(msg[len], sizeof(msg) - len - 1, "^n"); len += format(msg[len], sizeof(msg) - len - 1, "^n\d8. Wroc"); len += format(msg[len], sizeof(msg) - len - 1, "^n\r9.\w Dalej"); len += format(msg[len], sizeof(msg) - len - 1, "^n\r0.\w Wyjdz"); show_menu(id,ITEMS_KEYS, msg, -1,"ItemsMenu"); return PLUGIN_HANDLED; } public cbItemsMenu(id, key) { switch(key) { case 0:{ if(idmm[id] >= cost_hp && idhealth[id] != max_health) { item[id] = 1; questMenu(id); } else if(idhealth[id] == max_health) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } else { ColorChat(id, "!g[%s]!y Nie posiadasz wystarczajacej ilosci pieniedzy.", PREFIX); itemsMenu(id); } } case 1:{ if(idmm[id] >= cost_arm && idarmor[id] != max_armor) { item[id] = 2; questMenu(id); } else if(idarmor[id] == max_armor) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } else { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX, cost_arm); itemsMenu(id); } } case 2:{ if(idmm[id] >= cost_res && idrespawn[id] != max_respawn) { item[id] = 3; questMenu(id); } else if(idrespawn[id] == max_respawn) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } else { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } } case 3:{ if(idmm[id] >= cost_fd && idfalldmg[id] != max_falldmg) { item[id] = 4; questMenu(id); } else if(idfalldmg[id] == max_falldmg) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } else { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } } case 4:{ if(idmm[id] >= cost_sh && idsuperhe[id] != max_superhe) { item[id] = 5; questMenu(id); } else if(idsuperhe[id] == max_superhe) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } else { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } } case 5:{ if(idmm[id] >= cost_b && idbonus[id] != max_bonus) { item[id] = 6; questMenu(id); } else if(idbonus[id] == max_bonus) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } else { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } } case 6:{ if(idmm[id] >= cost_nos && idnosmoke[id] != max_nosmoke) { item[id] = 7; questMenu(id); } else if(idnosmoke[id] == max_nosmoke) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } else { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); itemsMenu(id); } } case 7:{ itemsMenu(id); } case 8:{ items2Menu(id); } case 9:{ moneyMenu(id); } } } public items2Menu(id) { cost_wa = (idwalk[id] + 1) * mm_cost_walk; cost_nof = (idnoflash[id] + 1) * mm_cost_noflash; cost_sho = (idshock[id] + 1) * mm_cost_shock; static msg[2500]; new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w^nUmiejetnosci 2/2^n^n", PREFIX); /* NO FLASH */ if(idmm[id] >= cost_wa && idwalk[id] != max_walk) { len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w Ciche chodzenie: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_wa); } else if(idwalk[id] == max_walk) { len += format(msg[len], sizeof(msg) - len - 1, "\d1. Ciche chodzenie: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\wKupione\r)"); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d1. Ciche chodzenie: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_wa); } len += format(msg[len], sizeof(msg) - len - 1, "^n"); /* NO SMOKE */ if(idmm[id] >= cost_nof && idnoflash[id] != max_noflash) { len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w Anty-flash: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_nof); } else if(idnoflash[id] == max_noflash) { len += format(msg[len], sizeof(msg) - len - 1, "\d2. Anty-flash: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\wKupione\r)"); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d2. Anty-flash: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_nof); } len += format(msg[len], sizeof(msg) - len - 1, "^n"); /* NO SMOKE */ if(idmm[id] >= cost_sho && idshock[id] != max_shock) { len += format(msg[len], sizeof(msg) - len - 1, "\r3.\w Brak spowolnienia po strzale: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_sho); } else if(idshock[id] == max_shock) { len += format(msg[len], sizeof(msg) - len - 1, "\d3. Brak spowolnienia po strzale: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\wKupione\r)"); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d3. Brak spowolnienia po strzale: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_sho); } len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n^n"); len += format(msg[len], sizeof(msg) - len - 1, "^n\r8.\w Wroc"); len += format(msg[len], sizeof(msg) - len - 1, "^n\d9. Dalej"); len += format(msg[len], sizeof(msg) - len - 1, "^n\r0.\w Wyjdz"); show_menu(id,ITEMS2_KEYS, msg, -1,"Items2Menu"); return PLUGIN_HANDLED; } public cbItems2Menu(id, key) { switch(key) { case 0:{ if(idmm[id] >= cost_wa && idwalk[id] != max_walk) { item[id] = 8; questMenu(id); } else if(idwalk[id] == max_walk) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); items2Menu(id); } else { ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX); items2Menu(id); } } case 1:{ if(idmm[id] >= cost_nof && idnoflash[id] != max_noflash) { item[id] = 9; questMenu(id); } else if(idnoflash[id] == max_noflash) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); items2Menu(id); } else { ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX, cost_nof); items2Menu(id); } } case 2:{ if(idmm[id] >= cost_sho && idshock[id] != max_shock) { item[id] = 21; questMenu(id); } else if(idshock[id] == max_shock) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); items2Menu(id); } else { ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX, cost_sho); items2Menu(id); } } case 7:{ itemsMenu(id); } case 8:{ items2Menu(id); } case 9:{ moneyMenu(id); } } } public weaponMenu(id) { next_lvlhe = idhe[id] + 1; next_he = (idhe[id] + 1) * chance_he; cost_he = (idhe[id] + 1) * mm_cost_he; new a_he = idhe[id] * chance_he; static msg[2500]; new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w^nBronie^n^n", PREFIX); /* HE */ if(idmm[id] >= cost_he && idhe[id] != max_he) { len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w HE: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlhe, next_he, cost_he); } else if(idhe[id] == max_he) { len += format(msg[len], sizeof(msg) - len - 1, "\d1. HE: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idhe[id], a_he); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d1. HE: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlhe, next_he, cost_he); } len += format(msg[len], sizeof(msg) - len - 1, "^n"); /* USP */ len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w USP"); len += format(msg[len], sizeof(msg) - len - 1, "^n"); /* SCOUT */ len += format(msg[len], sizeof(msg) - len - 1, "\r3.\w Scout"); len += format(msg[len], sizeof(msg) - len - 1, "^n"); len += format(msg[len], sizeof(msg) - len - 1, "^n^n\r0.\w Wyjdz"); show_menu(id,WEAPON_KEYS, msg, -1,"WeaponMenu"); return PLUGIN_HANDLED; } public cbWeaponMenu(id, key) { switch(key) { case 0:{ if(idmm[id] >= cost_he && idhe[id] != max_he) { item[id] = 10; questMenu(id); } else if(idhe[id] == max_he) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); weaponMenu(id); } else { ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX); weaponMenu(id); } } case 1:{ gun[id] = 3; gunMenu(id); } case 2:{ gun[id] = 4; gunMenu(id); } case 9:{ moneyMenu(id) } } } public gunMenu(id) { static msg[2500]; if(gun[id] == 3) { next_lvlusp = idusp[id] + 1; next_usp = (idusp[id] + 1) * chance_usp; cost_usp= (idusp[id] + 1) * mm_cost_usp; next_am_usp = idamusp[id] + 1 cost_am_usp = idamusp[id] * mm_cost_am_usp; new a_usp = idusp[id] * chance_usp; new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w^nUSP^n^n", PREFIX); /* GUN */ if(idmm[id] >= cost_usp && idusp[id] != max_usp) { len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w USP: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlusp, next_usp, cost_usp); } else if(idusp[id] == max_usp) { len += format(msg[len], sizeof(msg) - len - 1, "\d1. USP: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idusp[id], a_usp); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d1. USP: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlusp, next_usp, cost_usp); } len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n^n"); /* BULLETS */ if(idmm[id] >= cost_am_usp && idamusp[id] != max_am_usp&& idusp[id] != 0) { len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w Naboje: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y $%d", next_am_usp, cost_am_usp); } else if(idamusp[id] == max_am_usp) { len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r/\yMax\r)", idamusp[id]); } else if(idusp[id] == 0) { len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y", idamusp[id]); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y $%d", next_am_usp, cost_am_usp); } len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n^n\r0.\w Wyjdz"); } else if(gun[id] == 4) { next_lvlsco = idscout[id] + 1; next_sco = (idscout[id] + 1) * chance_scout; cost_sco = (idscout[id] + 1) * mm_cost_scout; next_am_sco = idamsco[id] + 1 cost_am_sco = idamsco[id] * mm_cost_am_scout; new a_sco = idscout[id] * chance_scout; new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w^nScout^n^n", PREFIX); /* GUN */ if(idmm[id] >= cost_sco && idscout[id] != max_scout) { len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w Scout: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlsco, next_sco, cost_sco); } else if(idscout[id] == max_scout) { len += format(msg[len], sizeof(msg) - len - 1, "\d1. Scout: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idscout[id], a_sco); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d1. Scout: "); len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlsco, next_sco, cost_sco); } len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n^n"); /* BULLETS */ if(idmm[id] >= cost_am_sco && idamsco[id] != max_am_scout && idscout[id] != 0) { len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w Naboje: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y $%d", next_am_sco, cost_am_sco); } else if(idamsco[id] == max_am_scout) { len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r/\yMax\r)", idamsco[id]); } else if(idscout[id] == 0) { len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y", idamsco[id]); } else { len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: "); len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y $%d", next_am_sco, cost_am_sco); } len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n^n\r0.\w Wyjdz"); } show_menu(id,GUN_KEYS, msg, -1,"GunMenu"); return PLUGIN_HANDLED; } public cbGunMenu(id, key) { switch(key) { case 0:{ if(gun[id] == 3) { if(idmm[id] >= cost_usp && idusp[id] != max_usp) { item[id] = 17; questMenu(id); } else if(idusp [id] == max_usp) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); gunMenu(id); } else { ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX); gunMenu(id); } } else if(gun[id] == 4) { if(idmm[id] >= cost_sco && idscout[id] != max_scout) { item[id] = 19; questMenu(id); } else if(idscout [id] == max_scout) { ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX); gunMenu(id); } else { ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX); gunMenu(id); } } } case 1:{ if(gun[id] == 3) { if(idmm[id] >= cost_am_usp && idamusp[id] != max_am_usp && idusp[id] != 0) { item[id] = 18; questMenu(id); } else if(idamusp[id] == max_am_usp) { ColorChat(id, "!g[%s]!y Nie mozesz kupic wiecej naboi.", PREFIX); gunMenu(id); } else if(idusp[id] == 0) { ColorChat(id, "!g[%s]!y Najpierw kup umiejetnosc.", PREFIX); gunMenu(id); } else { ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX); gunMenu(id); } } else if(gun[id] == 4) { if(idmm[id] >= cost_am_sco && idamsco[id] != max_am_scout && idscout[id] != 0) { item[id] = 20; questMenu(id); } else if(idamsco[id] == max_am_scout) { ColorChat(id, "!g[%s]!y Nie mozesz kupic wiecej naboi.", PREFIX); gunMenu(id); } else if(idscout[id] == 0) { ColorChat(id, "!g[%s]!y Najpierw kup umiejetnosc.", PREFIX); gunMenu(id); } else { ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX); gunMenu(id); } } } case 9: { weaponMenu(id); } } } public questMenu(id) { static msg[2500]; new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w ^nJestes pewien, ze chcesz kupic ", PREFIX); if(item[id] == 1) { len += format(msg[len], sizeof(msg) - len - 1, "\rZycie\w for\y $%d\w?", cost_hp); } else if(item[id] == 2) { len += format(msg[len], sizeof(msg) - len - 1, "\rOdbicie\w for\y $%d\w?", cost_arm); } else if(item[id] == 3) { len += format(msg[len], sizeof(msg) - len - 1, "\rOdrodzenie\w for\y $%d\w?", cost_res); } else if(item[id] == 4) { len += format(msg[len], sizeof(msg) - len - 1, "\rTwarde buty\w for\y $%d\w?", cost_fd); } else if(item[id] == 5) { len += format(msg[len], sizeof(msg) - len - 1, "\rSuper HE\w for\y $%d\w?", cost_sh); } else if(item[id] == 6) { len += format(msg[len], sizeof(msg) - len - 1, "\rWiecej kasy\w for\y $%d\w?", cost_b); } else if(item[id] == 7) { len += format(msg[len], sizeof(msg) - len - 1, "\rAnty-smoke\w for\y $%d\w?", cost_nos); } else if(item[id] == 8) { len += format(msg[len], sizeof(msg) - len - 1, "\rCiche chodzenie\w for\y $%d\w?", cost_wa); } else if(item[id] == 9) { len += format(msg[len], sizeof(msg) - len - 1, "\rAnty-flash\w for\y $%d\w?", cost_nof); } else if(item[id] == 10) { len += format(msg[len], sizeof(msg) - len - 1, "\rHE\w for\y $%d\w?", cost_he); } else if(item[id] == 11) { len += format(msg[len], sizeof(msg) - len - 1, "\rUSP\w for\y $%d\w?", cost_usp); } else if(item[id] == 12) { len += format(msg[len], sizeof(msg) - len - 1, "\rNaboje do USP\w for\y $%d\w?", cost_am_usp); } else if(item[id] == 13) { len += format(msg[len], sizeof(msg) - len - 1, "\rScout\w for\y $%d\w?", cost_sco); } else if(item[id] == 14) { len += format(msg[len], sizeof(msg) - len - 1, "\rNaboje do scouta\w for\y $%d\w?", cost_am_sco); } else if(item[id] == 15) { len += format(msg[len], sizeof(msg) - len - 1, "\rBrak spowolnienia po strzale\w for\y $%d\w?", cost_sho); } len += format(msg[len], sizeof(msg) - len - 1, "^n^n\r1.\w Tak"); len += format(msg[len], sizeof(msg) - len - 1, "^n\r2.\w Nie"); show_menu(id,QUEST_KEYS, msg, -1,"QuestMenu"); return PLUGIN_HANDLED; } public cbQuestMenu(id, key) { switch(key) { case 0:{ if(item[id] == 1) { idmm[id] -= cost_hp; idhealth[id] ++; ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } else if(item[id] == 2) { idmm[id] -= cost_arm; idarmor[id] ++; ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } else if(item[id] == 3) { idmm[id] -= cost_res; idrespawn[id] ++; ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } else if(item[id] == 4) { idmm[id] -= cost_fd; idfalldmg[id] ++; ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } else if(item[id] == 5) { idmm[id] -= cost_sh; idsuperhe[id] ++; ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } else if(item[id] == 6) { idmm[id] -= cost_b; idbonus[id] ++; ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } else if(item[id] == 7) { idmm[id] -= cost_nos; idnosmoke[id] ++; ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } else if(item[id] == 8) { idmm[id] -= cost_wa; idwalk[id] ++; set_user_footsteps(id, 1); ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } else if(item[id] == 9) { idmm[id] -= cost_nof; idnoflash[id] ++; ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } else if(item[id] == 10) { idmm[id] -= cost_he; idhe[id] ++; ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } else if(item[id] == 11) { idmm[id] -= cost_usp; idusp[id] ++; if(idusp[id] == 1) { idamusp[id] ++; } ColorChat(id, "!g[%s]!y Kupowanie broni powiodlo sie.", PREFIX); } else if(item[id] == 12) { idmm[id] -= cost_am_usp; idamusp[id] ++; ColorChat(id, "!g[%s]!y Kupowanie naboi powiodlo sie.", PREFIX); } else if(item[id] == 13) { idmm[id] -= cost_sco; idscout[id] ++; if(idscout[id] == 1) { idamsco[id] ++; } ColorChat(id, "!g[%s]!y Kupowanie broni powiodlo sie", PREFIX); } else if(item[id] == 14) { idmm[id] -= cost_am_sco; idamsco[id] ++; ColorChat(id, "!g[%s]!y Kupowanie naboi powiodlo sie.", PREFIX); } else if(item[id] == 15) { idmm[id] -= cost_sho; idshock[id] ++; ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX); } func_save(id); if(item[id] > 0 && item[id] < 8) { itemsMenu(id); } else if(item[id] > 7 && item[id] < 10 || item[id] == 21) { items2Menu(id); } else if(item[id] > 9 && item[id] < 13) { weaponMenu(id); } else { gunMenu(id); } } case 1:{ if(item[id] > 0 && item[id] < 8) { itemsMenu(id); } else if(item[id] > 7 && item[id] < 10 || item[id] == 21) { items2Menu(id); } else if(item[id] > 9 && item[id] < 13) { weaponMenu(id); } else { gunMenu(id); } } } } public playerInfoMenu(id) { new msg1[128] format(msg1,127,"\r[\y%s\r]\w ^nInfo o graczu", PREFIX); new menu = menu_create(msg1, "cbPlayerInfoMenu"); new name[32], authid[35]; for(new idd = 1; idd <= get_maxplayers(); idd++) { if(!is_user_connected(idd)) continue; get_user_name(idd, name, sizeof(name) - 1); get_user_authid(idd, authid, sizeof(authid) - 1); menu_additem(menu, name, authid); menu_setprop(menu,MPROP_EXITNAME,"\wBack to Main Menu"); } menu_display(id, menu); } public cbPlayerInfoMenu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); moneyMenu(id); return; } static _access, authid[35], callback; menu_item_getinfo(menu, item, _access, authid, sizeof(authid) - 1, _, _, callback); menu_destroy(menu); new player = find_player("c", authid); if(!is_user_connected(player)) { moneyMenu(id); return; } new name[32]; get_user_name(player, name, sizeof(name) - 1); static motd[2500]; new len = copy(motd, sizeof(motd) - 1, ""); len += format(motd[len], sizeof(motd) - len - 1, ""); len += format(motd[len], sizeof(motd) - len - 1, "Nick: %s

", name); len += format(motd[len], sizeof(motd) - len - 1, "Kasa: %i

", idmm[player]); len += format(motd[len], sizeof(motd) - len - 1, "Zycie: %d/%d (%d/%d HP)
",idhealth[player], max_health, idhealth[player] * number_health, max_health * number_health); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Odbicie: %d/%d (%d%%/%d%%)
",idarmor[player], max_armor, idarmor[player] * chance_armor, max_armor * chance_armor); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Twarde buty: %d/%d (%d%%/%d%%)
",idfalldmg[player], max_falldmg, idfalldmg[player] * percent_falldmg, max_falldmg * percent_falldmg); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Odrodzenie: %d/%d (T: %d%%/%d%% CT: %d%%/%d%%)
",idrespawn[player], max_respawn, idrespawn[player] * chance_respawnt,max_respawn * chance_respawnt,idrespawn[player] * chance_respawnct, max_respawn * chance_respawnct); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Super HE: %d/%d (From 1 to %d/%d)
",idsuperhe[player], max_superhe, idsuperhe[player] * distance_superhe, max_superhe * distance_superhe); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Wiecej kasy: %d/%d ($%d/$%d)
",idbonus[player], max_bonus, idbonus[player] * number_bonus, max_bonus * number_bonus); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Anty-smoke: %d/%d (%d%%/%d%%)
",idnosmoke[player], max_nosmoke, idnosmoke[player] * percent_nosmoke, max_nosmoke * percent_nosmoke); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Ciche chodzenie: %d/%d
",idwalk[player], max_walk); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Anty-flash: %d/%d
",idnoflash[player], max_noflash); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Brak spowolnienia po strzale: %d/%d
",idshock[player], max_shock); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "HE: %d/%d (%d%%/%d%%)
",idhe[player], max_he, idhe[player] * chance_he, max_he * chance_he); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, ""); len += format(motd[len], sizeof(motd) - len - 1, ""); show_motd(id, motd, "MoneyMod Player Info"); playerInfoMenu(id); } public motd_help(id) { static motd[2500]; new len = formatex(motd, sizeof(motd) - 1, ""); len += format(motd[len], sizeof(motd) - len - 1, "

"); len += format(motd[len], sizeof(motd) - len - 1, "Money Mod jest tylko dodatkiem.
"); len += format(motd[len], sizeof(motd) - len - 1, "Grajac zdobywasz pieniadze.
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, ""); len += format(motd[len], sizeof(motd) - len - 1, ""); len += format(motd[len], sizeof(motd) - len - 1, "", mm_kill); len += format(motd[len], sizeof(motd) - len - 1, "", mm_survive); len += format(motd[len], sizeof(motd) - len - 1, "
AkcjaKasa
Zabicie+%i
Przezycie rundy jako terrorysta+%i
"); len += format(motd[len], sizeof(motd) - len - 1, "
"); len += format(motd[len], sizeof(motd) - len - 1, "Za kase mozesz kupic dodatki.
"); len += format(motd[len], sizeof(motd) - len - 1, "Aby je zakupic, wpisz /mm."); len += format(motd[len], sizeof(motd) - len - 1, "

"); len += format(motd[len], sizeof(motd) - len - 1, ""); show_motd(id, motd, "MoneyMod Help"); } public forward_touch(toucher, touched) { if(!is_user_alive(toucher) || !is_user_alive(touched)) return; if(!get_cvar_num("amx_headsplash")) return; if(falling_speed[touched]) return; if(get_user_team(toucher) == get_user_team(touched) && !get_cvar_num("mp_friendlyfire")) return; new touched_origin[3], toucher_origin[3]; get_user_origin(touched, touched_origin); get_user_origin(toucher, toucher_origin); new Float:toucher_minsize[3], Float:touched_minsize[3]; pev(toucher,pev_mins,toucher_minsize); pev(touched,pev_mins,touched_minsize); if(touched_minsize[2] != -18.0) { if(!(toucher_origin[2] == touched_origin[2]+72 && toucher_minsize[2] != -18.0) && !(toucher_origin[2] == touched_origin[2]+54 && toucher_minsize[2] == -18.0)) { return; } } else { if(!(toucher_origin[2] == touched_origin[2]+68 && toucher_minsize[2] != -18.0) && !(toucher_origin[2] == touched_origin[2]+50 && toucher_minsize[2] == -18.0)) { return; } } if(falling_speed[toucher] >= MINIMUM_FALL_SPEED) { new Float:damage = ((falling_speed[toucher] - MINIMUM_FALL_SPEED + 30) * (falling_speed[toucher] - MINIMUM_FALL_SPEED + 30)) / 1300; if(damage > MAXIMUM_DAMAGE_FROM_JUMP) damage = MAXIMUM_DAMAGE_FROM_JUMP; func_dmgplayer(touched, toucher, damage); damage_after[toucher][touched] = 0.0; } if(is_user_alive(touched) && damage_after[toucher][touched] <= get_gametime()) { damage_after[toucher][touched] = get_gametime() + DELAY; func_dmgplayer(touched, toucher, DAMAGE); } } public func_dmgplayer(pwned, pwnzor, Float:damage) { if(idarmor[pwned] > 0) { new chance_num = random_num(1, 100); new chance_player= idarmor[pwned] * chance_armor; if(chance_num <= chance_player && 0 < pwnzor <= get_maxplayers()) { new name[64]; get_user_name(pwnzor, name, 63); damage = 0.0; SetHamParamFloat(3, damage); } } new health = get_user_health(pwned); if(get_user_team(pwned) == get_user_team(pwnzor)) damage /= 1.4; new CsArmorType:armortype; cs_get_user_armor(pwned, armortype); if(armortype == CS_ARMOR_VESTHELM) damage *= 0.7; if(health > damage) { new pwned_origin[3]; get_user_origin(pwned, pwned_origin); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(pwned_origin[0]+8); write_coord(pwned_origin[1]); write_coord(pwned_origin[2]+26); write_short(sprite_bloodspray); write_short(sprite_blood); write_byte(248); write_byte(4); message_end(); new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "trigger_hurt")); if(!ent) return; new value[16]; float_to_str(damage * 2, value, sizeof value - 1); set_kvd(0, KV_ClassName, "trigger_hurt"); set_kvd(0, KV_KeyName, "dmg"); set_kvd(0, KV_Value, value); set_kvd(0, KV_fHandled, 0); dllfunc(DLLFunc_KeyValue, ent, 0); num_to_str(DMG_GENERIC, value, sizeof value - 1); set_kvd(0, KV_ClassName, "trigger_hurt"); set_kvd(0, KV_KeyName, "damagetype"); set_kvd(0, KV_Value, value); set_kvd(0, KV_fHandled, 0); dllfunc(DLLFunc_KeyValue, ent, 0); set_kvd(0, KV_ClassName, "trigger_hurt"); set_kvd(0, KV_KeyName, "origin"); set_kvd(0, KV_Value, "8192 8192 8192"); set_kvd(0, KV_fHandled, 0); dllfunc(DLLFunc_KeyValue, ent, 0); dllfunc(DLLFunc_Spawn, ent); set_pev(ent, pev_classname, "head_splash"); dllfunc(DLLFunc_Touch, ent, pwned); engfunc(EngFunc_RemoveEntity, ent); } else { new pwned_origin[3]; get_user_origin(pwned, pwned_origin); message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_BLOODSPRITE); write_coord(pwned_origin[0]+8); write_coord(pwned_origin[1]); write_coord(pwned_origin[2]+26); write_short(sprite_bloodspray); write_short(sprite_blood); write_byte(248); write_byte(12); message_end(); set_pev(pwned, pev_frags, float(get_user_frags(pwned) + 1)); user_silentkill(pwned); make_deathmsg(pwnzor, pwned, 1, "his/her feet :)"); if(get_user_team(pwnzor) != get_user_team(pwned)) { set_pev(pwnzor, pev_frags, float(get_user_frags(pwnzor) + 1)); func_mm(pwnzor, mm_kill); } else { set_pev(pwnzor, pev_frags, float(get_user_frags(pwnzor) - 1)); } message_begin(MSG_ALL, get_user_msgid("ScoreInfo")); write_byte(pwnzor); write_short(get_user_frags(pwnzor)); write_short(cs_get_user_deaths(pwnzor)); write_short(0); write_short(get_user_team(pwnzor)); message_end(); message_begin(MSG_ALL, get_user_msgid("ScoreInfo")); write_byte(pwned); write_short(get_user_frags(pwned)); write_short(cs_get_user_deaths(pwned)); write_short(0); write_short(get_user_team(pwned)); message_end(); set_pev(pwned, pev_frags, float(get_user_frags(pwned) - 1)); } } /* ===========================STOCKS=========================== */ stock get_velocity_from_origin(ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3]) { new Float:fEntOrigin[3]; entity_get_vector(ent, EV_VEC_origin, fEntOrigin); // Velocity = Distance / Time new Float:fDistance[3]; fDistance[0] = fEntOrigin[0] - fOrigin[0]; fDistance[1] = fEntOrigin[1] - fOrigin[1]; fDistance[2] = fEntOrigin[2] - fOrigin[2]; new Float:fTime = (vector_distance( fEntOrigin,fOrigin ) / fSpeed); fVelocity[0] = fDistance[0] / fTime; fVelocity[1] = fDistance[1] / fTime; fVelocity[2] = fDistance[2] / fTime; return (fVelocity[0] && fVelocity[1] && fVelocity[2]); } stock set_velocity_from_origin(ent, Float:fOrigin[3], Float:fSpeed) { new Float:fVelocity[3]; get_velocity_from_origin(ent, fOrigin, fSpeed, fVelocity); entity_set_vector(ent, EV_VEC_velocity, fVelocity); return (1); } stock ColorChat(player, const textt[], any:...) { static szMessage[192]; vformat(szMessage, 191, textt, 3); replace_all(szMessage, 191, "!y", "^x01"); replace_all(szMessage, 191, "!t", "^x03"); replace_all(szMessage, 191, "!g", "^x04"); if(player==0) { new plist[32], playernum, player; get_players(plist, playernum); for(new i = 0; i < playernum; i++) { player = plist[i]; message_begin(MSG_ONE, msgsaytext, {0,0,0}, player); write_byte(player); write_string(szMessage); message_end(); } } else { message_begin(MSG_ONE, msgsaytext, {0,0,0}, player); write_byte(player); write_string(szMessage); message_end(); } }