Helló!
Az lenne a gondom, hogy lenne egy ilyesmi scriptem(ezt csak példának írtam, nem ez az eredeti) de nem mükszik rendesen. Ez egy timer segítségével fut le, úgy kéne működjön, hogy amíg el nem éri a 3 életet, addig random 1-2-ket von le, ehelyett annyiszor hajtja végre az ellenőrzést, ahány \"cucc\" létre van hozva. Hol ronthattam el? :(
#define MAX_CUCC 100
forward Frissites();
public Frissites()
{
for(new i; i < MAX_CUCC; i++)
{
if(ValamiInfo[Health] <= 100)
{
switch(random(2))
{
case 0: TransformData[status] -= 1;
case 1: TransformData[status] -= 2;
}
}
if(ValamiInfo[Health] == 3)
{
switch(random(2))
{
case 0: TransformData[status] -= 1;
case 1: TransformData[status] = 1;
}
}
if(ValamiInfo[Health] == 1)
{
ValamiInfo[Health] = 0;
CreateExplosion(0, 0, 0, 2, 15.0);
}
}
return 1;
}
Nah, így addig von le 1-2 életet amig el nem éri a 3-at, és ha 1 annak a valaminek az élete, akkor felrobbantja.
Beraktam spoilerba.
#define MAX_CUCC 100
forward Frissites();
new fTimer[MAX_PLAYERS];
public Frissites()
{
for(new i; i < MAX_CUCC; i++)
{
if(ValamiInfo[Health] > 3)
{
switch(random(2))
{
case 0: ValamiInfo[Health] -= 1;
case 1: ValamiInfo[Health] -= 2;
}
}
if(ValamiInfo[Health] == 2)
{
case 0: ValamiInfo[Health] -= 1;
}
if(ValamiInfo[Health] == 1)
{
ValamiInfo[Health] = 0;
CreateExplosion(0, 0, 0, 2, 15.0);
KillTimer(fTimer[playerid]);
}
}
return 1;
}
Ha így sem jó, akkor te rontassz el valamit amikor berakod. Nem lehet, hogy többször van elindítva?
#define MAX_CUCC 100
forward Frissites();
new fTimer[MAX_PLAYERS];
public Frissites()
{
for(new i; i < MAX_CUCC; i++)
{
if(ValamiInfo[Health] > 3)
{
switch(random(2))
{
case 0: ValamiInfo[Health] -= 1;
case 1: ValamiInfo[Health] -= 2;
}
return 1;
}
if(ValamiInfo[Health] == 2)
{
case 0: ValamiInfo[Health] -= 1;
return 1;
}
if(ValamiInfo[Health] == 1)
{
ValamiInfo[Health] = 0;
CreateExplosion(0, 0, 0, 2, 15.0);
KillTimer(fTimer[playerid]);
return 1;
}
}
return 1;
}