Szerző Téma: Golyóanim hiba  (Megtekintve 370 alkalommal)

Golyóanim hiba
« Dátum: 2016. Január 26. - 21:59:47 »
0 Show voters
Sziasztok. Megint segítség kellene nekem. A kód gondolom átlátható, a probléma a következő.
Először minden fegyver esetében kaptuk a cmd_me-t, ezért ledefiniáltam a teszt kedvéért, hogy 22 gunid esetében kapja, egyéb esetben (else) ne. Ez így nem működött, rájöttem hogy az else-t is le kell definiálni, és megértetni hogy konkrétan mi az az else.
Most tök jól összehoztam, 22 esetében kapja, 0 esetében nem, és a többi esetben sem. Viszont megpróbáltam több fegyvert belevonni, a következő módon:
 
 if (weaponid == 22 || 23 || 24 ||25) //stb

 
Megpróbálkoztam azzal, hogy:
 
 if (weaponid == 22 | 23 | 24 |25) //hátha az a gond, hogy két | jel van.

 
Egyik sem volt jó megoldás. Kb végigzongoráztam minden lehetőséget, de talán ti tudtok megoldást a problémára.
A lényeg tehát, hogyha nem csak egy fegyver van if, és else esetében, hanem többet akarok, akkor már nagyon nem úgy néz ki, ahogy szeretném. Ötlet?
 
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
     if(!IsPlayerConnected(playerid)) return 0;
     if(!IsPlayerConnected(issuerid)) return 0;
 
if (weaponid == 22)
{
if(issuerid != INVALID_PLAYER_ID && bodypart == 9)
     {
        cmd_me(playerid,\"golyót kapott a fejébe\");
        SetPlayerHealth(playerid, 0.0);
     }
else if(issuerid != INVALID_PLAYER_ID && bodypart == 8)
     {
        cmd_me(playerid,\"golyót kapott a jobb lábába\");
        ApplyAnimation(playerid, \"SWEET\", \"SWEET_INJUREDLOOP\", 4.1, true, false, false, true, 0, true); // golyot kapott
     }
else if(issuerid != INVALID_PLAYER_ID && bodypart == 7)
     {
        cmd_me(playerid,\"golyót kapott a bal lábába\");
        ApplyAnimation(playerid, \"SWEET\", \"SWEET_INJUREDLOOP\", 4.1, true, false, false, true, 0, true); // golyot kapott
     }
else if(issuerid != INVALID_PLAYER_ID && bodypart == 6)
     {
        cmd_me(playerid,\"golyót kapott a jobb kezébe\");
     }
else if(issuerid != INVALID_PLAYER_ID && bodypart == 5)
     {
        cmd_me(playerid,\"golyót kapott a bal kezébe\");
     }
 else if(issuerid != INVALID_PLAYER_ID && bodypart == 4)
     {
        cmd_me(playerid,\"golyót kapott az ágyékába\");
        ApplyAnimation(playerid, \"SWEET\", \"SWEET_INJUREDLOOP\", 4.1, true, false, false, true, 0, true); // golyot kapott
     }
 else if(issuerid != INVALID_PLAYER_ID && bodypart == 3)
     {
        cmd_me(playerid,\"golyót kapott a testébe\");
     }
else if (weaponid == 0)
{
}
}
    return 1;
}

 

Dupla hozzászólás automatikusan összefûzve. ( 2016. Január 26. - 22:44:22 )

Megoldva, Aeginnek köszönet!
« Utoljára szerkesztve: 2016. Január 26. - 22:44:22 írta kacsaporkolt »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal