Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Knife Games 0.1 (beta)

, Помощь скриптера.
Статус пользователя Kamikadze312
сообщение 3.5.2012, 11:43
Сообщение #1
Стаж: 14 лет

Сообщений: 37
Благодарностей: 3
Полезность: 63

Нашел в интернете интересный плагин , поставил себе и он мне понравился . Правда плагин с багами , есть ли доделанный плагин такой ?? Все обыскал и не нашел доконченного плагина.

Есть ли добрые скриптеры , которые могли бы помочь доделать плагин ???

Баги Плагина :
1. При заходе играков на какуе нибудь игру им не даються способности .
2. Игроки светятся ( Окружены аурой , в игре ,,Ночь,, их видно )
3. При игре зомби когда зм выигрывают все стают за 1 команду в след. раунде
4..........

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

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

#define ADMIN_ACCESS ADMIN_LEVEL_D

#define OFFSET_TEAM 114
#define OFFSET_DEAGLE_AMMO 384


new mxplr
new status[33]

#define MAXPLAYERS 32

#define is_zombie(%1) (status[%1] & (1<<0))
#define team_change(%1) (status[%1] & (1<<1))

#define make_zombie(%1) (status[%1] = status[%1] | (1<<0))
#define need_teamchange(%1) (status[%1] = status[%1] | (1<<1))


new bool:vibri_event = false;

new inf

new invisibility[33][2];
new chameleon[33][2];
new footsteps[33][2];

new gmsgTeamInfo

enum teams
{
FM_TEAM_UNASSIGNED = 0,
FM_TEAM_T,
FM_TEAM_CT,
FM_TEAM_SPECTATOR
}

new wents[][] =
{
"weapon_shield",
"weaponbox",
"armoury_entity"

}

public plugin_init()
{
register_plugin("KnifeGames", "0.1", "Desert")

gmsgTeamInfo = get_user_msgid("TeamInfo")

register_concmd("glow", "RandGlow", ADMIN_ACCESS, "All Player Random Glow.")

register_logevent("RoundEnd", 2, "1=Round_End")
register_logevent("randomevent", 2, "1=Round_Start")

RegisterHam(Ham_Spawn, "player", "spawn_post", 1)
RegisterHam(Ham_TakeDamage, "player", "damage")
RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1)

for(new i = 0; i < sizeof(wents); i++)
{
RegisterHam(Ham_Touch, wents[i], "blocktouch")

}

mxplr = get_maxplayers()
}

public PlayerSpawn(id)
{
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")

return PLUGIN_CONTINUE
}

public client_putinserver(id)
{
if(is_user_bot(id))
return PLUGIN_HANDLED;

invisibility[id][0] = 0;
footsteps[id][0] = 0;
chameleon[id][0] = 0;

set_user_rendering(id,kRenderFxNone,255,255,255, kRenderNormal,16);

return PLUGIN_CONTINUE;
}

public client_disconnect(id)
{
if(is_user_bot(id))
return PLUGIN_HANDLED;

invisibility[id][0] = 0;
footsteps[id][0] = 0;
chameleon[id][0] = 0;

return PLUGIN_CONTINUE;
}


public randomevent(id)
{
switch(random_num(0, 15))
{
case 0:
{
vibri_event = true
hp(0)
}
case 1:
{
vibri_event = true
hegrenade(0)
}
case 2:
{
vibri_event = true
zombie()

}
case 3:
{
vibri_event = true
nodead(0)

}
case 4:
{
vibri_event = true
night(0)

}
}
}





/*----------------------------------------------!!!Зомби!!!----------------------------------------------*/
public respawn(id) {

set_user_godmode(id, 0);
set_user_rendering(id,kRenderFxNone,255,255,255, kRenderNormal,16);

return PLUGIN_CONTINUE;
}

public spawn_post(id)
{
if(!is_user_alive(id))
return HAM_IGNORED

if(is_zombie(id))
{
set_pev(id, pev_health, 2000.0)
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")

}

return HAM_IGNORED
}

public damage(id, inflictor, ida, Float:dmg, dmgbits)
{
if(!is_user_alive(ida) || !is_zombie(ida) || is_zombie(id) || inf)
return HAM_IGNORED

zombieme(id, ida)

check_last()

return HAM_IGNORED

}

