Szerző Téma: Változóból egyszeri levonás  (Megtekintve 725 alkalommal)

Változóból egyszeri levonás
« Dátum: 2015. június 20. - 18:51:54 »
0 Show voters
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;
}
« Utoljára szerkesztve: 2015. június 20. - 23:48:11 írta RusH. »

Változóból egyszeri levonás
« Válasz #1 Dátum: 2015. június 20. - 19:26:38 »
+1 Show voters
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.
Spoiler for A scripted:

#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;
}

Változóból egyszeri levonás
« Válasz #2 Dátum: 2015. június 21. - 12:34:19 »
0 Show voters
Igen, ez eddig nekem is megvan, csak az a gond hogy nem 1-2-ket von le hanem 4-5-öt :/

Változóból egyszeri levonás
« Válasz #3 Dátum: 2015. június 21. - 19:13:41 »
+1 Show voters
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;
}

Változóból egyszeri levonás
« Válasz #4 Dátum: 2015. június 21. - 19:33:39 »
0 Show voters
Igen, többször futott le mint kellett volna :D Köszönöm a segítséget!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal