От
phizl
Доброго времени суток, у меня в моде есть система заточки аксессуаров и она работает, все значения записываются, но по каким-то причинам увеличение урона не срабатывает. У меня есть инклуд weapon-config, до этого в нём не было перехвата функции, я его сделал и по идее дефолтные паблики OnPlayerGiveDamage и OnPlayerTakeDamage щас срабатывают. Буду очень благодарен любой помощи! (К слову, в переменной
pInfo[playerid][pAcsSharpening] все значения равны 11)
Паблики OnPlayerGiveDamage и OnPlayerTakeDamage в самом моде:
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
new damage;
switch(pInfo[playerid][pAcsSharpening][2])
{
case 0..3: damage = 0;
case 4..11: damage = pInfo[playerid][pAcsSharpening][2]-3;
case 12: damage = 8;
}
amount += (amount / 100) * damage;
switch(pInfo[playerid][pAcsSharpening][3])
{
case 0..3: damage = 0;
case 4..11: damage = pInfo[playerid][pAcsSharpening][3]-3;
case 12: damage = 8;
}
amount += (amount / 100) * damage;
return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
new nodamage;
if(pInfo[playerid][pAcsSharpening][1] != 0)
{
switch(pInfo[playerid][pAcsSharpening][1])
{
case 1..3: nodamage = 0;
case 4: nodamage = 2;
case 5: nodamage = 4;
case 6: nodamage = 5;
case 7: nodamage = 6;
case 8: nodamage = 8;
case 9: nodamage = 10;
case 10: nodamage = 12;
case 11,12: nodamage = 15;
}
}
if(pInfo[playerid][pAcsSharpening][4] != 0)
{
switch(pInfo[playerid][pAcsSharpening][4])
{
case 1..3: nodamage = 0;
case 4..11: nodamage = pInfo[playerid][pAcsSharpening][4]-2;
case 12: nodamage = 9;
}
}
new damage;
switch(pInfo[playerid][pAcsSharpening][2])
{
case 0..3: damage = 0;
case 4..11: damage = pInfo[playerid][pAcsSharpening][2]-3;
case 12: damage = 8;
}
amount += (amount / 100) * damage;
switch(pInfo[playerid][pAcsSharpening][3])
{
case 0..3: damage = 0;
case 4..11: damage = pInfo[playerid][pAcsSharpening][3]-3;
case 12: damage = 8;
}
amount += (amount / 100) * damage;
if(pInfo[playerid][pAcsSharpening][1] == 0 && pInfo[playerid][pAcsSharpening][4] == 1 || pInfo[playerid][pAcsSharpening][4] == 0 && pInfo[playerid][pAcsSharpening][2] == 1) amount -= (amount / 100) * nodamage;
if(pInfo[playerid][pAcsSharpening][4] == 1 && pInfo[playerid][pAcsSharpening][2] == 1) amount -= (amount / 100)*nodamage*2;
return 1;
}
Эти же паблики, но в weapon-config с моим перехватом (расположен внизу каждого паблика), мало ли как-то не так сделал