Помогите Пожалуиста!

ok!?

New Member
Всем добрый день.
Помогите пожалуиста сделать плагин так, чтобы он каждые 5 раундов выберался человек.

Описание Плагина:
Один из игроков становится невидимкой, из оружия только нож и гранаты, цель убить всех игроков
Невидимка быстрее бегает, выше прыгает, имеет больше HP
Остальные выбирают себе тип игрока( у каждого игрока свое оружие)цель убить невидимку

Сам плагин:
/*
*
* AMX Mod X script
* theHidden - mod by Filip Lachacz (kaver.dot[attera]gmail.com ; www.kaver.dl.pl)
*
*/

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>

#define VERSION "1.01"

#define KeysCharacterSelection (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9) // Keys: 1234567890
#define KeysClassSelection (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<8)|(1<<9) // Keys: 1234569

new Models[][] = {"terror", "leet", "arctic", "guerilla", "urban", "gsg9", "sas", "gign"}

new HiddenID = 0

new PlayersClass[32]
new PlayersModel[32]
new PlayersMsgShown[32]

new LightLevel = 109
new LightMode = 1

new CurClasses[6]
new MaxClasses[6]

new FwdKeyValue
new Ent

new hpTaskTicks
new hpTaskMessage[256]

new hidden_description

new hidden_speed
new hidden_health
new hidden_health_recover
new hidden_gravity

new hidden_class_a1
new hidden_class_a2
new hidden_class_a3
new hidden_class_s1
new hidden_class_s2
new hidden_class_s3

public hpTask()
{
if(is_user_alive( HiddenID) && is_user_connected(HiddenID) && CsTeams:cs_get_user_team(HiddenID) == CS_TEAM_T)
{
if(hpTaskTicks > 0)
{
hpTaskTicks--
client_print(HiddenID, print_center, hpTaskMessage)

}
else client_print(HiddenID, print_center, "%d HP", get_user_health(HiddenID))
}
}

public countCurClasses()
{
new players[32],count
get_players( players, count)

CurClasses[0] = 0
CurClasses[1] = 0
CurClasses[2] = 0
CurClasses[3] = 0
CurClasses[4] = 0
CurClasses[5] = 0

new i
for(i=0; i<count-1; i++)
{
CurClasses[PlayersClass]++
}
}

public countMaxClasses()
{
new players[32],count
get_players(players, count)
MaxClasses[0] = floatround(count*get_pcvar_float(hidden_class_a1), floatround_ceil)
MaxClasses[1] = floatround(count*get_pcvar_float(hidden_class_a2), floatround_ceil)
MaxClasses[2] = floatround(count*get_pcvar_float(hidden_class_a3), floatround_ceil)
MaxClasses[3] = floatround(count*get_pcvar_float(hidden_class_s1), floatround_ceil)
MaxClasses[4] = floatround(count*get_pcvar_float(hidden_class_s2), floatround_ceil)
MaxClasses[5] = floatround(count*get_pcvar_float(hidden_class_s3), floatround_ceil)
}

public pfn_keyvalue(entid)
{
new class[24], temp1[2], temp2[2]
copy_keyvalue(class, 23, temp1, 1, temp2, 1)

if (equal(class, "info_map_parameters")) {
if(Ent)
{
remove_entity(Ent)
Ent = 0
}

DispatchKeyValue(entid, "buying", "3")
}
}

public Forward_KeyValue(const EntIndex, const KvdHandle)
{
if(pev_valid(EntIndex))
{
new szClassName[32]
get_kvd(KvdHandle, KV_ClassName, szClassName, charsmax(szClassName))

if(equal(szClassName, "armoury_entity"))
{
engfunc(EngFunc_RemoveEntity, EntIndex)
return FMRES_SUPERCEDE
}
}

return FMRES_IGNORED
}

public plugin_precache()
{
FwdKeyValue = register_forward(FM_KeyValue, "Forward_KeyValue")

Ent = create_entity("info_map_parameters")
DispatchKeyValue(Ent, "buying", "3")
DispatchKeyValue(Ent, "bombradius", "500")
DispatchSpawn(Ent)
}

