• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Questions about monster

Sentielo

Advanced OT User
Joined
Feb 3, 2008
Messages
2,388
Reaction score
232
Location
I am from Holland, where the fack you from :)
Hello Otland,

I have some questions about the monster formula melee and distance skills.

First of all, about the melee skill. If it looks like this:
<attack name="melee" interval="2000" skill="24" attack="16"/>
What does the skill "24" mean and what does the attack "16" mean in a formula? How do I know the minimum damage and the maximum damage?

I got the same question for distance fighting, most of the distance fighting spells looks like the following:
<attack name="physical" interval="1000" chance="10" range="7" min="-5" max="-40">
<attribute key="shootEffect" value="throwingknife"/>
Isn't it able to make it with skill and attack too? If so, please say how.

Remember, helping me out, will bring otland to a better monsterpack. (see the link bellow).

Thanks in advance,
Sentielo
 
Code:
<attack name="melee" interval="2000" skill="24" attack="16"/>

Skill stand for, e.g. Fist Fighting, and attack stands for the weapon attack. It's like a character in Tibia he has a certain Skill and his Weapon has a certain attack.

Code:
<attack name="physical" interval="1000" chance="10" range="7" min="-5" max="-40">
<attribute key="shootEffect" value="throwingknife"/>

Maybe you could tray this (below):

Code:
<attack name="physical" interval="1000" chance="10" range="7" skill="35" attack="10"/>
<attribute key="shootEffect" value="spear"/>

I don't know, for it is working. Just changed it in the script.
 
@ up
Thanks for your reply, but I already knew that.
This wasn't where I were asking for.
If your skill is 24 and your attack is 16, what is the minimum hit and what is the maximum hit. So how will the formula look like?

~Sentielo

Kurwa it's like you are wearing some axe atk. 16 and you have kurwa 16 axe fighting. Formula is in source.

kkthxbb
 
No you aren't right Cyko.
We have tested it with just "min" and "max", than the attacks goes trought armors... and that shouldn't be. So I wanna know the formula of the skills and attacks =).

I've tested both ways using min/max and skill/attack using the juggernaut as the monster and a knight with 100 shielding skill using full set blocking, he got no high attacks using the skill/attack different than real tibia in which a juggernaut does high hits on anyone not really being affected by skill, so I say min/max works way better.

:)
 
monsters.cpp, lines 374 to 427:
Code:
		if(tmpName == "melee")
		{
			int32_t attack = 0, skill = 0;
			if(readXMLInteger(node, "attack", attack) && readXMLInteger(node, "skill", skill))
			{
				sb.minCombatValue = 0;
				sb.maxCombatValue = -Weapons::getMaxMeleeDamage(skill, attack);
			}

			uint32_t tickInterval = 10000;
			ConditionType_t conditionType = CONDITION_NONE;
			if(readXMLInteger(node, "physical", intValue))
				conditionType = CONDITION_PHYSICAL;
			else if(readXMLInteger(node, "fire", intValue))
				conditionType = CONDITION_FIRE;
			else if(readXMLInteger(node, "energy", intValue))
				conditionType = CONDITION_ENERGY;
			else if(readXMLInteger(node, "earth", intValue))
				conditionType = CONDITION_POISON;
			else if(readXMLInteger(node, "freeze", intValue))
				conditionType = CONDITION_FREEZING;
			else if(readXMLInteger(node, "dazzle", intValue))
				conditionType = CONDITION_DAZZLED;
			else if(readXMLInteger(node, "curse", intValue))
				conditionType = CONDITION_CURSED;
			else if(readXMLInteger(node, "drown", intValue))
			{
				conditionType = CONDITION_DROWN;
				tickInterval = 5000;
			}
			else if(readXMLInteger(node, "poison", intValue))
			{
				conditionType = CONDITION_POISON;
				tickInterval = 5000;
			}

			uint32_t damage = std::abs(intValue);
			if(readXMLInteger(node, "tick", intValue) && intValue > 0)
				tickInterval = intValue;

			if(conditionType != CONDITION_NONE)
			{
				Condition* condition = getDamageCondition(conditionType, damage, damage, 0, tickInterval);
				if(condition)
					combat->setCondition(condition);
			}

			sb.isMelee = true;
			sb.range = 1;

			combat->setParam(COMBATPARAM_COMBATTYPE, COMBAT_PHYSICALDAMAGE);
[B][COLOR="Red"]			combat->setParam(COMBATPARAM_BLOCKEDBYSHIELD, 1);
			combat->setParam(COMBATPARAM_BLOCKEDBYARMOR, 1);[/COLOR][/B]
		}
Whether you use skill and attack or min and max, melee damage will be blocked by both shield and armor.
 
Back
Top