[Ajuda] Problema dano nas armas
#1

O que tem de errado na modificaзгo dos danos das armas no meu servidor? Nгo sei o porque, mas nгo estб funcionando direito...
Quando recebe o dano da uns BUGs loucos com colete, enche a vida, nгo faзo a menor ideia do pq...
Код:
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{	
	// modificando danos nas armas
	new Float:dmg;
	if(GetPlayerWeapon(playerid) == 30) { // ak
		if(aktype[playerid] == 1) { dmg = 15.0; }
		else if(aktype[playerid] == 2) { dmg = 16.0; }
		else if(aktype[playerid] == 3) { dmg = 17.0; }
		else if(aktype[playerid] == 4) { dmg = 18.0; }
		else if(aktype[playerid] == 5) { dmg = 20.0; }
	}

	// calculo de bonus ou diminuiзгo do dano dependendo de onde pegar
	
	switch(bodypart) {
		// warning 213: tag mismatch
		case 5: // BODY_PART_LEFT_ARM - braзo esquerdo
		{
			dmg = dmg * 0.5;
		}
		case 6: // BODY_PART_RIGHT_ARM - braзo direito
		{
			dmg = dmg * 0.5;
		}
		case 7: // BODY_PART_LEFT_LEG - perna esquerda
		{
			dmg = dmg * 0.5;
		}
		case 8: // BODY_PART_RIGHT_LEG - perna direita
		{
			dmg = dmg * 0.5;
		}
		case 4: // BODY_PART_GROIN - virilha
		{
			dmg = dmg * 1.0;
		}
		case 3: // BODY_PART_TORSO  - peito
		{
			dmg = dmg * 1.2;
		}
		case 9: // BODY_PART_HEAD  - cabeзa
		{
			dmg = dmg * 1.5;
		}
	}

	// onde tira a vida e o colete
	new Float:resto;
	new Float:a;
	GetPlayerArmour(damagedid, a);
	if(a > 0.0) { // se tiver colete
		SetPlayerArmourEx(damagedid, -dmg);
		resto = dmg - a;
		if(resto > 0.0) {
			SetPlayerHealthEx(damagedid, -resto);
		}
	}
	else {
		SetPlayerArmourEx(damagedid, -dmg);
	}
    return 1;
}
Reply
#2

Mude seu sistema
Use esse do Glimma, mais optimizado, bem feito e realista!
As especificaзхes esta em espanhol


Aqui
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)