public plugin_init()
{
register_plugin("theHidden", VERSION, "Filip Lachacz")

register_menucmd(register_menuid("ClassSelection"), KeysClassSelection, "PressedClassSelection")
register_menucmd(register_menuid("CharacterSelection"), KeysCharacterSelection, "PressedCharacterSelection")
register_clcmd("chooseteam","chooseteam")
register_event("Damage","event_damage","b")
register_event("ResetHUD","event_spawn","be")
register_event( "CurWeapon", "event_cur_weapon", "be", "1=1" )
register_logevent("round_end", 2, "1=Round_End")

RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")

register_clcmd("hidden_info","show_info")

hidden_description = register_cvar("hidden_description", "1")

hidden_speed = register_cvar("hidden_speed", "900.0")
hidden_health = register_cvar("hidden_health", "600")
hidden_health_recover = register_cvar("hidden_health_recover", "10")
hidden_gravity = register_cvar("hidden_gravity", "0.75")

hidden_class_a1 = register_cvar("hidden_class_a1", "0.2125")
hidden_class_a2 = register_cvar("hidden_class_a2", "0.1875")
hidden_class_a3 = register_cvar("hidden_class_a3", "0.1875")
hidden_class_s1 = register_cvar("hidden_class_s1", "0.12")
hidden_class_s2 = register_cvar("hidden_class_s2", "0.2125")
hidden_class_s3 = register_cvar("hidden_class_s3", "0.07")


unregister_forward(FM_KeyValue, FwdKeyValue)
register_forward( FM_GetGameDescription, "gameDescription");

register_dictionary("theHidden.txt")

for(new i=0; i<32; i++)
{
PlayersClass = random_num(0, 5)
PlayersModel = random_num(0, 7)
PlayersMsgShown = 0
}

set_task(10.0, "lightTask", 0, "", 0, "b")
set_task(0.1, "hpTask", 0, "", 0, "b")
}

public fw_TouchWeapon(weapon,id)
{
if (!is_user_connected(id))
return HAM_IGNORED

if(HiddenID==id)
return HAM_SUPERCEDE

return HAM_IGNORED
}


public gameDescription()
{
if(get_pcvar_num(hidden_description)!=0)
{
forward_return( FMV_STRING, "theHidden")
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}

public event_damage(id)
{
new VictimID = id
new DamageTook = read_data( 2 )
new DamageType = read_data( 3 )
new WeaponID, AttackerID
AttackerID = get_user_attacker(VictimID, WeaponID)
new Health = get_user_health(AttackerID)
if(AttackerID==HiddenID && VictimID!=HiddenID && DamageTook>0 && WeaponID==CSW_KNIFE)
{
new players[32],count
get_players(players, count)
set_user_health(HiddenID, Health+DamageTook+get_pcvar_num(hidden_health_recover)*count)
new VictimName[32]
get_user_name(VictimID, VictimName, 31)
hpTaskTicks = 15
format(hpTaskMessage, 256, "%L", HiddenID, "MSG_TOOK_DAMAGE", DamageTook, VictimName, DamageTook+10*count)
}
}

public lightTask(id)
{
if(LightMode==0) LightLevel++; else LightLevel--
if(LightLevel>=109) LightMode = 1
if(LightLevel<=97) LightMode = 0
new temp[2]
temp[0]=LightLevel
temp[1]=0
set_lights(temp)
}

public send_message(text[256])
{
message_begin(MSG_ALL, get_user_msgid("SayText"), {0,0,0}, 0)
write_byte(1)
write_string(text)
message_end()
}

public client_connect(id)
{
PlayersMsgShown[id-1] = 1
}

public client_impulse(id, impulse)
{
if(impulse == 100 && CsTeams:get_user_team(id) == CS_TEAM_T) return PLUGIN_HANDLED_MAIN
return PLUGIN_CONTINUE
}

public event_spawn(id)
{
if(HiddenID==id) hpTaskTicks=0
set_task(0.1,"player_spawn",id)
countMaxClasses()
}

public round_start(id)
{
set_task(0.1,"newround",id)

}

public event_cur_weapon(id)
{
if(id==HiddenID) set_user_maxspeed(HiddenID, get_pcvar_float(hidden_speed))
}

public show_info(id)
{
client_print(id, print_console, "theHidden 1.01 by Kaver")
return PLUGIN_HANDLED
}

public chooseteam(id)
{
ShowClassSelection(id)
return PLUGIN_HANDLED
}

public player_spawn(id)
{
if(PlayersMsgShown[id-1]==1)
{
ShowCharacterSelection(id)
PlayersMsgShown[id-1] = 0
}
if(id==HiddenID) cs_set_user_team(id, CS_TEAM_T); else cs_set_user_team(id, CS_TEAM_CT)
set_user_godmode(id, 0)
strip_user_weapons(id)
switch(cs_get_user_team(id))
{
case CS_TEAM_CT:
{
cs_set_user_model(id, Models[PlayersModel[id-1]])
cs_set_user_nvg(id, 0)
set_user_hitzones(0, id, 255)
set_user_maxspeed(id, -1.0)
set_user_gravity(id, 1.0)
give_item(id, "weapon_knife")
switch(PlayersClass[id-1])
{
case 0:
{
give_item(id, "weapon_deagle")
give_item(id, "ammo_50ae")
give_item(id, "ammo_50ae")
give_item(id, "weapon_m3")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
}
case 1:
{
give_item(id, "weapon_p228")
give_item(id, "ammo_357sig")
give_item(id, "ammo_357sig")
give_item(id, "weapon_m4a1")
give_item(id, "ammo_556nato")
}
case 2:
{
give_item(id, "weapon_fiveseven")
give_item(id, "ammo_57mm")
give_item(id, "weapon_ak47")
give_item(id, "ammo_762nato")
}
case 3:
{
give_item(id, "weapon_smokegrenade")
give_item(id, "weapon_fiveseven")
give_item(id, "ammo_57mm")
give_item(id, "weapon_xm1014")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
}
case 4:
{
give_item(id, "weapon_smokegrenade")
give_item(id, "weapon_p228")
give_item(id, "ammo_357sig")
give_item(id, "ammo_357sig")
give_item(id, "weapon_p90")
give_item(id, "ammo_57mm")
}
case 5:
{

give_item(id, "weapon_smokegrenade")
give_item(id, "weapon_fiveseven")
give_item(id, "ammo_57mm")
give_item(id, "weapon_m249")
give_item(id,"ammo_556natobox")
give_item(id,"ammo_556natobox")
}
}
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,255)
}
case CS_TEAM_T:
{
cs_set_user_model(id, "vip")
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,25)
cs_set_user_nvg(id, 1)
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_knife")

set_user_maxspeed(id, get_pcvar_float(hidden_speed))

set_user_gravity(id, get_pcvar_float(hidden_gravity))
set_user_hitzones(0, id, 253)

new players[32],count
get_players(players, count)
set_user_health(id, get_pcvar_num(hidden_health)+25*count)

hpTaskTicks = 30
format(hpTaskMessage, 256, "%L ", id, "MSG_HIDDEN_YOU")
}
}
}

