(
#include maps\_utility;
#include common_scripts\utility;
#include maps\_zombiemode_utility;
init()
{
thread onConnect();
}
onConnect()
{
for(;;)
{
level waittill( "connecting", player );
player thread zombiesleft_hud();
player thread zombie_health_hud();
}
}
///////////////////////////////////////////////////////////
////////////////////////COUNTER ZM/////////////////////////
///////////////////////////////////////////////////////////
zombiesleft_hud()
{
Remaining = create_simple_hud(); //Hud Zombie Value
Remaining.horzAlign = "center";
Remaining.vertAlign = "bottom";
Remaining.alignX = "left";
Remaining.alignY = "bottom";
Remaining.y = -5;
Remaining.x = 0;
Remaining.foreground = 1;
Remaining.fontscale = 1.5;
Remaining.alpha = 0;
Remaining.color = ( 0, 255, 0 );
ZombiesLeft = create_simple_hud(); //Hud Zombie Text
ZombiesLeft.horzAlign = "center";
ZombiesLeft.vertAlign = "bottom";
ZombiesLeft.alignX = "left";
ZombiesLeft.alignY = "bottom";
ZombiesLeft.y = -5;
ZombiesLeft.x = -29;
ZombiesLeft.foreground = 1;
ZombiesLeft.fontscale = 1.5;
ZombiesLeft.alpha = 0;
ZombiesLeft.color = (0.7, 0, 0);
ZombiesLeft SetText("ZM:");
thread fade_in(Remaining, 1, 0.5);
thread fade_in(ZombiesLeft, 1, 0.5);
while(1)
{
remainingZombies = get_enemy_count() + level.zombie_total;
Remaining SetValue(remainingZombies);
if(remainingZombies == 0 )
{
Remaining SetText("Waiting...");
thread fade_out(Remaining, 0, 0.5);
thread fade_out(ZombiesLeft, 0, 0.5);
while(1)
{
remainingZombies = get_enemy_count() + level.zombie_total;
if(remainingZombies != 0 )
{
thread fade_in(Remaining, 1, 0.5);
thread fade_in(ZombiesLeft, 1, 0.5);
break;
}
wait 0.5;
}
}
wait 0.5;
}
}
fade_in(hudElem, targetAlpha, duration)
{
steps = 10;
stepTime = duration / steps;
for(i = 0; i <= steps; i++)
{
hudElem.alpha = i * (targetAlpha / steps);
wait stepTime;
}
hudElem.alpha = targetAlpha;
}
fade_out(hudElem, targetAlpha, duration)
{
steps = 10;
startAlpha = hudElem.alpha;
stepTime = duration / steps;
for(i = 0; i <= steps; i++)
{
hudElem.alpha = startAlpha - i * ((startAlpha - targetAlpha) / steps);
wait stepTime;
}
hudElem.alpha = targetAlpha;
}
////////////////////////////////////////////////////////////////////
////////////////////////VIEWER ZOMBIE HP////////////////////////////
////////////////////////////////////////////////////////////////////
zombie_health_hud()
{
level endon("game_ended");
self endon("disconnect");
health_hud = NewHudElem();
health_hud.alignX = "center";
health_hud.alignY = "middle";
health_hud.horzAlign = "center";
health_hud.vertAlign = "middle";
health_hud.y = 50;
health_hud.alpha = 0;
health_hud.fontScale = 1.4;
health_hud.color = (1, 0.8, 0);
health_hud.hidewheninmenu = true;
health_bar = NewHudElem();
health_bar.alignX = "center";
health_bar.alignY = "middle";
health_bar.horzAlign = "center";
health_bar.vertAlign = "middle";
health_bar.y = 80;
health_bar.x = -75;
health_bar.alpha = 0;
health_bar.width = 150;
health_bar.height = 12;
health_bar.foreground = 1;
health_bar.hidewheninmenu = true;
health_bar.color = (0, 1, 0);
last_target = undefined;
while(1)
{
zombie = self get_zombie_in_crosshair();
if(isDefined(zombie) && isAlive(zombie))
{
if(!isDefined(last_target) || zombie != last_target)
{
health_hud FadeOverTime(0.3);
health_hud.alpha = 1;
health_bar FadeOverTime(0.3);
health_bar.alpha = 1;
last_target = zombie;
}
health = zombie.health;
if(isDefined(zombie.maxhealth))
max_health = zombie.maxhealth;
else
max_health = 150;
enemy_type = "Enemy";
if(isDefined(zombie.model) && (zombie.model == "zombie_dog" || zombie.classname == "actor_zombie_dog"))
enemy_type = "Hellhound";
else if(isDefined(zombie.is_zombie))
enemy_type = "Zombie";
health_hud SetText(enemy_type + " HP: " + health + "/" + max_health);
health_hud.alpha = 1;
health_percent = health / max_health;
if(health_percent > 0.5)
health_bar.color = (0, 1, 0);
else if(health_percent > 0.25)
health_bar.color = (1, 1, 0);
else
health_bar.color = (1, 0, 0);
health_bar.width = int(150 * health_percent);
health_bar.alpha = 1;
}
else
{
if(isDefined(last_target))
{
health_hud FadeOverTime(0.3);
health_hud.alpha = 0;
health_bar FadeOverTime(0.3);
health_bar.alpha = 0;
last_target = undefined;
}
}
wait 0.05;
}
}
get_zombie_in_crosshair()
{
self endon("death");
start = self.origin + (0,0,60);
end = start + AnglesToForward(self.angles) * 1000;
trace = BulletTrace(start, end, true, self);
if(!isDefined(trace["entity"]))
return undefined;
entity = trace["entity"];
if(!isDefined(entity))
return undefined;
distance = Distance(self.origin, entity.origin);
if(distance > 400)
return undefined;
return entity;
}
This script shows the health status of zombies and, of course, hellhounds, etc. (When aiming at a zombie or a dog.)
(If you want to turn off the zombie hp indicator, just comment in line 16 and then it will not be displayed.)
Этот скрипт показывает состояние здоровья зомби и конечно же, адских гончих и т.д. (когда наводишь прицел на зомби или на собаку.)
(Если хотите выкл индикатор здоровье зомби то просто закоментируйте в 16 строке и тогда не будет отображаться.)
//player thread zombie_health_hud();
Tutorial
- Go to the plutonium folder C:\Users\YOU_NAME\AppData\Local\Plutonium\storage\t4\raw\scripts\sp
- Create a text document and name it whatever you want, but replace the extension of this .txt with this .gsc
- We enter my code in the notepad
- And we check if you did everything right.
Руководство
- Заходим в папку plutonium C:\Users\YOU_NAME\AppData\Local\Plutonium\storage\t4\raw\scripts\sp
- Создаем текстовый документ и называем его как хотите, но заменяем расширение это .txt на .gsc
- Вставляем мой код в блокнот
- И проверяем, все ли вы сделали правильно.