Guten Morgen,
ich hab das hier mal provisorisch gescriptet, und mit Absicht auch etwas umständlicher, damit ich die Logik dahinter verstehe, aber so recht klappen will das nicht.
Mein Ziel ist es HP und AP in die Schadensberechnung mit einzubeziehen.
switch(weaponid)
{
case BRASS_KNUCKLES:
{
new Float:HP = GetPlayerHealth(playerid, HP),
Float:AP = GetPlayerArmour(playerid, AP),
Float:DMG = 5;
if(AP != 0)
{
if(DMG > AP)
{
SetPlayerArmour(playerid, 0);
DMG = DMG - AP;
SetPlayerHealth(playerid, HP - DMG);
}
else if(DMG <= AP) SetPlayerArmour(playerid, HP - DMG);
else if(DMG == AP) SetPlayerArmour(playerid, 0);
}
else SetPlayerHealth(playerid, HP - DMG);
}
case KATANA:
{
new Float:HP = GetPlayerHealth(playerid, HP),
Float:AP = GetPlayerArmour(playerid, AP),
Float:DMG = 40;
if(AP != 0)
{
if(DMG > AP)
{
SetPlayerArmour(playerid, 0);
DMG = DMG - AP;
SetPlayerHealth(playerid, HP - DMG);
}
else if(DMG <= AP) SetPlayerArmour(playerid, HP - DMG);
else if(DMG == AP) SetPlayerArmour(playerid, 0);
}
else SetPlayerHealth(playerid, HP - DMG);
}
case KNIFE:
{
new Float:HP = GetPlayerHealth(playerid, HP),
Float:AP = GetPlayerArmour(playerid, AP),
Float:DMG = 15;
if(AP != 0)
{
if(DMG > AP)
{
SetPlayerArmour(playerid, 0);
DMG = DMG - AP;
SetPlayerHealth(playerid, HP - DMG);
}
else if(DMG <= AP) SetPlayerArmour(playerid, HP - DMG);
else if(DMG == AP) SetPlayerArmour(playerid, 0);
}
else SetPlayerHealth(playerid, HP - DMG);
}
Kompilieren will es zwar, aber, wenn ich z.B. mit einer Katana angreife, stirbt der Spieler sofort.
Wo liegt mein Denkfehler?