public round_end(id)
{
HiddenID++
new players[32],count
get_players(players, count)

//client_print(0, print_chat, "[theHidden] DEBUG: HiddenID=%d; count=%d;", HiddenID, count)

if(HiddenID>count)
{
cs_set_user_team(HiddenID-1, CS_TEAM_CT)
HiddenID = 1
cs_set_user_team(HiddenID, CS_TEAM_T)
} else if(HiddenID>0) {
cs_set_user_team(HiddenID-1, CS_TEAM_CT)
cs_set_user_team(HiddenID, CS_TEAM_T)
}

new i
for (i=0; i<count; i++)
set_user_godmode(players, 1)

new name[32]
get_user_info(HiddenID, "name", name, 31)
client_print(0, print_chat, "[theHidden] %L ", LANG_PLAYER, "MSG_HIDDEN_NEW", name)
hpTaskTicks = 15
format(hpTaskMessage, 256, "%L", HiddenID, "MSG_HIDDEN_YOU_RESPAWN")
}

public ShowCharacterSelection(id)
{
new character[32]
if(PlayersModel[id-1]==0) format(character, 32, "PHOENIX CONNEX")
if(PlayersModel[id-1]==1) format(character, 32, "ELITE CREW")
if(PlayersModel[id-1]==2) format(character, 32, "ARCTIC AVENGERS")
if(PlayersModel[id-1]==3) format(character, 32, "GUERILLA WARFARE")
if(PlayersModel[id-1]==4) format(character, 32, "SEAL TEAM 6")
if(PlayersModel[id-1]==5) format(character, 32, "GSG-9")
if(PlayersModel[id-1]==6) format(character, 32, "SAS")
if(PlayersModel[id-1]==7) format(character, 32, "GIGN")

new temp[512]
format(temp, 512, "\y%L: \w%s^n^n", id, "MSG_MENU_CHAR_CURRENT", character)
format(temp, 512, "%s\y%L:^n\w[1] PHOENIX CONNEX^n[2] ELITE CREW^n[3] ARCTIC AVENGERS^n[4] GUERILLA WARFARE^n[5] SEAL TEAM 6^n[6] GSG-9^n[7] SAS^n[8] GIGN^n\y[9] %L^n[0] %L^n", temp, id, "MSG_MENU_CHAR", id, "MSG_MENU_CHAR_RANDOM", id, "MSG_MENU_CLASS_SELECTION")
show_menu(id, KeysCharacterSelection, temp, -1, "CharacterSelection") // Display menu
}

