Így jobb ?
Kód: #include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <nvault>
#define PLUGIN "Call of Duty: MW Mod"
#define VERSION "1.0-3"
#define AUTHOR "COD_Peyote"
#define MAX_QUANTITY_NAME 32
#define MAX_QUANTITY_OF 256
#define max_number_of_perks 120
#define MAX 100 number of classes
#define FAST_STANDARD 250.0
#define SHOW_INFORMATION_TASK 672
#define SHOW_TASK_ADVERTISING 768
#define FAST_SET_TASK 832
new const maxAmmo[31] = {0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120,
90, 2, 35, 90, 90,0, 100};
new MsgScreenfade;
new vault;
new SyncHudObj, SyncHudObj2;
new cvar_experience_for_murder,
cvar_experience_for_any_injury,
cvar_experience_a_win,
cvar_type_of_record,
cvar_limit_level,
cvar_ratio_level,
cvar_locking_arms;
new perk_changed,
changed_class;
new name_of_the_perks [Max_perks +1] [MAX_NAME SIZE +1],
descriptions_of_the_perks [Max_perks +1] [MAX_QUANTITY OF 1],
max_value_of_perks [MAX_perks 1],
min_value_of_perks [Max_perks 1],
perks_plugins [Max_perks 1],
number_of_perks;
new player_name [33] [64],
class_player [33],
class_of_player [33],
level_of_the_player [33],
player_experience [33],
perk_player [33],
Perk_value_of_the_player [33];
new Float: maximum_health_a_player [33],
Float: speed_sphincter [33],
Float: damage_reduction_of_the_player [33];
new player_points [33],
player_health [33],
intelligence_of_the_player [33],
Player_strength [33],
condition_of_the_player [33];
new bool: the_player_has_a_disc [33],
bool: the_player_has_a_night_vision [33];
new player_bonus_weapons [33],
player_bonus_Health [33],
player_bonus_Intelligence [33],
player_bonus_strength [33],
player_bonus_condition [33];
new class_of_weapons [MAX_number_of_classes 1],
classes_health [MAX_number_of_classes 1],
classes_fitness [MAX_number_of_classes 1],
classes_intelligence [MAX _number _of _classes 1],
classes_strength [MAX_number_of_classes 1],
class_names [MAX_number_of_classes 1] [MAX_QUANTITY_NAME 1],
classes_of_the_descriptions [MAX_number_of_classes 1] [MAX_OF_QUANTITY 1],
classes_plugin [MAX_number of classes 1],
classes_of_number;
new weapons teams [] = {0, 1 << CSW_GLOCK18, 1 << CSW_USP}
weapons allowed = 1 << CSW_KNIFE | 1 << CSW_C4;
new bool: freezetime = true;
public plugin_ini()
{
register_plugin (PLUGIN, VERSION, AUTHOR);
cvar_experience_for_the_murder = cvar_register ("cod_killxp", "10");
cvar_experience_for_the_damage = cvar_register ("cod_damagexp", "1") // amount of experience for 20 damage
cvar_experience_for_the_win = cvar_register ("cod_winxp", "50");
cvar_record_type = cvar_register ("cod_savetype", "2") // 1-Nick, two-SID Steam, 3-IP
cvar_limit_the_level = cvar_register ("cod_maxlevel", "200");
cvar_the_ratio_of_the_level = cvar_register ("cod_levelratio", "35");
cvar_Lock_arms = cvar_register ("cod_weaponsblocking", "1");
register_clcmd ("say /fegyo", "SelectClass");
register_clcmd ("say /fegyo", "SelectClass");
register_clcmd ("say /fegyo", "DescriptionClass");
register_clcmd ("say /ClassInfo", "DescriptionClass");
register_clcmd ("say /perk", "CommandDescriptionPerk");
register_clcmd ("say /perks", "Descriptionperks");
register_clcmd ("say /perks", "Descriptionperks");
register_clcmd ("say /item", "Help");
register_clcmd ("say /object", "DescriptionPerk");
register_clcmd ("say /drop", "DropPerk");
register_clcmd ("say /eject", "DropPerk");
register_clcmd ("say /reset ',' Resetcommandpoints");
register_clcmd ("say /stats", "AssignPoints");
register_clcmd ("say /stats", "AssignPoints");
register_clcmd ("say /help", "Help");
register_clcmd ("useperk", "UsePerk");
register_clcmd ("radio3", "UsePerk");
register_clcmd ("fullupdate", "BlockCommand '
register menucmd (register menuid ("fegyo"), 1023,);
RegisterHam (Ham_TakeDamage, "player", "Damage");
RegisterHam (Ham_TakeDamage, "player", "DamagePost", 1);
RegisterHam (Ham_Spawn, "player", "Revival", 1);
RegisterHam (Ham_Killed, "player", "PlayerDeathPost", 1);
RegisterHam (Ham_Touch, "armoury_entity", "TouchArms");
RegisterHam (Ham_Touch, "weapon_shield", "TouchShield");
RegisterHam (Ham_Touch, "weaponbox", "TouchArms");
register_forward (FM_CmdStart, "CmdStart");
register_forward (FM_EmitSound, "EmitSound");
register_message (get_user_msgid ("Health"), "MessageHealth");
register_logevent ("Inful a kor", 2, "1 = Round_Start");
register_event ("SendAudio", "WygranaTerro", "a", "2 &%! MRAD_terwin");
register_event ("SendAudio", "WygranaCT", "a", "2 &%! MRAD_ctwin");
register_event ("CurWeapon", "CurWeapon", "be", "1 = 1");
register_event ("HLTV", "NowaRunda", "a", "1 = 0", "2 = 0");
vault = nvault_open ("CodMod");
MsgScreenfade = get_user_msgid ("ScreenFade");
CreateHudSyncObj SyncHudObj = ();
CreateHudSyncObj SyncHudObj2 = ();
perk_zmieniony = CreateMultiForward ("cod_perk_changed" ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL);
klasa_zmieniona = CreateMultiForward ("cod_class_changed" ET_CONTINUE, FP_CELL, FP_CELL);
copy (nazwy_perkow [0], MAX_WIELKOSC_NAZWY, "No");
copy (opisy_perkow [0], MAX_WIELKOSC_OPISU, "Kill someone, to get the object");
copy (nazwy_klas [0], MAX_WIELKOSC_NAZWY, "No");
set_task (1.0, "plugin_cfg");
}
public plugin_cfg ()
{
new location cfg [33];
get configsdir (location cfg, charsmax (location cfg));
server cmd ("exec% s / codmod.cfg" location cfg);
server exec ();
}
public plugin_precache()
{
precache_sound("COD_CodMod/select.wav");
precache_sound("COD_CodMod/start.wav");
precache_sound("COD_CodMod/start2.wav");
precache_sound("COD_CodMod/levelup.wav");
}
public plugin_natives ()
{
register_native ("cod_set_user_xp", "SetExperience", 1);
register_native ("cod_set_user_class", "SetClass", 1);
register_native ("cod_set_user_perk", "SetPerk", 1);
register_native ("cod_set_user_bonus_health", "SetBonusHealth", 1);
register_native ("cod_set_user_bonus_intelligence", "SetBonusintelligence", 1);
register_native ("cod_set_user_bonus_trim", "SetBonusSituation", 1);
register_native ("cod_set_user_bonus_stamina", "ThedurabilitySetBonus", 1);
register_native ("cod_points_to_health", "GrantHealth", 1);
register_native ("cod_points_to_intelligence", "Grantintelligence", 1);
register_native ("cod_points_to_trim", "GrantCondition", 1);
register_native ("cod_points_to_stamina", "Assigndefensivepower", 1);
register_native ("cod_get_user_xp", "DownloadExperience", 1);
register_native ("cod_get_user_level", "DownloadLevel", 1);
register_native ("cod_get_user_points", "GetPoints", 1);
register_native ("cod_get_user_class", "GetClasses", 1);
register_native ("cod_get_user_perk", "DownloadPerk", 1);
register_native ("cod_get_user_health", "GetHealth ", 1);
register_native ("cod_get_user_intelligence", "DownloadIntelligence", 1);
register_native ("cod_get_user_trim", "GetCondition", 1);
register_native ("cod_get_user_stamina", "GetThedurability", 1);
register_native ("cod_get_level_xp", "GetyourExperienceLevel", 1);
register_native ("cod_get_perkid", "DownloadPerkbyName", 1);
register_native ("cod_get_perks_num", "Getnumberperks", 1);
register_native ("cod_get_perk_name," "GetnamePerk", 1);
register_native ("cod_get_perk_desc", "DownloadDescriptionPerk", 1);
register_native ("cod_get_classid", "GetClassesbyName", 1);
register_native ("cod_get_classes_num", "DownloadIresidueclasses", 1);
register_native ("cod_get_class_name", "GetClassName", 1);
register_native ("cod_get_class_desc", "DownloadDescriptionClass", 1);
register_native ("cod_get_class_health", "Get Health Class", 1);
register_native ("cod_get_class_intelligence", "DownloadIntelligencesClass", 1);
register_native ("cod_get_class_trim", "Download the conditionClass", 1);
register_native ("cod_get_class_stamina", "GetThedurabilityClass", 1);
register_native ("cod_give_weapon", "GiveWeapon", 1);
register_native ("cod_take_weapon", "Grabagun", 1);
register_native ("cod_set_user_shield", "UseShields", 1);
register_native ("cod_set_user_nightvision", "SetNightVision", 1);
register_native ("cod_inflict_damage", "Damages", 1);
register_native ("cod_register_perk", "SignPerk");
register_native ("cod_register_class", "RegisterClasses");
public CmdStart (id, uc_handle)
{
if (! is_user_alive (id))
IGNORED FMRES return;
new Float: velocity [3];
PEV (id, pev_velocity, velocity);
new Float: speed = vector_length (velocity);
if (szybkosc_gracza [id]> speed * 1.8)
set_pev (id, pev_flTimeStepSound, 300);
return FMRES_IGNORED;
}
public Rebirth (id)
{
if (! task_exists (id + ZADANIE_POKAZ_INFORMACJE))
set_task (0.1, "Show Info", id + TASK_Show_Info, _, _, "b");
if (new_class_of_player [id])
SetTheNewClass(id);
if (! klasa_gracza [id])
{
SelectAClass(id);
return PLUGIN_CONTINUE;
}
GiveWeapons (id);
ApplyAttributes (id);
if (Player_Points [id]> 0)
AssignPoints (id);
return PLUGIN_CONTINUE;
}
public SetTheNewClass(id)
{
new ret;
new forward_handle = CreateOneForward (plugins_class [class_player [id]], "cod_class_disabled" FP_CELL, FP_CELL);
ExecuteForward (forward_handle, ret, id, class_player [id]);
DestroyForward (forward_handle);
forward_handle = CreateOneForward (plugin_classes [new_class_of_player [id]], "cod_class_enabled" FP_CELL, FP_CELL);
ExecuteForward (forward_handle, ret, id, new_class_of_player [id]);
DestroyForward (forward_handle);
if (ret == 4)
{
class_player [id] = 0;
return PLUGIN_CONTINUE;
}
ExecuteForward (class_changed, ret, id, class_player [id]);
if (ret == 4)
{
class player [id] = 0;
return PLUGIN_CONTINUE;
}
class_player [id] = new_class_player [id];
new_class_of_player [id] = 0;
SetPerk(id, drum_player [id], the_value_Perk_player [id], 0);
LoadData(id, class_player [id]);
return PLUGIN_CONTINUE
}
public GiveWeapons()
{
for (new i = 1, i <32; i + +)
{
if ((1 << i) & (weapons_class [class_player [id]] | bonus_weapons_player [id]))
{
new weaponname [22];
get_weaponname (and, weaponname, 21);
fm_give_item (id, weaponname);
}
}
if (player_has_disc [id])
fm_give_item (id, "weapon_shield");
if (player_has_ightvision [id])
cs_set_user_nvg (id, 1);
new weapons [32];
new weaponsnum;
get_user_weapons (id, weapons, weaponsnum);
for (new i = 0; i <weaponsnum; i + +)
if (is_user_alive (id))
if (maxAmmo [weapons [and]]> 0)
cs_set_user_bpammo (id, weapons [i], maxAmmo [weapons [i]]);
}
public ApplyAttributes()
{
reduce_damage_player [id] = 0.7 * (1.0-floatpower (1.1, -0.112311341 * Download Strength (id, 1, 1, 1)));
player_maximum_health [id] = 100.0 + GetHealth (id, 1, 1, 1);
Player_speed [id] = STANDARD_FAST + DownloadCondition (id, 1, 1, 1) * 1.3;
set_pev (id, pev_health, player_maximum_health [id]);
}
public StartOfRound()
{
freezetime = false;
for (new id = 0, d <= 32, id + +)
{
if (! is_user_alive (id))
continue;
Display_Fade (id, 1 << 9, 1 << 9, 1 << 12, 0, 255, 70, 100);
set_task (0.1, "Set Speed", id + TASK MAKE FAST);
switch (get_user_team (id))
{
case 1: client_cmd (id, "spk COD_CodMod/start2");
case 2: client_cmd (id, "spk COD_CodMod / start");
}
}
}
public NewRound()
{
freezetime = true;
}
public Damage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_alive(idattacker))
return HAM_IGNORED;
if(get_user_team(this) == get_user_team(idattacker))
return HAM_IGNORED;
if(get_user_health(this) <= 1)
return HAM_IGNORED;
SetHamParamFloat(4, damage*(1.0-reduce_damage_player[this]));
return HAM_IGNORED;
}
public DamagePost (id, idinflictor, attacker, Float: damage, damagebits)
{
if (! is_user_connected (attacker) | |! class_player [attacker])
HAM_IGNORED return;
if (get_user_team (id)! = get_user_team (attacker))
{
new experience_for_injuries = get_pcvar_num (cvar_experience_for_injuries);
while (damage> 20)
{
damage - = 20;
player_experience [attacker] + = experience_for_injuries;
}
}
SeeLevel (attacker);
return HAM_IGNORED;
}
public PlayerDeathPost (id, attacker, shouldgib)
{
if (! is_user_connected (attacker))
return HAM_IGNORED;
if (get_user_team (id)! = get_user_team (attacker) && class_player [attacker])
{
new experience_for_killing = get_pcvar_num (cvar_experience_for_murder);
new new_experience = get_pcvar_num (cvar_experience_for_murder);
if (player_level [id]> levels_player [attacker])
new_experience + = (player_level [id] - level_player [attacker]) * (experience_for_murder/10);
if (! perk player [attacker])
SetPerk (attacker, -1, -1, 1);
player_experience [attacker] + = new_experience;
}
SeeLevel(attacker);
return HAM_IGNORED;
}
}
public MessageHealth(msg_id, msg_dest, msg_entity)
{
static health;
health = get_msg_arg_int(1);
if (health < 256) return;
if (!(health % 256))
set_pev(msg_entity, pev_health, pev(msg_entity, pev_health)-1);
set_msg_arg_int(1, get_msg_argtype(1), 255);
}
public client_authorized (id)
{
RemoveSkills (id);
get_user_name (id, name a player [id], 63);
UsunZadania (id);
set_task (10.0, "ShowAd", id + ADVERTISING_SHOW_TASK);
}
public client_disconnect (id)
{
SaveData (id);
RemoveSkills (id);
DeleteTasks (id);
}
public DeleteSkills (id)
{
new_class_of_player [id] = 0;
SetTheNewClass (id);
class_player [id] = 0;
level_of_the_player [id] = 0;
experience_of_the_player [id] = 0;
Player_Points [id] = 0;
health_of_the_player [id] = 0;
intelligence of_the_player [id] = 0;
Player_strength [id] = 0;
condition_of_the_player [id] = 0;
Health_bonus_player [id] = 0;
strength_bonus_player [id] = 0;
Intelligence_bonus_the_player [id] = 0;
condition_of_the_player_bonus [id] = 0;
player_maximum_health [id] = 0.0;
Player_speed [id] = 0.0;
SetPerk(id, 0, 0, 0);
}
public DeleteTasks (id)
{
remove_task (id + INFORMATION SHOW TASK);
remove_task (id + ADVERTISING SHOW TASK);
remove_task (id + TASK MAKE FAST);
}
public TerroristWin ()
WinRound ("TERRORIST");
public WinningCT ()
WinRound ("CT");
public WinRound (Team const [])
{
new Players [32], playerCount, id;
get_players (Players, playerCount, "AEH" Team);
new experience_for_the_win = get_pcvar_num (cvar_experience_to_win);
if (get_playersnum () <3)
return;
for (new i = 0; i <playerCount; i + +)
{
id = Players [i];
if (class_player [id])
continue;
experience_of_the_player [id] + = winning_experience;
client_print (id, print_chat, "[COD: MW] l got% and experience by winning the round." experience_for_the_win);
SeeLevel(id);
}
}
public CommandDescriptionPerk (id)
DescriptionPerk (id, drum player [id], the_value_Perk_player [id]);
public DescriptionPerk (id, drum, value)
{
new description_Perk [MAX DESCRIPTION QUANTITY];
new random_value [15];
if (value> -1)
num_to_str (value, random_value, 14);
else
format (random_value, charsmax (random_value), "% i-% i", min_value_of_perks [perk], maximum_values_of_perks [perk]);
format (description_Perk, charsmax (description_Perk), descriptions_of_perks [perk]);
replace_all (description_Perk, charsmax (description_Perk), "LW", a_random_value);
client_print (id, print_chat, "Perk:% s", name_of_the_perks [perk]);
client_print (id, print_chat, "Description:% s", description_Perk);
}
public DescriptionOfPerks (id)
{
menu = new menu_create ("Select Perk:", "DescriptionPerks_Handle");
for (new i = 1, i <= number_of_perks, i + +)
menu_additem (menus, names_perks [i]);
menu_setprop (menus, MPROP_EXITNAME, "Exit");
menu_setprop (menus, MPROP_BACKNAME, "Previous Page");
menu_setprop (menus, MPROP_NEXTNAME, "next page");
menu_display (id, menu);
client_cmd (id, "spk COD_CodMod / select");
}
public DescriptionPerkow_Handle (id, menu, item)
{
if (item == MENU_EXIT + +)
{
menu_destroy (menu);
return PLUGIN_CONTINUE;
}
DescriptionPerk (id, item, -1);
DescriptionOfPerks perks (id);
return PLUGIN_CONTINUE;
}
public Descriptionclass (id)
{
menu = new menu_create ("Choose_class:", "DescriptionClass_Handle");
for (new i = 1, i <= ilosc_klas; i + +)
menu_additem (menus, class names [i]);
menu_setprop (menus, MPROP_EXITNAME, "Exit");
menu_setprop (menus, MPROP_BACKNAME, "Previous Page");
menu_setprop (menus, MPROP_NEXTNAME, "next page");
menu_display (id, menu);
client_cmd (id, "spk COD_CodMod/select");
}
public DescriptionClass_Handle (id, menu, item)
{
client_cmd (id, "spk COD_CodMod / select");
if (item == MENU_EXIT + +)
{
menu_destroy (menu);
return PLUGIN_CONTINUE;
}
new weapons [320];
for (new i = 1, n = 1 and <= 32; i + +)
{
if ((1 << i) & bronie_klasy [item])
{
new weaponname [22];
get_weaponname (and, weaponname, 21);
replace_all (weaponname, 21, "weapon_", "");
if (n> 1)
add (weapons, charsmax (weapons), "");
add (weapons, charsmax (weapons), weaponname);
n + +;
}
}
new description of the [416 + MAX_WIELKOSC_OPISU];
format (description, charsmax (description), "\sClass: \w%s^n\yInteligencja: \w%i^n\sHealth: \w%i^n\yDurability: \w%i^n\sConstitution: \w%i^n\yWeapons: \w%s^n\yNotes: \a%s^n%s", name _class [Item], intellectuals_classes [item], health_classes [item ], strength classes [item], fitness classes [item], weapons, class descriptions [item], descriptions of the classes [item] [79]);
show_menu (id, 1023, description);
return PLUGIN_CONTINUE;
}
public Selectclass (id)
{
menu = new menu_create ("Choose class:", "Selectclass_Handle");
new class [50];
for (new i = 1, i <= number of classes, i + +)
{
LoadData(id, i);
format (Class, charsmax (class), "%s\yLevel:: %i", class_names [i], level_player [id]);
menu_additem (menus, class);
}
LoadData(id, class_player [id]);
menu_setprop (menus, MPROP_EXITNAME, "Exit");
menu_setprop (menus, MPROP_BACKNAME, "Previous Page");
menu_setprop (menus, MPROP_NEXTNAME, "next page");
menu_display (id, menu);
client_cmd (id, "spk COD_CodMod / select");
}
public ChooseKlase_Handle (id, menu, item)
{
client_cmd (id, "spk COD_CodMod / select");
if (item == MENU_EXIT + +)
{
menu_destroy (menu);
return PLUGIN_CONTINUE;
}
if (item == class_player [id] &&! new_class_player [id])
return PLUGIN_CONTINUE;
new_class_player [id] = item;
if (class_player [id])
client_print (id, print_chat, "[COD: MW] Class will be changed in the next round.");
else
{
SetNowaKlase (id);
GiveWeapons (id);
ApplyAttributes (id);
}
return PLUGIN_CONTINUE;
}
Public Assign points (d)
{
new intelligence [65];
new health [60];
new strength [60];
new condition [60];
new title [25];
format (intelligence, charsmax (intelligence), "Intelligence: \r%i \y (increases class perks and abilities)," GetIntelligences (id, 1, 1, 1));
format (health, charsmax (health), "Health: \r%i \y (Increases health)", DownloadHealth (id, 1, 1, 1));
format (strength, charsmax (strength), "Durability: \r%i \y (reduces damage)," GetStrength (id, 1, 1, 1));
format (condition, charsmax (condition), "Situation: \r%i \y (accelerating the pace of walking)," GetCondition (id, 1, 1, 1));
format (title, charsmax (title), "Assign Points (% s)", player_Points[id]);
new menu = menu_create (title, "AssignPoints_Handler");
menu_additem (menu, intelligence);
menu_additem (menus, health);
menu_additem (menus, endurance);
menu_additem (menu, condition);
menu_setprop (menus, MPROP_EXIT, 0);
menu_display (id, menu);
}
public Assignpoints_Handler (id, menu, item)
{
client_cmd (id, "spk COD_CodMod / select");
if (item == MENU_EXIT)
{
menu_destroy (menu);
return PLUGIN_CONTINUE;
}
if (player_points [id] <1)
return PLUGIN_CONTINUE;
new limit_level = get_pcvar_num (cvar_limit_levels);
switch (item)
{
case 0:
{
if (player_intelligence [id] <limit_level/2)
{
intelligence_player [id];
Player_Points [id] -;
}
else
client_print (id, print_chat, "[COD: MW] Intermittent level of intelligence reached");
}
case 1:
{
if (player_health [id] <limit_level/2)
{
health_player [id];
Player_Points [id] -;
}
else
client_print (id, print_chat, "[COD: MW] Intermittent force level reached");
}
case 2:
{
if (player_strength [id] <limit_level/2)
{
Player strength [id];
Player Points [id] -;
}
else
client_print (id, print_chat, "[COD: MW] Intermittent level of skill achieved");
}
case 3:
{
if (condition_player [id] <limit_level/2)
{
condition_player [id];
Player_Points [id] -;
}
else
client_print (id, print_chat, "[COD: MW] Intermittent level of fitness achieved");
}
}
if (player points [id]> 0)
Assignpoints(id);
return PLUGIN_CONTINUE;
}
public ResetCommandPoints (id)
{
client_print (id, print_chat, "[COD: MW] skills will be reset.");
client_cmd (id, "spk COD_CodMod/select");
ResetPoints (id);
}
public ResetPoints (d)
{
Player_Points [id] = (player_level [id] -1) * 2;
intelligence_player [id] = 0;
health_player [id] = 0;
condition_player [id] = 0;
Player_strength [id] = 0;
if (player_points [id])
Assignpoints (id);
}
public CurWeapon (id)
{
if (! is_user_connected (id))
return;
new team = get_user_team (id);
if (team> 2)
return;
new weapon = read_data (2);
new weapons = (weapons_class [class_player [id]] | bonus weapons a player [id] | weapons_teams [team] | weapons_allowed);
if ((1 << weapons & weapons))
{
new weaponname [22];
get_weaponname (harrows, weaponname, 21);
ham_strip_weapon (id, weaponname);
}
if (cs_get_user_shield (id) &&! disc_player_is [id])
engclient_cmd (id, "drop", "weapon_shield");
SetSpeed ??(id);
}
public EmitSound (id, iChannel, szSound [], Float: fVol, Float: fAttn, iFlags, iPitch)
{
if (! is_user_alive (id))
FMRES_IGNORED return;
if (equal (szSound, "common / wpn_denyselect.wav"))
{
new forward_handle = CreateOneForward (plugins_class [class_player [id]], "cod_class_skill_used" FP_CELL);
ExecuteForward (forward_handle, id, id);
DestroyForward (forward_handle);
FMRES_SUPERCEDE return;
}
if (equal (szSound, "items/ammopickup2.wav"))
{
cs_set_user_armor (id, 0, CS_ARMOR_NONE);
FMRES_SUPERCEDE return;
}
if (equal (szSound, "items/equip_nvg.wav") && !player_has_nightvision [id])
{
cs_set_user_nvg (id, 0);
FMRES_SUPERCEDE return;
}
return FMRES_IGNORED;
}
public UsePerk (id)
{
if (! is_user_alive (id))
return PLUGIN_HANDLED;
new forward_handle = CreateOneForward (plugins_perks [drum_player [id]], "cod_perk_used" FP_CELL);
ExecuteForward (forward_handle, id, id);
DestroyForward (forward_handle);
return PLUGIN_HANDLED;
}
public Saveinformation (id)
{
if (class_player [id])
return PLUGIN_CONTINUE;
new vaultkey [128], VAULTDATA [256], id [64];
format (VAULTDATA, charsmax (VAULTDATA), "#%i#%i#%i#%i#%i#%i", experience_player [id], level_player [id], intelligent_player [id], health_player [id], endurance_player [id], condition_player [id]);
new record_type = get_pcvar_num (cvar_type_record);
switch (record_type)
{
case 1: copy (id, charsmax (ID), name_player [id]);
case 2: get_user_authid (id, id, charsmax (id));
case 3: get_user_ip (id, id, charsmax (id));
}
format (vaultkey, charsmax (vaultkey), "%s-%s-%i-cod", id, nameclass [class_player [id]], type_record);
nvault set (vault, vaultkey, VAULTDATA);
return PLUGIN_CONTINUE;
}
public LoadData (id, class)
{
new vaultkey [128], VAULTDATA [256], id [64];
new record_type = get_pcvar_num (cvar_type_record);
switch (record_type)
{
case 1: copy (id, charsmax (ID), nazwa_gracza [id]);
case 2: get_user_authid (id, id, charsmax (id));
case 3: get_user_ip (id, id, charsmax (id));
}
format (vaultkey, charsmax (vaultkey), "%s-%s-%i-cod", id, name_class [class], type_record);
if (! nvault_get (vault, vaultkey, VAULTDATA, 255)) // If there is no data verifies the old record player.
{
format (vaultkey, charsmax (vaultkey), "%s-%i-cod" Name_player [id], class);
nvault_get (vault, vaultkey, VAULTDATA, 255);
}
replace_all (VAULTDATA, 255, "#", "");
new danegracza [6] [32];
parse (VAULTDATA, danegracza [0], 31, danegracza [1], 31, danegracza [2], 31, danegracza [3], 31, danegracza [4], 31, danegracza [5], 31);
experience_player [id] = str_to_num (danegracza [0]);
level_player [id] = str_to_num (danegracza [1])> 0? str_to_num (danegracza [1]): 1;
intelligence_player [id] = str_to_num (danegracza [2]);
health_player [id] = str_to_num (danegracza [3]);
Player_strength [id] = str_to_num (danegracza [4]);
condition_player [id] = str_to_num (danegracza [5]);
Player_Points [id] = (player_level [id] -1) *2-player_intelligence [id]-heal_player [id] - durability_player [id] -condition_player [id];
return PLUGIN_CONTINUE;
}
public DropPerk (id)
{
if (drum_player [id])
{
client_print (id, print_chat, "[COD: MW] threw%s", name_perks [drum_player [id]]);
SetPerk (id, 0, 0, 0);
}
else
client_print (id, print_chat, "[COD: MW] You have no Perk.");
}
public Checklevel(id)
{
if (! is_user_connected (id))
return;
new limit level = get_pcvar_num (cvar_limit_levels);
new bool: won the level = false, bool: lost_level = false;
while (player experience [id]> = GetExperienceLevel (level player [id]) && level of the player [id] <limit level)
{
level of the player [id] + +;
Player Points [id] = (player level [id] -1) * 2-player_intelligence [id]-health_player [id]-strength_player [id]-standing_player [id];
captured level = true;
}
while (player_experience [id] <GetExperiencedePoziomu (level_player [id] -1))
{
level_player [id] -;
lost_level = true;
}
if (player_level [id]> limit_level)
{
level_player [id] = limit_level;
ResetPoints (d);
}
if (lost levels)
{
Reset Points (d);
set_hudmessage (212, 255, 85, 0.31, 0.32, 0, 6.0, 5.0);
ShowSyncHudMsg (id, SyncHudObj2, "you have fallen to% and level", the level of the player [id]);
}
else if (captured level)
{
Player Points [id] = (player level [id] -1) * 2-player intelligence [id]-health player [id]-strength player [id]-standing player [id];
set_hudmessage (212, 255, 85, 0.31, 0.32, 0, 6.0, 5.0);
ShowSyncHudMsg (id, SyncHudObj2, "% i got promoted to the level", the level of the player [id]);
client_cmd (id, "spk COD_CodMod / levelup");
}
SaveData(id);
}
public Viewinformation (id)
{
id - = PROBLEM_SHOW_INFORMATION;
if (! is_user_connected (id))
{
remove_task (id + INFORMATION SHOW TASK);
return PLUGIN_CONTINUE;
}
if (! is_user_alive (id))
{
new target = PEV (id, pev_iuser2);
if (target)
return PLUGIN_CONTINUE;
set_hudmessage (255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg (id, SyncHudObj, "Class: %s^nExperience: %i / %i^nLevel: %i^nPerk: %s", name_class [class_player [target]], player_experience [target], Download_Experience_level (level_player [target]), level_player [target], name_perks [drum_player [target]]);
return PLUGIN_CONTINUE;
}
set_hudmessage (0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg (id, SyncHudObj, "[Class: %s] ^n[Experience: %i / %i] ^n[Level: %i] ^n[Perk: %s]", name_class [class_player [id] ], experience_player [id], Download_experience_level (level_player [id]), level_player [id], name_perks [drum_player [id]]);
return PLUGIN_CONTINUE;
}
public ShowAd (id)
{
id = TASK_Show_Ad;
client_print (id, print_chat, "[COD: MW] Welcome to the Call of Duty Modification created by QTM_Peyote");
client_print (id, print_chat, "[COD: MW] For more information on the commands type / help.");
}
Public Assistance (id)
show_menu (id, 1023, "\y/reset\w - resets the statistics^n\y/Stats\w - displays statistics^n\y/class\w - starts the selection of classes^n\y/eject\w - throws perk^n\y/perk\w - shows a description of your Perk^n\y/classes\w - shows the descriptions of the classes^n\s+use\w - the skill class^n\yradio3\ in (typically C) or \yuseperk \ w - Use Perk ", -1," Help ");
public SetSpeed ??(id)
{
id - id => 32? TASK SET Speed: 0;
if (class_player [id] &&! freezetime)
set_pev (id, pev_maxspeed, player_speed [id]);
}
public touchweapon (weapon, id)
{
if (get_pcvar_num (cvar locking arms) <1)
return HAM_IGNORED;
if (! is_user_connected (id))
return HAM_IGNORED;
new model [23];
PEV (weapon, pev_model, model, 22);
if (PEV (weapon, pev_owner) == id | | containi (model, "w_backpack")! = -1)
return HAM_IGNORED;
return HAM_SUPERCEDE;
}
Public Touch Shield (weapon, id)
{
if (get_pcvar_num (cvar_blokada_broni) <1)
return HAM_IGNORED;
if (! is_user_connected (id))
return HAM_IGNORED;
if (gracz_ma_tarcze [id])
return HAM_IGNORED;
return HAM_SUPERCEDE;
}
public SetPerk (id, perk, value, show info)
{
if (! ilosc_perkow)
return PLUGIN_CONTINUE;
static turnover [33];
if (speed [id] + +> = 5)
{
SetPerk (id, 0, 0, 0);
speed [id] = 0;
return PLUGIN_CONTINUE;
}
= perk (perk == -1)? random_num (1, number_perks): perk;
value = (value == -1 | | minute_value_perks [perk]> value | | value> max_wartosci perks [perk])? random_num (min_value_perks [perk], maximum_values_perks[perk]): value;
new ret;
new forward_handle = CreateOneForward (plugins_perks [drum_player [id]], "cod_perk_disabled" FP_CELL, FP_CELL);
ExecuteForward (forward_handle, ret, id, perk);
ForwardDestroy (forward_handle);
perk_player [id] = 0;
forward_handle = CreateOneForward (plugins_perks [perk], "cod_perk_enabled" FP_CELL, FP_CELL, FP_CELL);
ExecuteForward (forward_handle, ret, id, value, perk);
ForwardDestroy (forward_handle);
if (ret == 4)
{
SetPerk (id, -1, -1, 1);
return PLUGIN_CONTINUE;
}
Execute Forward (perk_changed, ret, id, drum, value);
if (ret == 4)
{
SetPerk (id, -1, -1, 1);
return PLUGIN_CONTINUE;
}
perk_player [id] = perk;
Perk_value_player [id] = value;
speed [id] = 0;
if (Show_info perk_player && [id])
client_print (id, print_chat, "[COD: MW] You got% s", name_perks [drum_player [id]]);
RETURN PLUGIN_CONTINUE;
}
public SetExperience (id, value)
{
experience_player [id] = value;
Checklevel (id);
}
Set a public class (id, class, change)
{
new class of player [id] = class;
if (variable)
{
SetANewClass (id);
GiveWeapons (id);
ApplyAttributes (id);
}
}
public SetShields (id, value)
{
if ((player_has_a_disc [id] = (value> 0)))
fm_give_item(id, "weapon_shield");
}
public SetVision (id, value)
{
if ((player_has_a_nightvision [id] = (value> 0)))
cs_set_user_nvg (id, 1);
}
public GiveBron (id, weapon)
{
Bonus_weapons_player [id] | = (1 << weapon);
new weaponname [22];
get_weaponname (harrows, weaponname, 21);
fm_give_item return (id, weaponname);
}
public GrabGun (id, weapon)
{
Bonus_weapons_player [id] & = ~ (1 << weapon);
if ((1 << weapon) & (authorized_weapons | Weapons_class [get_user_team (id)] | Weapons_class [class_player [id]]))
return;
new weaponname [22];
get_weaponname (harrows, weaponname, 21);
if (((1 << weapon) & (1 << CSW_HEGRENADE | 1 << CSW_SMOKEGRENADE | 1 << CSW_FLASHBANG)))
engclient_cmd (id, "drop", weaponname);
}
public SetBonusHealth (id, value)
bonus_Health_player [id] = value;
public SetBonusIntelligence (id, value)
bonus_Intelligence_player [id] = value;
public SetBonusCondition (id, value)
bonus_condition_player [id] = value;
public SetBonusStrength (id, value)
bonus_strength_player [id] = value;
public HealthGrant (id, value)
{
new max_statistic = get_pcvar_num (cvar_limit_poziomu) / 2;
value = min (min (Player_Points [id], value), max_player-statistics_health [id]);
Player_Points [id] - = value;
health_player [id] + = value;
}
public AssignIntelligences (id, value)
{
new max_statystyka = get_pcvar_num (cvar_limit_poziomu) / 2;
value = min (min (Player Points [id], value), max_stats, intelligence_player [id]);
Player_Points [id] - = value;
intelligence_player [id] + = value;
}
public ConditionAssign (id, value)
{
new max_statystyka = get_pcvar_num (cvar_limit_level) / 2;
value = min (min (Player_Points [id], value), max_standing-player_statistics [id]);
Player_Points [id] - = value;
condition_player [id] + = value;
}
public Assignstrength (id, value)
{
new max_statistic = get_pcvar_num (cvar_limit_level) / 2;
value = min (min (punkty_gracza [id], value), max_strength-player_statistics [id]);
Player_Points [id] - = value;
Player_strength [id] + = value;
}
Public Download Perk (id, & value)
{
value = value_perk_player [id];
return perk player [id];
}
public PobierzIloscperks ()
return number_perks;
public GetNamePerk (Perk, Return [], len)
{
if (perk <= number_perks)
{
param_convert (2);
copy (Return, len, name_perks [perk]);
}
}
public DownloadDescriptionPerk (Perk, Return [], len)
{
if (perk <= number of perks)
{
param_convert (2);
copy (Return, flax, descriptions_perks [perk]);
}
}
public DownloadPerkByName (const name [])
{
param_convert (1);
for (new i = 1, i <= number_perks, i + +)
if (equal (name, name_perks [i]))
return i;
return 0;
}
public DownloadExperience Level (level)
return power (level 2) * get_pcvar_num (cvar_ratio_level);
public DownloadExperience (id)
return player_experience [id];
public DownloadPoints (id)
return player_points [id];
public TheLevelGet (id)
return level_player [id];
Download Public Health (id, health lessons, health classes, health bonus)
{
New Health;
if (health_gained)
health += player_health [id];
if (health_bonus)
health += bonus_player_health[id];
if (healt_class)
health += health_class [class_player [id]];
return health;
}
public DownloadIntelligences (id, intelligence_gained, intelligence_class, intelligence_bonus)
{
new intelligence;
if (captured_intellectuals)
intelligence += intelligence_player [id];
if (intelligence bonus)
Intelligence += Intelligence_Bonus_Player = [id];
if (inteligencja_klasy)
intelligence += intelligence_class [class player [id]];
return intelligence;
}
public Downloadcondition (id, condition_scored, condition_class, condition_bonus)
{
new condition;
if (condition_scored)
condition += condition_player [id];
if (condition_bonus)
condition += bonus_condition_player [id];
if (condition_classes)
condition += fitness_classes [class_player [id]];
return condition;
}
public Downloadstrength (id, wytrzymalosc_zdobyta, wytrzymalosc_klasy, wytrzymalosc_bonusowa)
{
new strength;
if (strength_gained)
strength += durability_player [id];
if (strength_bonus)
strength += endurance_bonus_player [id];
if (strength_class)
strength += durability_class [class_player [id]];
return strength;
}
public Getclass (id)
return class_player [id];
public GetNumberClasses ()
return number_classes;
public GetClassName (class, Return [], len)
{
if (grade <= number_classes)
{
param_convert (2);
copy (Return, len, name_class [class]);
}
}
public GetDescriptionClasses (Class, Return [], len)
{
if (grade <= number_classes)
{
param_convert (2);
copy (Return, flax, descriptions_classes [class]);
}
}
Public DownloadClassesByName (const name [])
{
param_convert (1);
for (new i = 1, i <= ilosc_klas; i + +)
if (equal (name, class_names [i]))
return i;
return 0;
}
public DownloadHealthClass (Class)
{
if (grade <= ilosc_klas)
return health_classes [class];
return -1;
}
public DownloadIntelligences Class (Class)
{
if (grade <= ilosc_klas)
return intelligentsia_class [class];
return -1;
}
public DownloadConditionClasses (class)
{
if (grade <= ilosc_klas)
return condition_class [class];
return -1;
}
public DownloadTheDurabilityClass (class)
{
if (grade <= ilosc_klas)
return strength_classes [class];
return -1;
}
public AskDamage (attacker, victim, Float: damage, Float: agent_intelligence, being damaging, additional flags)
ExecuteHam (Ham_TakeDamage, the victim, being damaging, attacking, damage +DownloadIntelligences (attacker, 1, 1, 1) * factor_intelligence, (1 << 31) | additional_flags);
public RegisterPerk (plugin, params)
{
if (params! = 4)
return PLUGIN_CONTINUE;
if (+ + number of perks> MAX_ILOSC_PERKOW)
return -1;
perks plugins [number_perks] = plugin;
get_string (1, perks_name [number of perks], MAX_WIELKOSC_NAZWY);
get_string (2, descriptions_perks [ilosc_perkow] MAX_WIELKOSC_OPISU);
min_value_perks [number_perks] = get_param (3);
max_value_perks [number_perks] = get_param (4);
return ilosc_perkow;
}
public RegisterClass (plugin, params)
{
if (params! = 7)
return PLUGIN_CONTINUE;
if (+ + number_classes> MAX_ILOSC_KLAS)
return -1;
plugin_classes [class_number] = plugin;
get_string (1, name_class [class_number], MAX_WIELKOSC_NAZWY);
get_string (2, descriptions_classes [class_number], MAX_WIELKOSC_OPISU);
Weapons_class [class_number] = get_param (3);
health_classes [class_number] = get_param (4);
condition_class [class_number] = get_param (5);
intelligence_classes [class_number] = get_param (6);
strength_classes [class_number] = get_param (7);
return number_classes;
}
stock ham_strip_weapon (id, weapon [])
{
if (equal (weapon, "weapon_", 7)) return 0
new wid = get_weaponid (weapon)
if (WID) return 0
new fan
while ((fan = engfunc (EngFunc_Find EntityByString, went, "classname", weapon)) && PEV (fan, pev_owner)! = id) {}
if (fan) return 0
if (get_user_weapon (id) == wid) Execute Hamba (Ham_Weapon_RetireWeapon, fan)
if (! ExecuteHamB (Ham_RemovePlayerItem, id, fan)) return 0
ExecuteHamB (Ham_Item_Kill, fan)
set_pev (id, pev_weapons, PEV (id, pev_weapons) & ~ (1 << wid))
return 1
}
stock Display_Fade (id, duration, holdtime, fadetype, red, green, blue, alpha)
{
message_begin (MSG_ONE, MsgScreenfade, {0,0,0}, id);
write_short (duration) // Duration of FadeOut
write_short (holdtime) // Hold time of color
write_short (fadetype) // fade type
write_byte (red) // Red
write_byte (green) // Green
write_byte (blue) // Blue
write_byte (alpha) // Alpha
message_end ();
}
stock fm_give_item (index, const item []) {
if (equal (item, "weapon_", 7) &&! equal (item, "ammo_", 5) &&! equal (item, "item_", 5) &&! equal (item, "tf_weapon_", 10))
return 0;
new ent = engfunc (EngFunc_CreateNamedEntity, engfunc (EngFunc_AllocString, item));
if (! pev_valid (ent))
return 0;
new Float: origin [3];
PEV (index, pev_origin, origin);
set_pev (ent, pev_origin, origin);
set_pev (ent, pev_spawnflags, PEV (ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc (DLLFunc_Spawn, ent);
save = new PEV (ent, pev_solid);
dllfunc (DLLFunc_Touch, ent, index);
if (PEV (ent, pev_solid)! = save)
return ent;
engfunc (EngFunc_RemoveEntity, ent);
return -1;
}
public Blockcommand ()
return PLUGIN_HANDLED;
|