strutZ
Australian OT Member {AKA Beastn}
- Joined
- Nov 16, 2014
- Messages
- 1,391
- Solutions
- 7
- Reaction score
- 550
anything is possible =)with your scripts can i add the critical or manaleech for example?
anything is possible =)with your scripts can i add the critical or manaleech for example?
[1] = {element = "Liveleech"},
[2] = {element = "Manaleech"},
[3] = {element = "Critical"},
[4] = {element = "Livesteeal"},
[5] = {element = "Manasteal"},
[6] = {element = "Holy"},
[7] = {element = "Fire"},
[8] = {element = "Death"},
[9] = {element = "Poison"},
[10] = {element = "Energy"},
[11] = {element = "Earth"},
[12] = {element = "Ice"},
[13] = {element = "Earth"},
[14] = {element = "Ice"},
You 'use' the item.Look I have to be retarded or some but how do I use this script? Like if I follow this tutorial and everything how do I open the menues etc?
ThanksYou 'use' the item.
Right click -> Use
local DamageTypes = {
[1] = {DamageType = COMBAT_HOLYDAMAGE, DamageEffect = CONST_ANI_HOLY},
[2] = {DamageType = COMBAT_FIREDAMAGE, DamageEffect = CONST_ANI_FIRE},
[3] = {DamageType = COMBAT_DEATHDAMAGE, DamageEffect = CONST_ANI_DEATH},
[4] = {DamageType = COMBAT_POISONDAMAGE, DamageEffect = CONST_ANI_POISON},
[5] = {DamageType = COMBAT_ENERGYDAMAGE, DamageEffect = CONST_ANI_ENERGY},
[6] = {DamageType = COMBAT_EARTHDAMAGE, DamageEffect = CONST_ANI_EARTH},
[7] = {DamageType = COMBAT_ICEDAMAGE, DamageEffect = CONST_ANI_ICE}
local displayoutput = {"Fire","Holy","Death","Poison","Energy","Earth","Ice"}
storage = 10009,
doPlayerSendChannelMessage = "Change Weapon Damage Type",
mainMsg = "Choose a damage type from the list",
function onSay(cid, words, param)
number = 1
param = string.lower(param)
skilllist = ""
command = TRUE
if param == "fire" then
display = 1
elseif param == "holy" then
display = 2
elseif param == "death" then
id = 0
display = 3
elseif param == "poison" then
id = 1
display = 4
elseif param == "energy" then
id = 2
display = 5
elseif param == "earth" then
id = 3
display = 6
elseif param == "ice" then
id = 4
display = 7
else
error = 'You did not choose a correct element'
doShowTextDialog(cid, 5958, error)
command = FALSE
end
if command ~= FALSE then
if display == 1 then
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -60, -1.0, -70)
function onUseWeapon(cid, var)
return doCombat(cid, combat, var)
end
elseif display == 2 then
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -60, -1.0, -70)
function onUseWeapon(cid, var)
return doCombat(cid, combat, var)
end
local elementWandStorageID = 666778
local elementWandTypes = {
["physical"] = { COMBAT_PHYSICALDAMAGE, CONST_ME_HITAREA },
["energy"] = { COMBAT_ENERGYDAMAGE, CONST_ME_ENERGYAREA },
["earth"] = { COMBAT_EARTHDAMAGE, CONST_ME_POISONAREA },
["fire"] = { COMBAT_FIREDAMAGE, CONST_ME_FIREAREA },
["drown"] = { COMBAT_DROWNDAMAGE, CONST_ME_WATERSPLASH },
["ice"] = { COMBAT_ICEDAMAGE, CONST_ME_ICEATTACK },
["holy"] = { COMBAT_HOLYDAMAGE, CONST_ME_HOLYDAMAGE },
["death"] = { COMBAT_DEATHDAMAGE, CONST_ME_MORTAREA }
}
function onSay(cid, words, param, channel)
local split = string.explode(param, ",")
if #split == 0 then
return doPlayerSendCancel(cid, "The command requires a parameter.")
end
local elementType = elementWandTypes[split[1] and string.lower(split[1])]
if not elementType then
return doPlayerSendCancel(cid, string.format("This element %s does not exist.", split[1]))
end
setPlayerStorageValue(cid, elementWandStorageID, elementType[1])
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, string.format("You have changed the element to %s.", string.lower(split[1])))
doSendMagicEffect(getCreaturePosition(cid), elementType[2])
return true
end
local elementWandStorageID = 666778
local elementWandTypes = {
{ COMBAT_PHYSICALDAMAGE, CONST_ME_HITAREA, CONST_ANI_EXPLOSION },
{ COMBAT_ENERGYDAMAGE, CONST_ME_ENERGYAREA, CONST_ANI_ENERGY },
{ COMBAT_EARTHDAMAGE, CONST_ME_POISONAREA, CONST_ANI_POISON },
{ COMBAT_FIREDAMAGE, CONST_ME_FIREAREA, CONST_ANI_FIRE },
{ COMBAT_DROWNDAMAGE, CONST_ME_WATERSPLASH, CONST_ANI_ENERGYBALL },
{ COMBAT_ICEDAMAGE, CONST_ME_ICEATTACK, CONST_ANI_ICE },
{ COMBAT_HOLYDAMAGE, CONST_ME_HOLYDAMAGE, CONST_ANI_HOLY },
{ COMBAT_DEATHDAMAGE, CONST_ME_MORTAREA, CONST_ANI_DEATH }
}
local combats = {}
function onGetFormulaValues(cid, level, magiclevel)
local min = level + magiclevel * 2.0
local max = level + magiclevel * 2.5
return -min, -max
end
for index, elementInfo in pairs(elementWandTypes) do
combats[elementInfo[1]] = createCombatObject()
setCombatParam(combats[elementInfo[1]], COMBAT_PARAM_TYPE, elementInfo[1])
setCombatParam(combats[elementInfo[1]], COMBAT_PARAM_EFFECT, elementInfo[2])
setCombatParam(combats[elementInfo[1]], COMBAT_PARAM_DISTANCEEFFECT, elementInfo[3])
setCombatCallback(combats[elementInfo[1]], CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
end
function onUseWeapon(cid, var)
local elementType = getPlayerStorageValue(cid, elementWandStorageID)
local combat = combats[elementType] or combats[COMBAT_PHYSICALDAMAGE]
return doCombat(cid, combat, var)
end
If you are looking for this system for minor versions, here are the steps to follow:
Tested on TFS 0.4