public check_last()
{
new num

for(new id = 1; id <= mxplr; id++)
{
if(!is_user_alive(id) || is_zombie(id))
continue

num++

}

if(num <= 1)
{
inf = 1
set_hudmessage(255, 0, 0, 0.09, -1.0, 0, 6.0, 12.0)
show_hudmessage(0, "Остался последний выживший!")
}
}


public blocktouch(ent, id)
{
if(!pev_valid(ent) || !is_user_alive(id) || !is_zombie(id))
return HAM_IGNORED

return HAM_SUPERCEDE

}

public zombie()
{
new id, num
num = get_playersnum()
id = random_num(1, num)

while(!is_user_alive(id))
{
id = random_num(1, num)

}

if(fm_get_user_team(id) != FM_TEAM_T)
{
need_teamchange(id)

}

new name[32]
get_user_name(id, name, 31)
zombieme(id, 0)

//set_hudmessage(255, 0, 0, 0.09, -1.0, 0, 6.0, 12.0)
//show_hudmessage(0, "%s is first zombie!", name)
client_print(0, print_chat, "[Knife игры] Играем в зомби! Зомби в облике террористов.!")
set_dhudmessage(255, 0, 0, 0.09, -1.0, 0, 6.0, 12.0)
show_dhudmessage(0, "%s Первый зомби с 2000 хп! кого ударит тот тоже будет зомби!", name)

new i
for(i = 1; i <= mxplr; i++)
{
if(!is_user_alive(i) || i == id)
continue

if(fm_get_user_team(i) != FM_TEAM_CT)
{
fm_set_user_team(i, FM_TEAM_CT)
team_msg(i, "CT")
need_teamchange(i)
}


fm_strip_user_weapons(i)

fm_give_item(i, "weapon_deagle")
fm_give_item(i, "weapon_knife")
set_pdata_int(i, OFFSET_DEAGLE_AMMO, 200)

}

}

public zombieme(id, killer)
{
fm_set_user_team(id, FM_TEAM_T)
make_zombie(id)
ExecuteHamB(Ham_CS_RoundRespawn, id)
set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal,30)

if(is_user_alive(killer))
{
make_deathmsg(killer, id, 0, "infection")

}
}

/*----------------------------------------------!!!Зомби-конец!!!----------------------------------------------*/

/*----------------------------------------------Гладиатор-----------------------------------------*/
public hp(first) {

if(vibri_event == true)
{
new players[32], team[32], num, player;

get_players(players, num, "ah")

for(new i = 0; i < num; i++)
{
player = players[i];

if((is_user_alive(player)))
{
get_user_team(player,team,32);
strip_user_weapons(player);
give_item(player, "weapon_knife");
set_task(0.1, "RandGlow"); // Glow
set_user_health(player, 1000);
set_cvar_num("dr_shop", 0);
client_print(0, print_chat, "[Knife игры] Играем в гладиаторов!")
set_dhudmessage(255, 0, 0, -1.0, 0.19, 0, 0.0, 10.0, 0.1, 0.2)
show_dhudmessage(0, "Играем в гладиаторов!")
}
}
}
else
{
client_print(0, print_chat, "[Knife игры] Эвент кончился")
return PLUGIN_HANDLED;
}

return PLUGIN_CONTINUE;
}
/*----------------------------------------------Гладиатор-Конец-----------------------------------------*/

/*----------------------------------------------Снайпер-----------------------------------------*/
public scouts(first) {

if(vibri_event == true)
{
new players[32], team[32], num, player;

get_players(players, num, "ah")

for(new i = 0; i < num; i++)
{
player = players[i];

if((is_user_alive(player)))
{
get_user_team(player,team,32);
strip_user_weapons(player);
give_item(player, "weapon_scout");
//cs_set_user_bpammo(CSW_SCOUT, 90);
set_user_health(player, 100);
set_cvar_num("dr_shop", 0);
set_task(0.1, "RandGlow"); // Glow
client_print(0, print_chat,"[Knife игры] Играем в снайперов!")
set_dhudmessage(255, 0, 0, -1.0, 0.19, 0, 0.0, 10.0, 0.1, 0.2)
show_dhudmessage(0, "Играем в снайперов!")
}
}
}
else
{
client_print(0, print_chat, "[Knife игры] Эвент кончился")
return PLUGIN_HANDLED;
}

return PLUGIN_CONTINUE;
}
/*----------------------------------------------Снайпер-конец------------------------------------------*/

