PDA

View Full Version : Electric fence



Mariusz
1st October 2017, 21:07
Why I cannot see "milky ways"? Try to find error.




init()
{
// Search for an electric fence objects
electricFence = GetEntArray("electric_fence", "targetname");
if(electricFence.size < 1)
{
return;
}

// Precache models used by this spawner
PrecacheShader("electric_screen_01");
PrecacheShader("electric_screen_02");
PrecacheShader("electric_screen_03");
for(i = 0; i < electricFence.size; i++)
{
fence = electricFence[i];
fence thread ElectricFence(int(fence.electric_fence_damage));
}
}

ElectricFence(damage)
{
for(;;)
{
self waittill("trigger",user);
self playloopsound("shockerloop");
user [[level.callbackPlayerDamage]](user, user, damage, 1, "MOD_MELEE", "zom_mp", user.origin + (0, 0, 40), vectornormalize(user.origin - self.origin), "none", 0);
self thread DamagePlayer(user);
wait 0.5;
self stoploopsound();
}
}


DamagePlayer(player)
{
player endon("disconnect");
player notify("endelectric");
player endon("endelectric");

if(IsDefined(player.hud_ElectricScreen))
{
for (b = 0; b < player.hud_ElectricScreen.size; b++)
{
if (isDefined(player.hud_ElectricScreen[b])) player.hud_ElectricScreen[b] destroy();
}
}
else
{
player.hud_ElectricScreen = [];
}

amount = randomInt(3) + 6;

images = [];
images[images.size] = "electric_screen_01";
images[images.size] = "electric_screen_02";
images[images.size] = "electric_screen_03";

for (b = 0; b < amount; b++)
{
x = randomInt(640);
y = randomInt(480);
size = randomInt(64) + 256;

player.hud_ElectricScreen[b] = newClientHudElem(player);
player.hud_ElectricScreen[b].horzAlign = "fullscreen";
player.hud_ElectricScreen[b].vertAlign = "fullscreen";
player.hud_ElectricScreen[b].alignX = "center";
player.hud_ElectricScreen[b].alignY = "middle";
player.hud_ElectricScreen[b].x = x;
player.hud_ElectricScreen[b].y = y;
player.hud_ElectricScreen[b].alpha = 1.0;
player.hud_ElectricScreen[b].color = (1.0, 1.0, 1.0);
player.hud_ElectricScreen[b] setShader(images[randomint(images.size)], size, size);
}
wait 1;

for (b = 0; b < amount; b++)
{
player.hud_ElectricScreen[b] fadeovertime(1);
player.hud_ElectricScreen[b].alpha = 0;
}

wait 1.1;

for (b = 0; b < player.hud_ElectricScreen.size; b++)
{
if (isDefined(player.hud_ElectricScreen[b])) player.hud_ElectricScreen[b] destroy();
}
}

Paho
5th October 2017, 18:30
Do you have material in .iwd?
check work shader from simple script:

self.zaebal setShader("electric_screen_01", 640, 480);

or replace "electric_screen_01" to "stance_stand" and check (+precache)

write printf("1....."); in all { ... } and find place where stops

Mariusz
6th October 2017, 01:05
Thank you, I will work on it in a few days.