Sziasztok! A segítségeteket szeretném kérni, hogy,hogyan lehetne ezt megoldani,ezt a scriptet,hogy működdjön? Elnézést kérek a rossz spoilerért, nem tudtam megoldani :S
Alul van, valahogy megoldottam.
Dupla hozzászólás automatikusan összefûzve. ( [time]2015. október 19. 19:02:03[/time] )
Sziasztok! A segítségeteket szeretném kérni, hogy,hogyan lehetne ezt megoldani,ezt a scriptet,hogy működdjön? Elnézést kérek a rossz spoilerért, nem tudtam megoldani :S
}
public OnPlayerGiveDamage( playerid, damagedid, Float:amount, weaponid, bodypart )
{
if( weaponid == 0 ) return 0;
if( bodypart == 9 && !IsPlayerInAnyVehicle( damagedid ) ) // HEAD
SetPlayerHealth( damagedid, 0 );
if( bodypart == 7 || bodypart == 8 ) // LEGS
new Float:armour;
GetPlayerArmour(damagedid, armour);
if(armour <= 0)
{
new Float:health;
GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid, health-10.0);
}
}
if( bodypart == 3 ) // TORSO/CHEST
{
new Float:armour;
GetPlayerArmour(damagedid, armour);
if(armour <= 0)
{
new Float:health;
GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid, health-20.0);
}
}
return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(IsPlayerInRangeOfPoint(issuerid, 5.0, 2984.7747,1535.7643,43.0559) && GetPlayerInterior(issuerid) == 5)
{
if(pInfo[issuerid][pBorton] > 0)
{
pInfo[issuerid][pBorton] += 60;
SendClientMessage(issuerid, PIROS, \"Börtönben/kórházban nem verekszel! +1p\");
}
}
if(amount >= 5)
{
SendClientMessage(playerid, NARANCS, \"(( Megsebeztek! ))\");
SendClientMessage(issuerid, NARANCS, \"(( Megsebezted! ))\");
[/quote]
a public végén használj
return 0
-t, igy a szerver az eredetileg kapott sebzést nem dolgozza fel.
egy hirtelen példa:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(weaponid == 4)
{
new float:HP;
GetPlayerHealth(playerid,HP);
SetPlayerHealth(playerid,HP-20);
}
return 0;
}
A kódot nem teszteltem!
A scriptnek elvileg úgy kéne működnie, hogy ha valaki sebzést kap késsel, akkor az eredeti sebzés értékét nem vonja le, csak a 20 HP-t.
realisztikusabb, ha a sebzés mértéke véletlenszerű és csak a maximumot határozod meg, kb igy:
if(weaponid == 4)
{
new float:HP;
GetPlayerHealth(playerid,HP);
SetPlayerHealth(playerid,HP-random(20));
//a 19 lesz a maximum, amit adhatsz a késsel
// a random az első 20 szám közt(0-19) fog sorsolni.
}
remélem a kérdésre válaszoltam és segitettem!