public PressedCharacterSelection(id, key)
{
if(key==8) PlayersModel[id-1] = random_num(0, 7); else
if(key<8) PlayersModel[id-1] = key
ShowClassSelection(id)
}

public ShowClassSelection(id)
{
countCurClasses()
countMaxClasses()

new tempA1[4]
format(tempA1, 3, "%d/%d", CurClasses[0], MaxClasses[0])
new tempA2[4]
format(tempA2, 3, "%d/%d", CurClasses[1], MaxClasses[1])
new tempA3[4]
format(tempA3, 3, "%d/%d", CurClasses[2], MaxClasses[2])
new tempS1[4]
format(tempS1, 3, "%d/%d", CurClasses[3], MaxClasses[3])
new tempS2[4]
format(tempS2, 3, "%d/%d", CurClasses[4], MaxClasses[4])
new tempS3[4]
format(tempS3, 3, "%d/%d", CurClasses[5], MaxClasses[5])

new class[16]
if(PlayersClass[id-1]==0) format(class, 16, "ASSAULT A1")
if(PlayersClass[id-1]==1) format(class, 16, "ASSAULT A2")
if(PlayersClass[id-1]==2) format(class, 16, "ASSAULT A3")
if(PlayersClass[id-1]==3) format(class, 16, "SUPPORT S1")
if(PlayersClass[id-1]==4) format(class, 16, "SUPPORT S2")
if(PlayersClass[id-1]==5) format(class, 16, "SUPPORT S3")

new temp[512]
format(temp, 512, "\y%L: \w%s^n^n\y%L:^n", id, "MSG_MENU_CLASS_CURRENT", class, id, "MSG_MENU_CLASS")
format(temp, 512, "%s\w[1] \rAssault A1\w {%s} M3, Night Hawk^n[2] \rAssault A2\w {%s} M4A1, P228^n[3] \rAssault A3\w {%s} AK47, Five-Seven^n^n[4] \rSupport S1\w {%s} XM1014, Five-Seven, smoke granade^n[5] \rSupport S2\w {%s} P90, P228, smoke granade^n[6] \rSupport S3\w {%s} M249 Para, Five-Seven, smoke granade^n^n", temp, tempA1, tempA2, tempA3, tempS1, tempS2, tempS3)
format(temp, 512, "%s\y[9] %L^n[0] %L^n", temp, id, "MSG_MENU_CHAR_SELECTION", id, "MSG_MENU_CLOSE")
show_menu(id, KeysClassSelection, temp, -1, "ClassSelection")
}

public PressedClassSelection(id, key)
{
if(key==8) ShowCharacterSelection(id); else
if(key==PlayersClass[id-1])
{
ShowClassSelection(id)
client_print(id, print_chat, "[theHidden] %L", id, "MSG_CLASS_ALREADY")

} else if(key<6)
{
if(CurClasses[key] < MaxClasses[key])
{
PlayersClass[id-1] = key
new class[16]
if(PlayersClass[id-1]==0) format(class, 16, "ASSAULT A1")
if(PlayersClass[id-1]==1) format(class, 16, "ASSAULT A2")
if(PlayersClass[id-1]==2) format(class, 16, "ASSAULT A3")
if(PlayersClass[id-1]==3) format(class, 16, "SUPPORT S1")
if(PlayersClass[id-1]==4) format(class, 16, "SUPPORT S2")
if(PlayersClass[id-1]==5) format(class, 16, "SUPPORT S3")
new name[32]
get_user_info(id, "name", name, 31)
client_print(0, print_chat, "[theHidden] %L", LANG_PLAYER, "MSG_CLASS_CHANGE", name, class)
}
else
{
ShowClassSelection(id)
client_print(id, print_chat, "[theHidden] %L", id, "MSG_CLASS_DISALLOWED")
}
}
}


Забание спасибо!!! Буду очень признателен кто поможет!!!
 

๖ۣۣۜCrAsH™

Завсегдатый
Чтобы он каждые 5 раундов:
1)До plugin_init добавь

Код:
new szRound
2)В round_end добавь
Код:
++szRound
if(szRound == 5)
{
//твой код
}
Рандомный игрок:

Код:
new szPlayers[32]
new szNum

get_players(szPlayers, szNum)
HiddenID = random_num(1, szNum)
тебе осталось только самому всё вставить.Пора бы думать своей головой, а не ждать готового
 
Сверху