JU
pedido

Ring Aumenta Status

Por juninhoo360, 10 de dez. de 2012 em Scripts

otserv
tibia
script
19
2.1k
juninhoo360J
10 de dezembro de 2012 às 17:18

Faaaaaaala galera do XTibiaa!

Bom, um amigo meu fez um script, me mostrou e eu gostei...

Era de um ring (emerald bangle), que quando usava ele, mutiplicava o life, mana e adicionava 25 em todos os status (ml, first fighting, sword fighting, club fighting, e os demais).

Mas tinha um porém, ele queria me vender o script, então tirei algumas prints para postar aqui.

OBS: EU JÁ LI O TUTORIAL DAQUI DO XTIBIA EXPLICANDO, SÓ QUE AQUI NÃO DEU CERTO, POR ISSO ESTOU PEDINDO PARA ALGUÉM ME AJUDAR.

 

Vou postar algumas prints para vocês verem e tentar me ajudar.

Print 1 antes de colocar o ring:

print1h.png

 

Print 2, depois de colocar o ring:

print2u.png

O PRINT CORTOU A PARTE DO LIFE, MAS MULTIPLICAVA O LIFE E A MANA.

REP+ PARA QUEM ME AJUDAR!

Editado Dezembro 10 por JuninhoLopes

RoksasR
10 de dezembro de 2012 às 18:04

Passe o script para corrigirmos, fazendo o favor!

juninhoo360J
10 de dezembro de 2012 às 18:11

Client/Data/Movements/Chaosbangle :

-- >> Small config section --

local outfitMale =
{
lookType = 12,
lookHead = 19,
lookBody = 79,
lookLegs = 3,
lookFeet = 81,
lookAddons = 0
}

local outfitFemale =
{
lookType = 12,
lookHead = 19,
lookBody = 53,
lookLegs = 92,
lookFeet = 79,
lookAddons = 0
}

local cointype = 2152 -- Id of the coin the spell will use (2148 = gold coin, 2152 = platinum coin, 2160 = crystal coin) --
local tbcw = 2000 -- coin wasting time interval (miliseconds) --
local ncws = 1 -- number of coins used up during time interval --
local ncni = 20 -- number of coins needed to trigger the transformation --
local stcn = 20 -- number of coins needed to execute script (must be higher than ncni value) --
local warn = 1 -- warns player when runing short on coins, 1 = yes --
local cwar = 20 -- number of coins that triggers the warnings --

local bmaineff = CONST_ME_YELLOW_RINGS
local bsecondeff = CONST_ME_BLOCKHIT
local bflingeff = CONST_ANI_SMALLHOLY
local blandeff = CONST_ME_HOLYAREA
local bringwaste = CONST_ME_FIREWORK_YELLOW
local bringabsorb = CONST_ME_MAGIC_GREEN

local gmaineff = CONST_ME_EXPLOSIONAREA
local gsecondeff = CONST_ME_FIREAREA
local gflingeff = CONST_ANI_FIRE
local glandeff = CONST_ME_FIREWORK_RED
local gringwaste = CONST_ME_FIREWORK_RED
local gringabsorb = CONST_ME_MAGIC_RED

-- Small config section << --

local condition1 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition1, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition1, CONDITION_PARAM_SKILL_FIST, 210)
setConditionParam(condition1, CONDITION_PARAM_SKILL_FISHING, 210)
setConditionParam(condition1, CONDITION_PARAM_SKILL_CLUB, 210)
setConditionParam(condition1, CONDITION_PARAM_SKILL_SWORD, 210)
setConditionParam(condition1, CONDITION_PARAM_SKILL_AXE, 210)
setConditionParam(condition1, CONDITION_PARAM_SKILL_DISTANCE, 210)
setConditionParam(condition1, CONDITION_PARAM_SKILL_SHIELD, 210)
setConditionParam(condition1, CONDITION_PARAM_SKILL_FISHING, 210)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAGICPOINTS, 210)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 215)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 210)

local condition2 = createConditionObject(CONDITION_HASTE)
setConditionParam(condition2, CONDITION_PARAM_TICKS, -1)
setConditionFormula(condition2, 2.5, 0, 3.0, 0)

