AMX MOD X
Пятница, 29.03.2024, 09:52:42



Приветствую Вас Гость | RSS
[ Главная ] [ [w.i.p.] EXODUS - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Плагины » Готовые плагины » [w.i.p.] EXODUS
[w.i.p.] EXODUS
HoRRoRДата: Среда, 29.07.2009, 01:01:26 | Сообщение # 1
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
итак, это небольшой аддон, который добавляет два новых режима в ZP. так как мод в разработке, то не ждите, что я выложу полностью работоспособную версию :)

собственно:
============= Despair mode =============
Режим игры от 12 человек, иначе карта меняется.
Суть режима: 4 человека становятся выжившими, с пулеметом m249 и бесконечными патронами. Все остальные становятся зомби, которые после смерти воскрешаются. Свет на карте не отключается. Есть шанс, что вместо зомби появится Немезис, этакий перец, который наносит 500 урона за удар. Каждый мертвый зомби, увеличивает шанс, что появится немезис на 1%. Если немезис появится - шанс обнуляется. Есть порог - 10%, ниже этого порога немезис не появится.

============= Survival mode =============
Режим игры от 10 человек, иначе карта меняется.
Суть режима: все игроки становятся зомби, кроме 4-х игроков, которые становятся людьми и переносятся в другую локацию. Людям при появлении даётся пистолет и несколько десятков патронов. Зомби респавнятся. Есть шанс 4% что при респавне зомби получит инфекшн бомбу, либо станет немезисом (немезис появится, только если все 4 человека живы). Каждому человек даётся 5 аммопаков, для покупки патронов. Также игрок, убивший немезиса получит халявные 5 аммопаков и 500 хп. Если человек умирает, то у остальных людей экран моргнёт красным и хп прибавится на определенное число (на данный момент 200, причем стартовое хп как людей, так и зомби - 500)Также, если человек наберет более 50 "фрагов" (убийств), то есть вероятностьв 5%, что он при респавне (д.б. зомби) превратится в человека с пулеметом m249.

Приаттачил исходник + кое какой мусор (конфиг)

(!) это не готовый мод, тут мног очего не хватает. выложил на обозрение только с целью обсуждения сабжа и предложений/замечаний.
если хотите таки запустить его у себя, придется вам самим немного перелопатить код :)

Добавлено (2009-07-29, 1:01 Am)
---------------------------------------------
алсо, каждый режим работает только на определенном типе карт zs_ и zd_

пока готово только 2 карты, остальные мне делают мои рабы на КСМе :)
( http://cs-mapping.com.ua/forum/forumdisplay.php?f=121 )

Прикрепления: trash.rar (6.7 Kb) · zp_Exodus.sma (19.7 Kb)
 
PomanoBДата: Среда, 29.07.2009, 09:58:45 | Сообщение # 2
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Отлично, будем ждать финальную версию и карт побольше)

http://romanov4400.mybrute.com
 
CHyCMyMpNkДата: Воскресенье, 02.08.2009, 19:01:13 | Сообщение # 3
Полковник
Группа: Пользователи
Сообщений: 180
Репутация: 8
Статус: Не в сети
А карты можешь сюда залить ?

вечное спасибо r013x'y : )
 
HoRRoRДата: Суббота, 08.08.2009, 23:20:45 | Сообщение # 4
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
пожалуй, но только одну (survival) и то там свет без отражений просчитан

