KE
dúvida

Ajuda Com Esse Script Quest Que Da Skills

Por KennyConrad, 11 de dez. de 2012 em Scripts

otserv
tibia
script
9
1.3k
KennyConradK
11 de dezembro de 2012 às 14:29

Galera achei esse script aki no xtibia e ele funcionou perfeitamente so está com 1 pequeno probleminha ele está para adicionar 10 skills club,10 skills sword e 10 skills axe para a vocação knight porem so está adicionando 10 skill club porque o script kicka o player pra adicionar os skills ai acaba so adicionando os skill club gostaria que arruma-sem ele pra ganhar os 10 de cada skill

 

Obs: não mecha no resto do script so edita a parte de kina ganhar skills que é a parte de vocation 4 e 8.

 

 

function onUse(cid, item, frompos, item2, topos)
voc = getPlayerVocation(cid)
pos = getPlayerPosition(cid)
if voc == 1 or voc == 2 or voc == 5 or voc == 6 or voc == 11 or voc == 12 then
stor = getPlayerStorageValue(cid,5556)
if stor == -1 then
setPlayerStorageValue(cid,5556,1)
doTeleportThing(cid, {x=451, y=195, z=7})
doPlayerSetMagic(cid, getPlayerMagLevel(cid)+4)
doSendMagicEffect(frompos, 28)
doSendAnimatedText(pos, "Magic Up", TEXTCOLOR_BLUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez a quest.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
elseif voc == 3 or voc == 7 then
stor = getPlayerStorageValue(cid,5556)
if stor == -1 then
setPlayerStorageValue(cid,5556,1)
doTeleportThing(cid, {x=451, y=195, z=7})
doPlayerSetSkill(cid, SKILL_DISTANCE, getPlayerSkillLevel(cid, SKILL_DISTANCE)+10)
doSendMagicEffect(frompos, 28)
doSendAnimatedText(pos, "Distance Up", TEXTCOLOR_BLUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez a quest.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
elseif voc == 9 or voc == 10 then
stor = getPlayerStorageValue(cid,5556)
if stor == -1 then
setPlayerStorageValue(cid,5556,1)
doTeleportThing(cid, {x=451, y=195, z=7})
doPlayerSetSkill(cid, SKILL_CLUB, getPlayerSkillLevel(cid, SKILL_CLUB)+10)
doSendMagicEffect(frompos, 28)
doSendAnimatedText(pos, "Club Up", TEXTCOLOR_BLUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez a quest.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
elseif voc == 4 or voc == 8 then
stor = getPlayerStorageValue(cid,5556)
if stor == -1 then
setPlayerStorageValue(cid,5556,1)
doTeleportThing(cid, {x=451, y=195, z=7})
doPlayerSetSkill(cid, SKILL_CLUB, getPlayerSkillLevel(cid, SKILL_CLUB)+10)
doPlayerSetSkill(cid, SKILL_SWORD, getPlayerSkillLevel(cid, SKILL_SWORD)+10)
doPlayerSetSkill(cid, SKILL_AXE, getPlayerSkillLevel(cid, SKILL_AXE)+10)
doSendMagicEffect(frompos, 28)
doSendAnimatedText(pos, "Skills Up", TEXTCOLOR_BLUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez a quest.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce nao tem a vocacao necessaria.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
return true
end

RoksasR
11 de dezembro de 2012 às 14:35

Testei no meu Interpretador, a biblioteca dele não reconheceu a função de adicionar os Skills. Tente assim:

 

function onUse(cid, item, frompos, item2, topos)
voc = getPlayerVocation(cid)
pos = getPlayerPosition(cid)
if voc == 1 or voc == 2 or voc == 5 or voc == 6 or voc == 11 or voc == 12 then
stor = getPlayerStorageValue(cid,5556)
if stor == -1 then
setPlayerStorageValue(cid,5556,1)
doTeleportThing(cid, {x=451, y=195, z=7})
doPlayerSetMagic(cid, getPlayerMagLevel(cid)+4)
doSendMagicEffect(frompos, 28)
doSendAnimatedText(pos, "Magic Up", TEXTCOLOR_BLUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez a quest.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
elseif voc == 3 or voc == 7 then
stor = getPlayerStorageValue(cid,5556)
if stor == -1 then
setPlayerStorageValue(cid,5556,1)
doTeleportThing(cid, {x=451, y=195, z=7})
doPlayerSetSkill(cid, SKILL_DISTANCE, getPlayerSkillLevel(cid, SKILL_DISTANCE)+10)
doSendMagicEffect(frompos, 28)
doSendAnimatedText(pos, "Distance Up", TEXTCOLOR_BLUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez a quest.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
elseif voc == 9 or voc == 10 then
stor = getPlayerStorageValue(cid,5556)
if stor == -1 then
setPlayerStorageValue(cid,5556,1)
doTeleportThing(cid, {x=451, y=195, z=7})
doPlayerSetSkill(cid, SKILL_CLUB, getPlayerSkillLevel(cid, SKILL_CLUB)+10)
doSendMagicEffect(frompos, 28)
doSendAnimatedText(pos, "Club Up", TEXTCOLOR_BLUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez a quest.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
elseif voc == 4 or voc == 8 then
stor = getPlayerStorageValue(cid,5556)
if stor == -1 then
setPlayerStorageValue(cid,5556,1)
doTeleportThing(cid, {x=451, y=195, z=7})
doPlayerAddSkillTry(cid, 1 , 10)
doPlayerAddSkillTry(cid, 2 , 10)
doPlayerAddSkillTry(cid, 3 , 10)
doSendMagicEffect(frompos, 28)
doSendAnimatedText(pos, "Skills Up", TEXTCOLOR_BLUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez a quest.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce nao tem a vocacao necessaria.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
return true
end

KennyConradK
11 de dezembro de 2012 às 14:37

se no seu servidor não funcionou é porque tem que ter essa função na lib-50 adiciona lá

 

function doPlayerSetSkill(cid, skill, amount)
local pid = getPlayerGUID(cid)
doRemoveCreature(cid,true)
db.executeQuery("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";")
return TRUE
end
function doPlayerSetMagic(cid, amount)
local pid = getPlayerGUID(cid)
doRemoveCreature(cid,true)
db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid)
return TRUE
end

 

@ edit novamente

 

fiz assim trokei essa parte do script na parte de kina

 

doPlayerSetSkill(cid, SKILL_CLUB, getPlayerSkillLevel(cid, SKILL_CLUB)+10)
doPlayerSetSkill(cid, SKILL_SWORD, getPlayerSkillLevel(cid, SKILL_SWORD)+10)
doPlayerSetSkill(cid, SKILL_AXE, getPlayerSkillLevel(cid, SKILL_AXE)+10)

 

por essa sua

 

doPlayerAddSkillTry(cid, 1 , 10)
doPlayerAddSkillTry(cid, 2 , 10)
doPlayerAddSkillTry(cid, 3 , 10)

 

adicionou os 3 tipos de skills porem não adicionou apenas 10 skills de cada adicionou 25 skills de cada lol ?

Editado Dezembro 11 por KennyxD

RoksasR
11 de dezembro de 2012 às 14:44

Cara, oque eu te passei funcionou ou nao?

KennyConradK
11 de dezembro de 2012 às 14:47

funcionou porem ta adicionando mais skills do que ta marcado =(

 

ve la emcima que eu editei o post.

Editado Dezembro 11 por KennyxD

RoksasR
11 de dezembro de 2012 às 15:18

Então em vez de 10 coloque 5 e veja oque acontece. Vai abaixando o valor até funcionar! Boa sorte :))

KennyConradK
11 de dezembro de 2012 às 15:45

é não da certo porque quando o player tiver skill 350 o script so adiciona 2 skills mesmo tando marcado 10 eu tive uma ideia pra resolver meu problema vo colocar pra vocação knight assim que clicar no bau ganha os 10 skill club e ser teleportado pra um outro bau que la ele ganha 10 skill sword e será teleportado para um outro bau que ganhará 10 skill axe meio chatinho mais é uma solução. xD

RoksasR
11 de dezembro de 2012 às 15:48

Tudo bem então, se quiser algum outro script ou outra dúvida, só criar outro tópico ou PM, que irei lhe ajudar! Dúvida Sanada, Reportado.

Yan OliveiraY
11 de dezembro de 2012 às 15:51

Dúvida Resolvida!

 

Tópico Movido.