/*----------------------------------------------Гренабой-----------------------------------------*/
public hegrenade(first) {

if(vibri_event == true)
{
new players[32], team[32], num, player;

get_players(players, num, "ah")

for(new i = 0; i < num; i++)
{
player = players[i];

if((is_user_alive(player)))
{
get_user_team(player,team,32);
strip_user_weapons(player);
set_task(0.1, "RandGlow"); // Glow
give_item(player, "weapon_hegrenade");
cs_set_user_bpammo(player, CSW_HEGRENADE, 100)
set_user_health(player, 100);
set_cvar_num("dr_shop", 0);
client_print(0, print_chat, "[Knife игры] Играем в бомбардировку!")
set_dhudmessage(255, 0, 0, -1.0, 0.19, 0, 0.0, 10.0, 0.1, 0.2)
show_dhudmessage(0, "Играем в бомбардировку!")
}
}
}
else
{
client_print(0, print_chat, "[Knife игры] Эвент кончился")
return PLUGIN_HANDLED;
}

return PLUGIN_CONTINUE;
}
/*----------------------------------------------Гренабой-конец------------------------------------------*/



/*----------------------------------------------Ночь-----------------------------------------*/
public night(first) {

if(vibri_event == true)
{
new players[32], team[32], num, player;

get_players(players, num, "ah")

for(new i = 0; i < num; i++)
{
player = players[i];

if((is_user_alive(player)))
{
get_user_team(player,team,32);
strip_user_weapons(player);
give_item(player, "weapon_knife");
//set_task(0.1, "RandGlow"); // Glow
set_lights("a");
set_cvar_num("dr_shop", 0);
client_print(0, print_chat, "[Knife игры] Играем в ночных разбойников! Правила можно нарушать!")
set_dhudmessage(255, 0, 0, -1.0, 0.19, 0, 0.0, 10.0, 0.1, 0.2)
show_dhudmessage(0, "Играем в ночных разбойников!")
}
}
}
}
/*----------------------------------------------Ночь-конец------------------------------------------*/

/*----------------------------------------------Гравитация-----------------------------------------*/
public gravity(first) {

if(vibri_event == true)
{
new players[32], team[32], num, player;

get_players(players, num, "ah")

for(new i = 0; i < num; i++)
{
player = players[i];

if((is_user_alive(player)))
{
get_user_team(player,team,32);
strip_user_weapons(player);
give_item(player, "weapon_knife");
//set_task(0.1, "RandGlow"); // Glow
set_cvar_num("sv_gravity", 0);
set_cvar_num("dr_shop", 0);
client_print(0, print_chat, "[Knife игры] Играем в космонавтов! Правила можно нарушать!")
set_dhudmessage(255, 0, 0, -1.0, 0.19, 0, 0.0, 10.0, 0.1, 0.2)
show_dhudmessage(0, "Играем в космонавтов!")
}
}
}
}
/*----------------------------------------------Гравитация-конец------------------------------------------*/

