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 ==
{
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!