DI
pedido

Sword que suga mana.

Por diarmaint, 23 de jan. de 2014 em Scripts

8.54
tibia
swod
mana
otserv
11
1.6k
diarmaintD
23 de janeiro de 2014 às 08:07

Estou precisando adicionar em meu otserv 8.54 uma sword que de hit normal e que sugue mana do player atacado.

markindootM
23 de janeiro de 2014 às 09:12

-- Script by LuckOake com ajuda de Vodkart
local weaponsID = {1234, 4321} -- IDs das armas
local mana = 100 -- Mana Obtida

function onStatsChange(cid, attacker, type, combat, value)

if not isCreature(cid) or not isCreature(attacker) or getCreatureHealth(cid) <= 0 then
return true
end

if isPlayer(attacker) and type == STATSCHANGE_HEALTHLOSS and combat == COMBAT_PHYSICALDAMAGE and
(isInArray(weaponsID, getPlayerSlotItem(attacker, CONST_SLOT_LEFT).itemid) or
isInArray(weaponsID, getPlayerSlotItem(attacker, CONST_SLOT_RIGHT).itemid)) then
doPlayerAddMana(attacker, mana)
doSendAnimatedText(getCreaturePos(attacker), "+"..mana.."", TEXTCOLOR_LIGHTBLUE)
if isPlayer(cid) then
doPlayerAddMana(cid, -mana)
doSendAnimatedText(getCreaturePos(cid), "-"..mana.."", TEXTCOLOR_PURPLE)
elseif isMonster(cid) then
doSendAnimatedText(getCreaturePos(cid), "-"..mana.."", TEXTCOLOR_PURPLE)
end
end

return true
end

 

 

Crie um arquivo chamado target.lua em data/creaturescripts/scripts e coloque isso dentro:

function onTarget(cid, target)
if isMonster(target) then registerCreatureEvent(target, "ManaDrain") end
return true
end
Adicione essa tag no creaturescripts.xml:

<event type="target" name="RegisterManaDrainOnMonsters" event="script" value="target.lua"/>
e agora essa linha em login.lua:

registerCreatureEvent(cid, "RegisterManaDrainOnMonsters")

 

 

Obs: esse script não foi feito por mim, caso não funcione siga este tópico: http://www.xtibia.com/forum/topic/193003-script-pra-uma-sword/

23 de janeiro de 2014 às 10:21

Use esse Scripter e bem mas pratico, porque ele varia os atakes.

 

Arquivo.lua

  1. 	local weaponMana = {2413, 2383}
    	local chanceMana = 100
    	local manaPorcent = 50
    	 
    	function onAttack(cid, target)
    	if not isPlayer(target) then return false end
    	if getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(target)) < 2 then
    	if isInArray(weaponMana, getPlayerSlotItem(cid, 5).itemid) or isInArray(weaponMana, getPlayerSlotItem(cid, 6).itemid) then
    	if (math.random(1,100) > (100 - chanceMana)) then
    	local mana = (getCreatureMana(target)*(manaPorcent/100))
    	doPlayerSendTextMessage(cid, 23, "Você sugou "..mana.." de mana do "..getCreatureName(target)..".")
    	doSendMagicEffect(getCreaturePosition(target), 1) -- 1 é o efeito que aparecera no target.
    	doCreatureAddMana(target, -(mana))
    	doCreatureAddMana(cid, mana)
    	end
    	end
    	end
    	return true
    	end 
    	

em local weaponMana = {2413, 2383} Aonde tem os Numeros sera o Id das armas que vão sugar mana.

Editado Janeiro 23 por Shoguns

markindootM
23 de janeiro de 2014 às 11:21

me parece o mesmo e o que eu enviei manda TEXT hahah, mas a decisão fica a critério do criador deste tópico.

23 de janeiro de 2014 às 11:30

me parece o mesmo e o que eu enviei manda TEXT hahah, mas a decisão fica a critério do criador deste tópico.

 

 

o seu vai sempre hitar a mesma coisas, o meu o hit e variável e se você perceber o Meu e bem diferente do seu, so são iguais as 2 primeiras linhas.

 

 

--EDIT--

O Meu foi Criado por mim, e o seu como diz na no inicial, foi criado pelo LuckOake junto com o Vodkart

markindootM
23 de janeiro de 2014 às 11:53

sim apenas procurei para o membro criador do tópico, minha area não é Scripts rsr

diarmaintD
24 de janeiro de 2014 às 21:07

Vlw galera, agr tenho outra dúvida quero que ao dar hit a sword gaste a mana do player. "Do atacador"

24 de janeiro de 2014 às 21:51

vai em weapons.xml e procura o ID da sua sword, e ela deve estar assim:

 

<melee id="IDdaSword" level="50" unproperly="1" event="function" value="default">

 

Você deixa assim:

 

 

<melee id="IDdaSword" level="50" mana="10" unproperly="1" event="function" value="default">

 

 

em mana="10" e a mana que vai gastar de quem esta atacando.

diarmaintD
24 de janeiro de 2014 às 22:35

Vlw :)

zipter98Z
25 de janeiro de 2014 às 15:44

"atacador". Nice.

Sanado, movido.

diarmaintD
25 de janeiro de 2014 às 19:23

HAHAHA