function superform1(param)
if param.crca == 1 then

local pos = getCreaturePosition(param.cid)
local sex = getPlayerSex(param.cid)

local nha = {x = pos.x, y = pos.y - 3, z = pos.z, stackpos = 255}
local sha = {x = pos.x, y = pos.y + 3, z = pos.z, stackpos = 255}
local wha = {x = pos.x - 3, y = pos.y, z = pos.z, stackpos = 255}
local eha = {x = pos.x + 3, y = pos.y, z = pos.z, stackpos = 255}

local nwa = {x = pos.x - 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local nea = {x = pos.x + 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local sea = {x = pos.x + 2, y = pos.y + 2, z = pos.z, stackpos = 255}
local swa = {x = pos.x - 2, y = pos.y + 2, z = pos.z, stackpos = 255}

if sex == 1 then
doSendMagicEffect(pos, bmaineff)
doSendMagicEffect(pos, bsecondeff)

doSendDistanceShoot(pos, nha, bflingeff)
doSendDistanceShoot(pos, sha, bflingeff)
doSendDistanceShoot(pos, wha, bflingeff)
doSendDistanceShoot(pos, eha, bflingeff)
doSendDistanceShoot(pos, nwa, bflingeff)
doSendDistanceShoot(pos, nea, bflingeff)
doSendDistanceShoot(pos, sea, bflingeff)
doSendDistanceShoot(pos, swa, bflingeff)

doSendMagicEffect(nha, blandeff)
doSendMagicEffect(sha, blandeff)
doSendMagicEffect(wha, blandeff)
doSendMagicEffect(eha, blandeff)
doSendMagicEffect(nwa, blandeff)
doSendMagicEffect(nea, blandeff)
doSendMagicEffect(sea, blandeff)
doSendMagicEffect(swa, blandeff)

doSetCreatureOutfit(param.cid, outfitMale, -1)
else
doSendMagicEffect(pos, gmaineff)
doSendMagicEffect(pos, gsecondeff)

doSendDistanceShoot(pos, nha, gflingeff)
doSendDistanceShoot(pos, sha, gflingeff)
doSendDistanceShoot(pos, wha, gflingeff)
doSendDistanceShoot(pos, eha, gflingeff)
doSendDistanceShoot(pos, nwa, gflingeff)
doSendDistanceShoot(pos, nea, gflingeff)
doSendDistanceShoot(pos, sea, gflingeff)
doSendDistanceShoot(pos, swa, gflingeff)

doSendMagicEffect(nha, glandeff)
doSendMagicEffect(sha, glandeff)
doSendMagicEffect(wha, glandeff)
doSendMagicEffect(eha, glandeff)
doSendMagicEffect(nwa, glandeff)
doSendMagicEffect(nea, glandeff)
doSendMagicEffect(sea, glandeff)
doSendMagicEffect(swa, glandeff)
doSetCreatureOutfit(param.cid, outfitFemale, -1)
end

doAddCondition(param.cid, condition1)
doAddCondition(param.cid, condition2)

local mhp = getCreatureMaxHealth(param.cid)
local mma = getPlayerMaxMana(param.cid)
local chp = getCreatureHealth(param.cid)
local cma = getPlayerMana(param.cid)

local dhp = mhp - chp
local dma = mma - cma

doCreatureAddHealth(param.cid, dhp)
doPlayerAddMana(param.cid, dma)
doPlayerRemoveItem(param.cid, cointype, ncni)

param.crcb = 1
param.sex = sex
setPlayerStorageValue(param.cid, 50780, 1)

addEvent(superform2, 1, param)
end
end


function superform2(param)
if param.crca == 1 and param.crcb == 1 and isCreature(param.cid) == TRUE and getPlayerStorageValue(param.cid, 50780) == 1 then
local pos = getCreaturePosition(param.cid)
doPlayerRemoveItem(param.cid, cointype, ncws)
if param.sex == 1 then
doSendMagicEffect(pos, bringwaste)
doSendMagicEffect(pos, bringabsorb)
else
doSendMagicEffect(pos, gringwaste)
doSendMagicEffect(pos, gringabsorb)
end
local goldleft = getPlayerItemCount(param.cid, cointype)
if goldleft < cwar and warn == 1 then
doPlayerSendTextMessage(param.cid, MESSAGE_STATUS_CONSOLE_RED, "Coins left: " ..goldleft.. ".")
end
if goldleft < ncws then
param.crca = 0
param.crcb = 0
setPlayerStorageValue(param.cid, 50780, 0)
doPlayerSendTextMessage(param.cid, MESSAGE_EVENT_DEFAULT, "No cash left!")

local pos = getCreaturePosition(param.cid)

local nha = {x = pos.x, y = pos.y - 3, z = pos.z, stackpos = 255}
local sha = {x = pos.x, y = pos.y + 3, z = pos.z, stackpos = 255}
local wha = {x = pos.x - 3, y = pos.y, z = pos.z, stackpos = 255}
local eha = {x = pos.x + 3, y = pos.y, z = pos.z, stackpos = 255}

local nwa = {x = pos.x - 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local nea = {x = pos.x + 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local sea = {x = pos.x + 2, y = pos.y + 2, z = pos.z, stackpos = 255}
local swa = {x = pos.x - 2, y = pos.y + 2, z = pos.z, stackpos = 255}


doRemoveCondition(param.cid, CONDITION_OUTFIT)
doRemoveCondition(param.cid, CONDITION_ATTRIBUTES)
doRemoveCondition(param.cid, CONDITION_HASTE)

if param.sex == 1 then
doSendMagicEffect(pos, bmaineff)
doSendMagicEffect(pos, bsecondeff)

doSendDistanceShoot(pos, nha, bflingeff)
doSendDistanceShoot(pos, sha, bflingeff)
doSendDistanceShoot(pos, wha, bflingeff)
doSendDistanceShoot(pos, eha, bflingeff)
doSendDistanceShoot(pos, nwa, bflingeff)
doSendDistanceShoot(pos, nea, bflingeff)
doSendDistanceShoot(pos, sea, bflingeff)
doSendDistanceShoot(pos, swa, bflingeff)

doSendMagicEffect(nha, blandeff)
doSendMagicEffect(sha, blandeff)
doSendMagicEffect(wha, blandeff)
doSendMagicEffect(eha, blandeff)
doSendMagicEffect(nwa, blandeff)
doSendMagicEffect(nea, blandeff)
doSendMagicEffect(sea, blandeff)
doSendMagicEffect(swa, blandeff)
else
doSendMagicEffect(pos, gmaineff)
doSendMagicEffect(pos, gsecondeff)

doSendDistanceShoot(pos, nha, gflingeff)
doSendDistanceShoot(pos, sha, gflingeff)
doSendDistanceShoot(pos, wha, gflingeff)
doSendDistanceShoot(pos, eha, gflingeff)
doSendDistanceShoot(pos, nwa, gflingeff)
doSendDistanceShoot(pos, nea, gflingeff)
doSendDistanceShoot(pos, sea, gflingeff)
doSendDistanceShoot(pos, swa, gflingeff)

doSendMagicEffect(nha, glandeff)
doSendMagicEffect(sha, glandeff)
doSendMagicEffect(wha, glandeff)
doSendMagicEffect(eha, glandeff)
doSendMagicEffect(nwa, glandeff)
doSendMagicEffect(nea, glandeff)
doSendMagicEffect(sea, glandeff)
doSendMagicEffect(swa, glandeff)
end
else
addEvent(superform2, tbcw, param)
end
end

end

function onEquip(cid, item, slot)
local param = {cid = cid, item = item, slot = slot}
local gold = getPlayerItemCount(cid, cointype)
if gold > stcn then
param.crca = 1
--can equip here?
addEvent(superform1, 1, param)
return TRUE
end
end

function onDeEquip(cid, item, slot)
if isPlayer(cid) and getPlayerStorageValue(cid, 50780) == 1 then

doRemoveCondition(cid, CONDITION_OUTFIT)
doRemoveCondition(cid, CONDITION_ATTRIBUTES)
doRemoveCondition(cid, CONDITION_HASTE)

local pos = getCreaturePosition(cid)
setPlayerStorageValue(cid, 50780, 0)
local sex = getPlayerSex(cid)

local nha = {x = pos.x, y = pos.y - 3, z = pos.z, stackpos = 255}
local sha = {x = pos.x, y = pos.y + 3, z = pos.z, stackpos = 255}
local wha = {x = pos.x - 3, y = pos.y, z = pos.z, stackpos = 255}
local eha = {x = pos.x + 3, y = pos.y, z = pos.z, stackpos = 255}

local nwa = {x = pos.x - 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local nea = {x = pos.x + 2, y = pos.y - 2, z = pos.z, stackpos = 255}
local sea = {x = pos.x + 2, y = pos.y + 2, z = pos.z, stackpos = 255}
local swa = {x = pos.x - 2, y = pos.y + 2, z = pos.z, stackpos = 255}

if sex == 1 then
doSendMagicEffect(pos, bmaineff)
doSendMagicEffect(pos, bsecondeff)

doSendDistanceShoot(pos, nha, bflingeff)
doSendDistanceShoot(pos, sha, bflingeff)
doSendDistanceShoot(pos, wha, bflingeff)
doSendDistanceShoot(pos, eha, bflingeff)
doSendDistanceShoot(pos, nwa, bflingeff)
doSendDistanceShoot(pos, nea, bflingeff)
doSendDistanceShoot(pos, sea, bflingeff)
doSendDistanceShoot(pos, swa, bflingeff)

doSendMagicEffect(nha, blandeff)
doSendMagicEffect(sha, blandeff)
doSendMagicEffect(wha, blandeff)
doSendMagicEffect(eha, blandeff)
doSendMagicEffect(nwa, blandeff)
doSendMagicEffect(nea, blandeff)
doSendMagicEffect(sea, blandeff)
doSendMagicEffect(swa, blandeff)
else
doSendMagicEffect(pos, gmaineff)
doSendMagicEffect(pos, gsecondeff)

doSendDistanceShoot(pos, nha, gflingeff)
doSendDistanceShoot(pos, sha, gflingeff)
doSendDistanceShoot(pos, wha, gflingeff)
doSendDistanceShoot(pos, eha, gflingeff)
doSendDistanceShoot(pos, nwa, gflingeff)
doSendDistanceShoot(pos, nea, gflingeff)
doSendDistanceShoot(pos, sea, gflingeff)
doSendDistanceShoot(pos, swa, gflingeff)

doSendMagicEffect(nha, glandeff)
doSendMagicEffect(sha, glandeff)
doSendMagicEffect(wha, glandeff)
doSendMagicEffect(eha, glandeff)
doSendMagicEffect(nwa, glandeff)
doSendMagicEffect(nea, glandeff)
doSendMagicEffect(sea, glandeff)
doSendMagicEffect(swa, glandeff)
end
end
return TRUE
end

 

Movements.xml:

<movevent event="Equip" itemid="2127" function="onEquipItem" slot="ring" script="chaosbangle.lua"/>
<movevent event="DeEquip" itemid="2127" function="onDeEquipItem" slot="ring" script="chaosbangle.lua"/> 

Editado Dezembro 10 por JuninhoLopes

RoksasR
10 de dezembro de 2012 às 18:18

Ok, agora explique detalhadamente qual foi o erro ocorrido?No Distro, diga-me o ocorrido!

juninhoo360J
10 de dezembro de 2012 às 18:23

Não há nenhum erro no distro, nem nada.

Só que quando eu uso o ring, ele não aumenta nenhum status, não aumenta nada!

Esse é o "erro".

RoksasR
10 de dezembro de 2012 às 18:31

Entendo, você esqueceu de adicionar as tags no items.xml:

 

<item id="2127" article="an" name="emerald bangle">
<attribute key="weight" value="170" />
<attribute key="slotType" value="ring" />

 

Adicione isso embaixo do ring:

<attribute key="healthgain" value="100" />[/font]
<attribute key="skillFist" value="25" />
<attribute key="skillSword" value="25" />
<attribute key="skillClub" value="25" />
<attribute key="skillAxe" value="25" />
<attribute key="skillShield" value="25" />
<attribute key="skillFist" value="25" />
<attribute key="skillFishing" value="25" />
<attribute key="magiclevelpoints" value="25" />
<attribute key="healthTicks" value="1000" />[/font]
<attribute key="manaGain" value="100" />
<attribute key="manaTicks" value="1000" />

 

Explicação: healthgain = quanto ganhará de HP

managain = quanto ganhará de MANA

manaticks = a cada quanto tempo? 1sec = 1000

healthticks = a cada quanto tempo? 1sec = 1000

O restante são os skills e magic level, aonde está value basta mudar o valor, para qual quiser!

BENÇA :))

Editado Dezembro 10 por Roksas

juninhoo360J
10 de dezembro de 2012 às 18:43

<attribute key="healthgain" value="100" />
<attribute key="skillFist" value="25" />
<attribute key="skillSword" value="25" />
<attribute key="skillClub" value="25" />
<attribute key="skillAxe" value="25" />
<attribute key="skillShield" value="25" />
<attribute key="skillFist" value="25" />
<attribute key="skillFishing" value="25" />
<attribute key="magiclevelpoints" value="25" />
<attribute key="healthTicks" value="1000" />
<attribute key="manaGain" value="100" />
<attribute key="manaTicks" value="1000" />

 

Não entendi esta parte, explique por favor?

Editado Dezembro 10 por JuninhoLopes

RoksasR
10 de dezembro de 2012 às 18:48

Abra o seu item.xml na pasta data/items, depois disso aperte CTRL+F e digite 2127, irá aparecer o seu anél, que também tem umas tags por exemplo:

<attribute key="weight" value="170" />
<attribute key="slotType" value="ring" />

 

Agora as que eu te passei, que está no meu outro post, basta você colar ai embaixo dessas tags!

juninhoo360J
10 de dezembro de 2012 às 18:50

Ficando assim?

<item id="2127" article="an" name="emerald bangle">
   <attribute key="weight" value="170" />
   <attribute key="slotType" value="ring" />
   <attribute key="healthgain" value="100" />
<attribute key="skillFist" value="25" />
<attribute key="skillSword" value="25" />
<attribute key="skillClub" value="25" />
<attribute key="skillAxe" value="25" />
   <attribute key="skillShield" value="25" />
   <attribute key="skillFist" value="25" />
   <attribute key="skillFishing" value="25" />
   <attribute key="magiclevelpoints" value="25" />
   <attribute key="healthTicks" value="1000" />
   <attribute key="manaGain" value="100" />
   <attribute key="manaTicks" value="1000" />
   </item>

RoksasR
10 de dezembro de 2012 às 18:56

Exato, nas tags, aonde está "value = " O número que está ao lado é o número de HP,MANA,SKILLS que irá receber. Se quiser basta mudar, eu coloquei conforme você pediu. 25 de cada Skill!

juninhoo360J
10 de dezembro de 2012 às 18:59

Não funcionou!

 

AAAAAH, e eu esqueci de avisar, quando usar o bangle vai gastar 10 de platinium coins,e sempre que ele brilhar, ele vai gastar 1 platinium coins... vou te mandar o link do tutorial para você ver.

 

http://www.xtibia.com/forum/topic/122455-moveevent-ring-chaos-bangle/page__fromsearch__1

 

Olha aí e tenta me ajudar.

RoksasR
10 de dezembro de 2012 às 19:02

Não funcionou porque você está dentro da PZ, certo? :))

juninhoo360J
10 de dezembro de 2012 às 19:04

Não, eu usei fora e dentro de pz, e nenhum dos dois funcionou.

Olha o link aí e vê se você acha o erro.

 

http://www.xtibia.com/forum/topic/122455-moveevent-ring-chaos-bangle/page__fromsearch__1

RoksasR
10 de dezembro de 2012 às 19:09

Qual a versão do server?

juninhoo360J
10 de dezembro de 2012 às 19:09

8.6 Alissow OT.