• 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!

Multi-element weapon

gyahu

New Member
Joined
Nov 28, 2010
Messages
54
Reaction score
2
Hey guys i need to ask you for a huge favour. I was looking for a script that was like this:
You have an specific weapon, that attacks X physical, but, also, whe you use a talkaction like: !weapon "element", you say an element and gives an extra attack.
For example:
It attacks 40 physical, then you say !weapon ice, and now it attacks 40 physical + 15 ice. That with every element (ice, fire, earth, energy, death, holy and physical)

I had a MOD, but it was with a wand and I "edited" so it could work with a club, but it does not. If someone could help me it would be great. I leave the MOD in which I based, and the changes I did (which didn't work).

The original:

HTML:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Weapon multi-elements" version="1.0" author="Leyendario." contact="otserv.es" enabled="yes">
<config name="configuracion"><![CDATA[
 
   config = {
      min1 = 0.2, -- multiplicador de tu ml
      min2 = 100, -- minimo de daño
      max1 = 1.2, -- multiplicador de tu lvl
      max2 = 300, -- maximo de daño
      storage = 6999,
      dinero = 10 * 1000 -- 1cc, pon 0 si no quieres que cobre.
      }
    par = {
      ["fisico"] = {1, CONST_ME_HITAREA},
      ["energy"] = {2, CONST_ME_ENERGYHIT},
      ["tierra"] = {3, CONST_ME_HITBYPOISON},
      ["fuego"] = {4, CONST_ME_HITBYFIRE},
      ["hielo"] = {5, CONST_ME_ICEATTACK},
      ["holy"] = {6, CONST_ME_HOLYDAMAGE},
      ["death"] = {7, CONST_ME_MORTAREA}
      }
 
]]></config>
   <talkaction words="!arma" event="script"><![CDATA[
   domodlib('configuracion')
   function onSay(cid, words, param, channel)
      local p = par[param]
      if p then
         if getPlayerMoney(cid) < config.dinero then
            return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "necesitas " ..config.dinero.. " gold coins.")
         end   
         doPlayerRemoveMoney(cid, config.dinero)
         setPlayerStorageValue(cid, config.storage, p[1])
         doSendMagicEffect(getCreaturePosition(cid), p[2])
         doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ahora usas daño ".. param ..".")
      else
         doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "los comandos son fisico, energy, tierra, fuego, hielo, holy y death.") 
      end
      return 0
   end
   ]]></talkaction>
   <wand id="2190" level="1" mana="2" event="script"><![CDATA[
   domodlib('configuracion')
   local fisico = createCombatObject() -- 1
   setCombatParam(fisico, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
   setCombatParam(fisico, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
   setCombatParam(fisico, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WHIRLWINDSWORD)
   setCombatFormula(fisico, COMBAT_FORMULA_LEVELMAGIC, -config.min1, -config.min2, -config.max1, -config.max2)
 
   local energy = createCombatObject() -- 2
   setCombatParam(energy, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
   setCombatParam(energy, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
   setCombatParam(energy, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
   setCombatFormula(energy, COMBAT_FORMULA_LEVELMAGIC, -config.min1, -config.min2, -config.max1, -config.max2)
 
   local tierra = createCombatObject() -- 3
   setCombatParam(tierra, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
   setCombatParam(tierra, COMBAT_PARAM_EFFECT, CONST_ME_HITBYPOISON)
   setCombatParam(tierra, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_POISON)
   setCombatFormula(tierra, COMBAT_FORMULA_LEVELMAGIC, -config.min1, -config.min2, -config.max1, -config.max2)
 
   local fuego = createCombatObject() -- 4
   setCombatParam(fuego, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
   setCombatParam(fuego, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
   setCombatParam(fuego, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
   setCombatFormula(fuego, COMBAT_FORMULA_LEVELMAGIC, -config.min1, -config.min2, -config.max1, -config.max2)
 
   local hielo = createCombatObject()  -- 5
   setCombatParam(hielo, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
   setCombatParam(hielo, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
   setCombatParam(hielo, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE)
   setCombatFormula(hielo, COMBAT_FORMULA_LEVELMAGIC, -config.min1, -config.min2, -config.max1, -config.max2)
 
   local holy = createCombatObject()  -- 6
   setCombatParam(holy, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
   setCombatParam(holy, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
   setCombatParam(holy, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
   setCombatFormula(holy, COMBAT_FORMULA_LEVELMAGIC, -config.min1, -config.min2, -config.max1, -config.max2)
 
   local death = createCombatObject()  -- 7
   setCombatParam(death, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
   setCombatParam(death, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
   setCombatParam(death, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
   setCombatFormula(death, COMBAT_FORMULA_LEVELMAGIC, -config.min1, -config.min2, -config.max1, -config.max2)
 
function onUseWeapon(cid, var)
   local valor = getPlayerStorageValue(cid, config.storage)
   doCombat(cid, valor == 2 and energy or valor == 3 and tierra or valor == 4 and fuego or valor == 5 and hielo or valor == 6 and holy or valor == 7 and death or fisico, var)
   return true
end
 
   ]]>
   <vocation id="2"/>
   </wand>
   <item id="2190" article="a" name="Multi-Elements Wand" override="yes">
      <attribute key="description" value="Esta es un arma multi-elements." />
      <attribute key="weight" value="1900" />
      <attribute key="weaponType" value="wand" />
      <attribute key="range" value="3" />
   </item>
</mod>


"Mine":

HTML:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Weapon multi-elements" version="1.0" author="Leyendario." contact="otserv.es" enabled="yes">
<config name="configuracion"><![CDATA[
 
   config = {
      storage = 6999,
      dinero = 0 * 1000 -- 1cc, pon 0 si no quieres que cobre.
      }
    par = {
      ["physic"] = {1, CONST_ME_HITAREA},
      ["energy"] = {2, CONST_ME_ENERGYHIT},
      ["earth"] = {3, CONST_ME_HITBYPOISON},
      ["fire"] = {4, CONST_ME_HITBYFIRE},
      ["ice"] = {5, CONST_ME_ICEATTACK},
      ["holy"] = {6, CONST_ME_HOLYDAMAGE},
      ["death"] = {7, CONST_ME_MORTAREA}
      }
 
]]></config>
   <talkaction words="!weapon" event="script"><![CDATA[
   domodlib('configuracion')
   function onSay(cid, words, param, channel)
      local p = par[param]
      if p then
         if getPlayerMoney(cid) < config.dinero then
            return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "need " ..config.dinero.. " gold coins.")
         end   
         doPlayerRemoveMoney(cid, config.dinero)
         setPlayerStorageValue(cid, config.storage, p[1])
         doSendMagicEffect(getCreaturePosition(cid), p[2])
         doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Now you are using  ".. param ..".")
      else
         doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "the commands are, physic, energy, earth, fire, ice, death and holy.") 
      end
      return 0
   end
   ]]></talkaction>
   <item id="7450" level="150" mana="0" event="script"><![CDATA[
   domodlib('configuration')
   local physic = createCombatObject() -- 1
   setCombatParam(physic, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
   setCombatParam(physic, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
   setCombatParam(physic, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WHIRLWINDCLUB)
   function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack, level / 5
	return -(skillTotal / 3 + levelTotal), -(skillTotal + levelTotal)
end
   setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
   local energy = createCombatObject() -- 2
   setCombatParam(energy, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
   setCombatParam(energy, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
   setCombatParam(energy, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
   function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack, level / 5
	return -(skillTotal / 3 + levelTotal), -(skillTotal + levelTotal)
end
   setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
   local earth = createCombatObject() -- 3
   setCombatParam(earth, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
   setCombatParam(earth, COMBAT_PARAM_EFFECT, CONST_ME_HITBYPOISON)
   setCombatParam(earth, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_POISON)
   function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack, level / 5
	return -(skillTotal / 3 + levelTotal), -(skillTotal + levelTotal)
end
   setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
   local fire = createCombatObject() -- 4
   setCombatParam(fire, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
   setCombatParam(fire, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE)
   setCombatParam(fire, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLFIRE)
   function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack, level / 5
	return -(skillTotal / 3 + levelTotal), -(skillTotal + levelTotal)
end
   setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
   local ice = createCombatObject()  -- 5
   setCombatParam(ice, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
   setCombatParam(ice, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
   setCombatParam(ice, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE)
   function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack, level / 5
	return -(skillTotal / 3 + levelTotal), -(skillTotal + levelTotal)
end
   setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
   local holy = createCombatObject()  -- 6
   setCombatParam(holy, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
   setCombatParam(holy, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
   setCombatParam(holy, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
   function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack, level / 5
	return -(skillTotal / 3 + levelTotal), -(skillTotal + levelTotal)
end
   setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
   local death = createCombatObject()  -- 7
   setCombatParam(death, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
   setCombatParam(death, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
   setCombatParam(death, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
   function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack, level / 5
	return -(skillTotal / 3 + levelTotal), -(skillTotal + levelTotal)
end
   setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
function onUseWeapon(cid, var)
   local valor = getPlayerStorageValue(cid, config.storage)
   doCombat(cid, valor == 2 and energy or valor == 3 and earth or valor == 4 and fire or valor == 5 and ice or valor == 6 and holy or valor == 7 and death or physic, var)
   return true
end
 
   ]]>
   <vocation id="4"/>
	</item>
	<item id="7450" article="a" name="Elemental Hammer">
		<attribute key="description" value="The leyend tells that the blacksmith who forged it made a pact whith the gods, so his hammer could control every existant element." />
		<attribute key="weight" value="500" />
		<attribute key="defense" value="37" />
		<attribute key="attack" value="55" />
		<attribute key="weaponType" value="club" />
   </item>
</mod>

If you could help me I would thank you a LOT (and yes i would give you REP+).
Thanks in advance.
 

Similar threads

Back
Top