Добавлено (2009-08-08, 11:20 Pm)
---------------------------------------------
немного оптимизировал код. но MsgChat у меня не хочет выводить %d =(((
пока приходится делать через формат. есть какие советы?

Code
/*
CREDITS:
MeRcyLeZZ   : Original Zombie Plague mod
HoRRoR      : Original idea and coding (exodus)

SPECIAL THANKS:
PAHANCS     : get_entity_origin stock

Music from:
Killing Floor
Silent Hill OST
*/

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <fun>
#include <csx>
#include <zombieplague>

#define PLUGIN   "Zombie Plague: Exodus"
#define VERSION  "0.5.4"
#define COREVERSION  "2.1.1"
#define AUTHOR   "HoRRoR"

new g_maxplayers
new is_round_started = 0
new g_is_must_change_map
// ----------------------------------- //
new is_despair_map = 0
new despair_surv_health
new is_despair_started = 0
new g_dsp_survcount
new is_nemesis_chance
new despair_nemesis_first_chance
new namesis_min_chance
new despair_nemesis_health
// ----------------------------------- //
new is_survival_started = 0
new Float:g_SpawnVecs[60][3];
new is_survival_map = 0
new survival_hum_health
new g_msgScreenFade
const FFADE_IN = 0x0000
const FFADE_STAYOUT = 0x0004
const UNIT_SECOND = (1<<12)
new infectionbomb_chance
new nemesis_survival_chance
new survivor_start_ammopacks
new nemesis_kill_extra_ammo
new friend_die_extra_hp
new player_was_survivor[33]
new time_to_change_map
new bot_survival_stupid
new bot_survival_extrahp
new survival_blind_players
new nemesis_kill_extra_hp
new nemesis_can_spawn
// ----------------------------------- //
new swarm_human_health
new cvar_despair_minplayers
new cvar_survival_minplayers
new survival_sp_exists
// ----------------------------------- //

new music_file[17][] =
{
"sound/zombie_plague/music/infection_1.mp3", //MODE_INFECTION
"sound/zombie_plague/music/infection_1.mp3", //MODE_NEMESIS
"sound/zombie_plague/music/infection_1.mp3", //MODE_SURVIVOR
"sound/zombie_plague/music/infection_1.mp3", //MODE_SWARM
"sound/zombie_plague/music/infection_1.mp3", //MODE_MULTI
"sound/zombie_plague/music/plague_1.mp3", //MODE_PLAGUE
"sound/zombie_plague/music/Survival/nemesis.mp3", //survival nemesis music
"sound/zombie_plague/music/Despair/track01.mp3", //despair music 1
"sound/zombie_plague/music/Despair/track02.mp3", //despair music 2
"sound/zombie_plague/music/Despair/track03.mp3", //despair music 3
"sound/zombie_plague/music/Despair/track04.mp3", //despair music 4
"sound/zombie_plague/music/Despair/track05.mp3", //despair music 5
"sound/zombie_plague/music/Survival/track01.mp3", //survival music 1
"sound/zombie_plague/music/Survival/track02.mp3", //survival music 2
"sound/zombie_plague/music/Survival/track03.mp3", //survival music 3
"sound/zombie_plague/music/Survival/track04.mp3", //survival music 4
"sound/zombie_plague/music/Survival/track05.mp3"  //survival music 5
}

new announce_snd[6][] =
{
"zombie_plague/exodus_announcer/startgame.wav",
"zombie_plague/exodus_announcer/domination.wav",
"zombie_plague/exodus_announcer/bloodbath.wav",
"zombie_plague/qs/40_maniac.wav",
"zombie_plague/qs/45_termination.wav",
"zombie_plague/qs/50_killingmachine.wav"
}

public plugin_precache()
{
new i
for (i = 0; i < 17; i++)
precache_generic(music_file[i])

for (i = 0; i < 6; i++)
precache_sound(announce_snd[i])
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_logevent("roundStart", 2, "1=Round_Start")
register_event("DeathMsg", "event_player_death", "a")

register_clcmd("zp_exodus_start_survival", "start_survival_con_cmd")
register_clcmd("zp_exodus_start_despair", "start_despair_con_cmd")
register_clcmd("say /stayhere", "no_change_map")
register_clcmd("say_team /stayhere", "no_change_map")

register_clcmd("say /makemerich", "admin_ammoapcks")
register_clcmd("say /can", "check_is_can")
register_clcmd("say /version", "check_version")
register_clcmd("say /exodus", "exodus_version")

g_msgScreenFade = get_user_msgid("ScreenFade")
g_maxplayers = get_maxplayers()

is_despair_map = register_cvar("zp_exodus_dsp_enabled", "0")
despair_surv_health = register_cvar("zp_ex_dsp_basesurvhealth", "200")
despair_nemesis_health = register_cvar("zp_ex_dsp_nemhealth", "2000")
despair_nemesis_first_chance = register_cvar("zp_ex_dsp_nemchance", "0")
namesis_min_chance = register_cvar("zp_ex_dsp_nemminchance", "10")
cvar_despair_minplayers = register_cvar("zp_ex_dsp_minplayers", "8")

is_survival_map = register_cvar("zp_exodus_srv_enabled", "0")
survival_hum_health = register_cvar("zp_ex_srv_basehumhealth", "50")
infectionbomb_chance = register_cvar("zp_ex_srv_bomb_chance", "2")
nemesis_survival_chance = register_cvar("zp_ex_srv_nem_chance", "2")
survivor_start_ammopacks = register_cvar("zp_ex_srv_startammo", "5")
nemesis_kill_extra_ammo = register_cvar("zp_ex_srv_nemkill_ammo", "5")
nemesis_kill_extra_hp = register_cvar("zp_ex_srv_nemkill_extrahp", "500")
friend_die_extra_hp = register_cvar("zp_ex_srv_die_extrahp", "200")
survival_blind_players = register_cvar("zp_ex_srv_blind", "1")
cvar_survival_minplayers = register_cvar("zp_ex_srv_minplayers", "8")

time_to_change_map = register_cvar("zp_exodus_time_to_change_map", "30.0")
bot_survival_stupid = register_cvar("zp_exodus_bot_helper", "1")
bot_survival_extrahp = register_cvar("zp_exodus_bot_helper_extrahp", "500")

swarm_human_health = register_cvar("zp_swarm_hum_health", "500")

}

public check_version(id)
{
new text[100]
format(text,99,"^x04[EXODUS]^x01 Server version is ^x04%s",COREVERSION)
MsgChat(id,MSG_ALL,text)
}

public exodus_version(id)
{
new text[100]
format(text,99,"^x04[EXODUS]^x01 Exodus addon version is ^x04%s",VERSION)
MsgChat(id,MSG_ALL,text)
}

public admin_ammoapcks(id)
{
if (is_user_admin(id))
{
zp_set_user_ammo_packs(id,25)
}
return PLUGIN_HANDLED
}

public check_is_can(id)
{
if (player_was_survivor[id] == 0)
MsgChat(id,MSG_ONE,"^x04[DEBUG]^x01 Player was survivor? -- FALSE")
else
MsgChat(id,MSG_ONE,"^x04[DEBUG]^x01 Player was survivor? -- TRUE")
return PLUGIN_HANDLED
}

public roundStart()
{
remove_task(101)
remove_task(295)

is_round_started = 0
is_despair_started = 0
g_is_must_change_map = 0
nemesis_can_spawn = 1

for (new i = 1; i <= g_maxplayers; i++)
remove_task(i)

new start_despair = get_pcvar_num(is_despair_map)
// если zd_ карта - делаем режим DESPAIR
if (start_despair == 1)
set_task(9.0,"start_despair_mode")

new start_survival = get_pcvar_num(is_survival_map)
// если zs_ карта - делаем режим SURVIVAL
if (start_survival == 1)
{
if (get_pcvar_num(survival_blind_players) == 1)
for (new i = 1; i <= get_playersnum(); i++)
MsgScreenFade(i,40,0,100)

if (random_num(1,100) <= 1)
{
set_hudmessage(100, 0, 255, -1.0, 0.4, _, _, 7.0, _, _, -1)
show_hudmessage(0, "Do you wanna see some street magic?") // joke! xD
}else{
set_hudmessage(100, 0, 255, -1.0, 0.4, _, _, 7.0, _, _, -1)
show_hudmessage(0, "Wait for starting the game...")
}
set_task(8.0,"start_survival_mode",295)
}
}
/* -------------------------------------------
|   Режим: DESPAIR                            |
------------------------------------------- */
public start_despair_con_cmd(id)
{
if (is_user_admin(id) && is_despair_started == 0)
start_despair_mode
}

public start_despair_mode()
{
if (get_pcvar_num(cvar_despair_minplayers) < 8)
set_pcvar_num(cvar_despair_minplayers, 8)

new despair_enabled = get_pcvar_num(is_despair_map)
if (despair_enabled == 1 && get_playersnum() >= get_pcvar_num(cvar_despair_minplayers) && is_round_started == 0)
{
remove_task(101)
remove_task(295)

set_hudmessage(200, 100, 0, -1.0, 0.2, 0, 1.0, 3.0, 0.2, 0.2, -1)
show_hudmessage(0, "Despair mode!")

is_despair_started = 1

new randomplayer
g_dsp_survcount = 1

is_round_started = 1
is_nemesis_chance = get_pcvar_num(despair_nemesis_first_chance)

new health_multiplier = get_playersnum()

// делаем сурвиворов
while (g_dsp_survcount < 5)
{
randomplayer = random_num(1,get_playersnum())
if (is_user_alive(randomplayer) && !zp_get_user_survivor(randomplayer) && player_was_survivor[randomplayer] == 0)
{
// делаем сурвивора
zp_make_user_survivor(randomplayer)
g_dsp_survcount++
set_task(1.5,"add_pws",randomplayer)
set_user_health (ran domplayer, get_pcvar_num(despair_surv_health) * health_multiplier)
}
}
}

if (get_playersnum() < get_pcvar_num(cvar_despair_minplayers))
{
new cv_nextmap[32]
get_cvar_string("amx_nextmap", cv_nextmap, 31)

g_is_must_change_map = 1

set_hudmessage(255, 0, 0, -1.0, 0.35, 0, 3.0, 30.0, 0.2, 0.2, 2)
show_hudmessage(0, ".: EXODUS :.^nDespair cannot be started, because %d players is needed!^nThe map will be changed to ^"%s^"^n^nIf you don't want to change map or if you want to wait other players, write /stayhere in chat.",get_pcvar_num(cvar_despair_minplayers),cv_nextmap)

set_task(get_pcvar_float(time_to_change_map),"exodus_failed_and_change_m ap" ,101)

for (new i = 1; i <= g_maxplayers; i++)
MsgScreenFade(i,40,0,100,0)
}
}

public no_change_map(id)
{
if (g_is_must_change_map == 1)
{
MsgChat(id,MSG_ALL,"^x04[EXODUS]^x01 Map will not changed.")
remove_task(101)
g_is_must_change_map = 0

set_hudmessage(255, 0, 0, -1.0, 0.35, 0, 3.0, 6.0, 0.2, 0.2, 2)
show_hudmessage(0, ".: EXODUS :.^nMap will not changed in this round.")
}
}
public exodus_failed_and_change_map()
{
new cv_nextmap[32]
get_cvar_string("amx_nextmap", cv_nextmap, 31)
server_cmd("changelevel %s",cv_nextmap)
}

public zp_user_humanized_post(id)
{
if (zp_get_user_survivor(id))
set_user_health(id, get_pcvar_num(despair_surv_health))

if (is_survival_started == 1)
{
new health_multiplier = get_playersnum()

set_user_health(id, get_pcvar_num(survival_hum_health) * health_multiplier)
zp_set_user_ammo_packs(id, get_pcvar_num(survivor_start_ammopacks))
give_item(id,"item_kevlar")
give_item(id,"weapon_usp")
give_item(id,"ammo_45acp")
g ive_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")

if (is_user_bot(id) && get_pcvar_num(bot_survival_stupid) == 1 && is_valid_ent(id))
{
set_user_health(id,get_user_health(id) + get_pcvar_num(bot_survival_extrahp))
new randomweapon = random_num(1,3)
switch (randomweapon)
{
case 1:
{
give_item(id,"weapon_m4a1")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
}
case 2:
{
give_item(id,"weapon_mp5navy")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
}
case 3:
{
give_item(id,"weapon_m3")
give_item(id,"ammo_buckshot")
give_item(id,"ammo_buckshot")
}
}
}

}
}

public event_player_death()
{
new killer = read_data(1)
new victim = read_data(2)

MsgAnnounceFrags(killer)

if (is_despair_started == 1)
set_task(2.0,"despeir_ressurect",victim)

if (is_survival_started == 1)
{
set_task(2.0,"survival_ressurect",victim)
if (zp_get_user_nemesis(victim))
{
zp_set_user_ammo_packs(killer, zp_get_user_ammo_packs(killer) + get_pcvar_num(nemesis_kill_extra_ammo))
set_user_health(killer,get_user_health(killer) + get_pcvar_num(nemesis_kill_extra_hp))
client_cmd(0,"mp3 stop; mp3 loop %s",music_file[random_num(12,16)])
MsgScreenFade(killer,0,200,0,100,1)
}
if (!(zp_get_user_zombie(victim) || zp_get_user_nemesis(victim)))
for (new i = 1; i < get_maxplayers(); i++)
if ( !(zp_get_user_zombie(i) || zp_get_user_nemesis(i)) && is_valid_ent(i) && !is_user_alive(victim))
{
set_user_health(i,get_user_health(i) + get_pcvar_num(friend_die_extra_hp))
MsgScreenFade(i,200,0,0,100,1)
}
}
}

public despeir_ressurect(dinner)
{
new name[33]

if ((is_user_alive(dinner) == 0) && zp_get_user_zombie(dinner))
{
if (random_num(1,100) < is_nemesis_chance && is_nemesis_chance > get_pcvar_num(namesis_min_chance))
{
zp_respawn_user(dinner, ZP_TEAM_ZOMBIE)
zp_make_user_nemesis(dinner)
set_user_health(dinner, get_pcvar_num(despair_nemesis_health))
get_user_name(dinner,name,32)

is_nemesis_chance = 0

MsgChat(dinner,MSG_ALL,"^x04[EXODUS]^x01 Player ^x03%s^x01 is a nemesis!")
}else{
zp_respawn_user(dinner, ZP_TEAM_ZOMBIE)
is_nemesis_chance++

if (is_nemesis_chance < get_pcvar_num(namesis_min_chance))
{
new text[100]
format(text,99,"^x04[EXODUS]^x01 Chance to spawn nemesis: ^x04%d%",is_nemesis_chance)
MsgChat(dinner,MSG_ALL,text)
}else{
new text[100]
format(text,99,"^x04[EXODUS]^x01 Chance to spawn nemesis: ^x03%d%",is_nemesis_chance)
MsgChat(dinner,MSG_ALL,text)
}
}
}
}

/* Winner teams for zp_round_ended()
{
WIN_NO_ONE,
WIN_ZOMBIES,
WIN_HUMANS
*/
public zp_round_ended(winteam)
{
client_cmd(0,"mp3 stop")
/*
if (zp_is_plague_round() && winteam == WIN_HUMANS)
{
client_cmd(0,"stopsound; mp3 stop")
client_cmd(0,"spk sound/zp_salvation.wav")
}
*/

}

public zp_round_started(gamemode)
{
is_round_started = 1

if (is_despair_started == 1)
{
client_cmd(0,"stopsound; mp3 loop %s",music_file[random_num(7,11)])
client_cmd(0,"spk %s",announce_snd[0])
set_task(1.0,"reset_pws")
}else if (is_survival_started == 1)
{
client_cmd(0,"stopsound; mp3 loop %s",music_file[random_num(12,16)])
client_cmd(0,"spk %s",announce_snd[0])
set_task(1.0,"reset_pws")
}else{
switch (gamemode)
{
case MODE_INFECTION:client_cmd(0,"mp3 loop %s",music_file[0])
case MODE_NEMESIS:client_cmd(0,"mp3 loop %s",music_file[1])
case MODE_SURVIVOR:client_cmd(0,"mp3 loop %s",music_file[2])
case MODE_SWARM:client_cmd(0,"mp3 loop %s",music_file[3])
case MODE_MULTI:client_cmd(0,"mp3 loop %s",music_file[4])
case MODE_PLAGUE:client_cmd(0,"mp3 loop %s",music_file[5])
}
}

// это вообще мааленькая надстройка к оригинальному ZP, но влом было отдельный плагин писать
if (zp_is_swarm_round() || zp_is_plague_round())
{
for (new i = 1; i <= g_maxplayers; i++)
{
if (!(zp_get_user_zombie(i) || zp_get_user_nemesis(i) || zp_get_user_survivor(i)) && is_valid_ent(i))
set_user_health(i,get_pcvar_num(swarm_human_health))
}
}

}

public reset_pws()
{
for (new i = 1; i <= get_playersnum(); i++)
player_was_survivor[i] = 0
}

public add_pws(id)
{
player_was_survivor[id]++

new name[33]
get_user_name(id,name,32)
}

/* -------------------------------------------
|   Режим: SURVIVAL                           |
------------------------------------------- */
public start_survival_con_cmd(id)
{
if (is_user_admin(id) && is_survival_started == 0)
start_survival_mode
}

public unblind()
for (new i = 1; i <= g_maxplayers; i++)
MsgScreenFade(i,40,0,100,0)

public start_survival_mode()
{
if (get_pcvar_num(cvar_survival_minplayers) < 8)
set_pcvar_num(cvar_survival_minplayers, 8)

survival_sp_exists = 0

readSpawns
set_task(1.0,"unblind")

new survival_enabled = get_pcvar_num(is_survival_map)
if (survival_enabled == 1 && get_playersnum() >= get_pcvar_num(cvar_survival_minplayers) && is_round_started == 0)
{
remove_task(101)
remove_task(295)

set_hudmessage(200, 100, 0, -1.0, 0.2, 0, 1.0, 3.0, 0.2, 0.2, -1)
show_hudmessage(0, "Survival mode!")

is_survival_started = 1

new randomplayer
new g_srv_humcount
g_srv_humcount = 1

is_round_started = 1
new playernum = 1
new tempid[5]

// делаем людей
while (g_srv_humcount < 4)
{
randomplayer = random_num(1,get_playersnum())
if (is_user_alive(randomplayer) && !zp_get_user_survivor(randomplayer))
if (player_was_survivor[randomplayer] == 0)
{
zp_make_user_survivor(randomplayer) // делаем сурвивора, чтобы не далать сварм раунд и не ебаться с количеством люди/зомби
playernum = zp_get_human_count()
g_srv_humcount = zp_get_human_count()
tempid[zp_get_human_count()] = randomplayer
if (survival_sp_exists == 1)
entity_set_origin(randomplayer, g_SpawnVecs[playernum])
//     client_print(0,print_console,"[DEBUG] Playernum++ = %d, Human count = %d",playernum,g_srv_humcount)
}
}

for (new i = 1; i <= 4; i++)
{
zp_infect_user(tempid[i],_,1)
zp_disinfect_user(tempid[i],1)
set_task(1.5,"add_pws",tempid[i])
//   client_print(0,print_console,"[DEBUG] Player [%d] turned to human. Cycle count = %d",tempid[i],i)
}

if (survival_sp_exists == 0)
MsgChat(1, MSG_ALL, "^x04[EXODUS]^x01 Spawn points for survival mode not found!")

}

if (get_playersnum() < get_pcvar_num(cvar_survival_minplayers))
{
new cv_nextmap[32]
get_cvar_string("amx_nextmap", cv_nextmap, 31)

g_is_must_change_map = 1

set_hudmessage(255, 0, 0, -1.0, 0.35, 0, 3.0, 30.0, 0.2, 0.2, 2)
show_hudmessage(0, ".: EXODUS :.^nSurvival cannot be started, because %d players is needed!^nThe map will be changed to ^"%s^"^n^nIf you don't want to change map or if you want to wait other players, write /stayhere in chat.",get_pcvar_num(cvar_survival_minplayers),cv_nextmap)

set_task(get_pcvar_float(time_to_change_map),"exodus_failed_and_change_ map ",101)

for (new i = 1; i <= g_maxplayers; i++)
MsgScreenFade(i,40,0,100,0)
}
}

public readSpawns()
{
new Float:temporigin[3]
new i = 1
new ent = -1
new check[256]

// для удобства мэпперов
while((ent = find_ent_by_class(ent, "info_target")) != 0)
{
entity_get_string(ent, EV_SZ_targetname, check, 31)
if(equal(check, ".survivorspawn"))
{
get_entity_origin(ent, temporigin)
//   client_print(0,print_console,"[DEBUG] %d %d %d",floatround(temporigin[0]),floatround(temporigin[1]),floatround(temporigin[2]))
g_SpawnVecs[i] = temporigin
i++
survival_sp_exists = 1
}
}
//    client_print(0,print_console,"[DEBUG] Found %d ^"survivor spawn point^" entities.",i-1)
}

public survival_ressurect(id)
{
if ((is_user_alive(id) == 0) && (zp_get_user_zombie(id) || zp_get_user_nemesis(id)))
{
new name[33]
zp_respawn_user(id, ZP_TEAM_ZOMBIE)
if (random_num(1,100) <= get_pcvar_num(infectionbomb_chance) && is_user_alive(id))
{
get_user_name(id,name,31)
MsgChat(id,MSG_ALL,"^x04[EXODUS]^x01 Zombie ^x03%s^x01 spawn with ^x04Infection Bomb^x01!",name)
give_item(id,"weapon_hegrenade")
}else if(random_num(1,100) <= get_pcvar_num(nemesis_survival_chance) && is_user_alive(id) && zp_get_human_count() == 4 && nemesis_can_spawn == 1)
{
get_user_name(id,name,31)
zp_make_user_nemesis(id)
client_cmd(0,"mp3 stop; mp3 loop %s",music_file[6])
nemesis_can_spawn = 0
MsgChat(id,MSG_ALL,"^x04[EXODUS]^x01 Zombie ^x03%s^x01 spawn as ^x03Nemesis^x01!",name)
}
}
}

public zp_user_infected_post(id,infector)
{
if (get_pcvar_num(is_survival_map) == 1)
zp_set_user_ammo_packs(id, 0)

MsgAnnounceFrags(infector)
}

public client_putinserver(id)
{
player_was_survivor[id] = 0
}

// =========================================================
// STOCKS ==================================================
// =========================================================

stock get_entity_origin(ent, Float:fEntOrigin[3])
{
return pev(ent, pev_origin, fEntOrigin)
}

stock MsgChat(id, msgtype, const text[], any:...)
{
message_begin(msgtype,get_user_msgid("SayText"),{0,0,0},id)
write_byte(id)
write_string(text)
message_end()
}

stock MsgAnnounceFrags(activator)
{
if (is_despair_started == 0 || is_survival_started == 0)
{
new name[33]

get_user_name(activator,name,32)
set_hudmessage(255, 0, 0, -1.0, 0.2, 0, 1.0, 1.0, 1.0, 1.0, -1)

switch (get_user_frags(activator))
{
case 20:
{
client_cmd(0,"spk %s",announce_snd[1])
show_hudmessage(0, "%s is on domination!",name)
}
case 40:
{
client_cmd(0,"spk %s",announce_snd[2])
show_hudmessage(0, "%s is on blood bath!",name)
}
case 60:
{
client_cmd(0,"spk %s",announce_snd[3])
show_hudmessage(0, "%s is a maniac!",name)
}
case 80:
{
client_cmd(0,"spk %s",announce_snd[4])
show_hudmessage(0, "%s is on a termination!",name)
}
case 100:
{
client_cmd(0,"spk %s",announce_snd[5])
show_hudmessage(0, "%s is a killing machine!",name)
}
}
}
}

stock MsgScreenFade(id, red=200, green=100, blue=0, alpha=255, type=0)
{
if (is_valid_ent(id))
{
message_begin(MSG_ONE, g_msgScreenFade, _, id)
if (type == 0) // if type = 0 - blind, else - fade out
{
write_short(4)
write_short(0)
write_short(FFADE_STAYOUT)
}else{
write_short(UNIT_SECOND)
write_shor t(0)
w rite_short(FFADE_IN)
}
write_byte(red)
write_byte(green)
write_byte(blue)
write_byte(alpha)
message_end()
}
}


Сообщение отредактировал HoRRoR - Суббота, 08.08.2009, 23:21:33
 
defaultNick8433Дата: Суббота, 08.08.2009, 23:22:24 | Сообщение # 5
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Quote (HoRRoR)
MsgChat у меня не хочет выводить %d =(((

Что именно не хочет выводить


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
HoRRoRДата: Суббота, 08.08.2009, 23:29:49 | Сообщение # 6
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
например
Code
%d",nemesis_chance)

он вместо числа так и пишет в чате %d

также где %s всё время пишет ник, который активировал событие оО (впринципе мне только ник и надо, но на будущее, мало ли)

 
HoRRoRДата: Суббота, 08.08.2009, 23:30:33 | Сообщение # 7
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
т.к. форум убил форматирование, приаттачил исходник
Прикрепления: 8651574.sma (21.1 Kb)
 
defaultNick8433Дата: Воскресенье, 09.08.2009, 11:22:59 | Сообщение # 8
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
is_nemesis_chance не может отвечать за сообщение,поэтому и выводится в чат %d.А что вобще обозначать должно is_nemesis_chance.
MsgChat(dinner,MSG_ALL,"^x04[EXODUS]^x01 Player ^x03%s^x01 is a nemesis!")
Замени на это
format(text,99,"^x03%s^x01 is nemesis",name)


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
HoRRoRДата: Воскресенье, 09.08.2009, 12:10:13 | Сообщение # 9
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
defaultNick8433,
какой сейчас шанс, что появится немезис
 
defaultNick8433Дата: Воскресенье, 09.08.2009, 18:17:15 | Сообщение # 10
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Причём здесь немезис,те что надо то

Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
HoRRoRДата: Воскресенье, 09.08.2009, 19:50:21 | Сообщение # 11
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
уже не надо, решил проблемму, спионерив код zp_colored_print из ядра ZP
 
egor_hakerДата: Воскресенье, 09.08.2009, 23:43:38 | Сообщение # 12
Майор
Группа: Пользователи
Сообщений: 99
Репутация: 0
Статус: Не в сети
а где карты можно скачать?

Добавлено (2009-08-09, 11:43 Pm)
---------------------------------------------
скрипт не работает!
при compile ошибку выдает и не одну!


мой сайт
http://cs-mapping.ucoz.net
 
HoRRoRДата: Понедельник, 10.08.2009, 00:02:01 | Сообщение # 13
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
egor_haker, как бэ мод еще не готов и я ничего в инет не выкладывал
 
egor_hakerДата: Понедельник, 10.08.2009, 18:00:14 | Сообщение # 14
Майор
Группа: Пользователи
Сообщений: 99
Репутация: 0
Статус: Не в сети
Quote (HoRRoR)
как бэ мод еще не готов и я ничего в инет не выкладывал

ну тогда сори, я думал плагин выложин чтоб люди смогли его оценить!
Мой ник cs-mapping "Hedgehog" :D


мой сайт
http://cs-mapping.ucoz.net
 
HoRRoRДата: Пятница, 14.08.2009, 13:46:17 | Сообщение # 15
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
сделал два видео:
http://www.youtube.com/watch?v=LONuRFEW9Ac
http://www.youtube.com/watch?v=JdpXYEtQ57A
 
AMX Mod X Форум » Плагины » Готовые плагины » [w.i.p.] EXODUS
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024