/*----------------------------------------------ДМ-день-----------------------------------------*/
public nodead(first) {

if(vibri_event == true)
{
new players[32], team[32], num, player;

get_players(players, num, "ah")

for(new i = 0; i < num; i++)
{
player = players[i];
get_user_team(player,team,32);
set_task(1.0, "allrespawn");
set_task(2.0, "allrespawn");
set_task(3.0, "allrespawn");
set_task(4.0, "allrespawn");
set_task(5.0, "allrespawn");
set_task(6.0, "allrespawn");
set_task(7.0, "allrespawn");
set_task(8.0, "allrespawn");
set_task(9.0, "allrespawn");
set_task(10.0, "allrespawn");
set_task(11.0, "allrespawn");
set_task(12.0, "allrespawn");
set_task(13.0, "allrespawn");
set_task(14.0, "allrespawn");
set_task(15.0, "allrespawn");
set_task(16.0, "allrespawn");
set_task(17.0, "allrespawn");
set_task(18.0, "allrespawn");
set_task(19.0, "allrespawn");
set_task(20.0, "allrespawn");
set_task(21.0, "allrespawn");
set_task(22.0, "allrespawn");
set_task(23.0, "allrespawn");
set_task(24.0, "allrespawn");
set_task(25.0, "allrespawn");
set_task(26.0, "allrespawn");
set_task(27.0, "allrespawn");
set_task(28.0, "allrespawn");
set_task(29.0, "allrespawn");
set_task(30.0, "allrespawn");
set_task(31.0, "allrespawn");
set_task(32.0, "allrespawn");
set_task(33.0, "allrespawn");
set_task(34.0, "allrespawn");
set_task(35.0, "allrespawn");
set_task(36.0, "allrespawn");
set_task(37.0, "allrespawn");
set_task(38.0, "allrespawn");
set_task(39.0, "allrespawn");
set_task(40.0, "allrespawn");
set_task(41.0, "allrespawn");
set_task(42.0, "allrespawn");
set_task(43.0, "allrespawn");
set_task(44.0, "allrespawn");
set_task(45.0, "allrespawn");
set_task(47.0, "allrespawn");
set_task(50.0, "allrespawn");
set_task(53.0, "allrespawn");
set_task(55.0, "allrespawn");
set_task(57.0, "allrespawn");
set_task(59.0, "allrespawn");
set_task(60.0, "allkill");
set_cvar_num("dr_shop", 0);
client_print(0, print_chat, "[Knife игры] Играем в бессмертных! Правила можно нарушать!")
set_dhudmessage(255, 0, 0, -1.0, 0.19, 0, 0.0, 10.0, 0.1, 0.2)
show_dhudmessage(0, "Играем в бессмертных! 60 секунд вы будете воскрешатся без остановки!")
}
}
}

public allrespawn(id)
{
for(new i = 1; i <= MAXPLAYERS; i++)
{
if(is_user_alive(i) || !is_user_connected(i))
continue;

ExecuteHamB(Ham_CS_RoundRespawn, i)
}
return;
}

public allkill(id)
{

set_dhudmessage(255, 0, 0, -1.0, 0.19, 0, 0.0, 10.0, 0.1, 0.2)
show_dhudmessage(0, "Бессмертность кончилась!")

return PLUGIN_HANDLED
}
/*----------------------------------------------ДМ-день-конец------------------------------------------*/

public RoundEnd() {
// MAx Player numb
new maxplayers = get_maxplayers()+1;

for(new id = 1; id < maxplayers; id++)
{

if(is_zombie(id))
{
status[id] &= ~(1<<0)

}

if(team_change(id))
{
fm_set_user_team(id, FM_TEAM_CT)
status[id] &= ~(1<<1)
}


}

if(vibri_event == true)
{
new players[32], team[32], num, player;
get_players(players, num, "ah")

for(new i = 0; i < num; i++)
{
player = players[i];
get_user_team(player,team,32);
set_user_rendering(player,kRenderFxNone,255,255,255, kRenderNormal,16);
}

vibri_event = false;
set_lights("#OFF");
set_cvar_num("amx_set_ffa", 0);
set_cvar_num("mp_friendlyfire", 0);
set_cvar_num("sv_gravity", 800);
set_cvar_num("dr_shop", 1);
remove_task();
}

inf = 0
}

public RandGlow() {

new Red = random(256);
new Green = random(256);
new Blue = random(256);

new players[32], num, player;

get_players(players, num, "ah")

for(new i = 0; i < num; i++)
{
player = players[i];
set_user_rendering(player, kRenderFxGlowShell, Red, Green, Blue, kRenderNormal,30)
}
}


stock fm_strip_user_weapons(index) {
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "player_weaponstrip"))
if (!pev_valid(ent))
return 0

dllfunc(DLLFunc_Spawn, ent)
dllfunc(DLLFunc_Use, ent, index)
engfunc(EngFunc_RemoveEntity, ent)

return 1
}


stock fm_set_user_team(id, {teams,_}:iTeam)
{

if( iTeam > FM_TEAM_SPECTATOR )
return

set_pdata_int(id, OFFSET_TEAM, _:iTeam)
}

public team_msg(id, const team[])
{
emessage_begin(MSG_BROADCAST, gmsgTeamInfo)
ewrite_byte(id)
ewrite_string(team)
emessage_end()

}


stock teams:fm_get_user_team(id)
{
return teams:get_pdata_int(id, OFFSET_TEAM)

}

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);

new save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, index);
if (pev(ent, pev_solid) != save)
return ent;

engfunc(EngFunc_RemoveEntity, ent);

return -1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: