BR

[Pedido] Script Para Quest De Skill

Por brunaum15, 25 de jan. de 2012 em Archived

tibia
script
otserv
7
1.3k
brunaum15B
25 de janeiro de 2012 às 10:00

Tipo do script:: actions

Protocolo (versão do Tibia): 8.6

 

Olá, eu gostaria de pedir para que se alguem tivesse ae um script que funcionasse ou fizessem um para mim! Um script para uma quest que desse skill para tal vocação, ao clicar em um baú. Ou se for mais facil um bau para cada vocação...

Por exemplo Druid, Sorcerer e Infernalist irao ganhar ML, Paladin ira ganhar Distance, Drunou ira ganhar Club, Knight ira ganhar Axe e Sword, Fighter ira ganhar fist.

Drunou ids 13 e 14

Infernalist Ids 15 e 16

Fighter ids 17 e 18

 

Valeu ae! ;D

jhon992J
25 de janeiro de 2012 às 10:51

Vai em data/actions/script, duplica um arquivo e nomeia para "skillQuest" sem as aspas e nele cole:

 

function onUse(cid, item, frompos, item2, topos)

local mlGain = 3 -- quantidade de ml que ira ganhar o player
local skillGain = 5 -- quantidade de skill que ira ganhar o player

if (getPlayerStorageValue(cid, 602032) < 1) then
   if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 15 or getPlayerVocation(cid) == 16) then
       doPlayerAddMagLevel(cid, mlGain)
       doCreatureSay(cid,"Voce ganhou "..mlGain.." magic leveis!",TALKTYPE_ORANGE_1)
   end    
   if (getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8) then
       doPlayerAddSkill(cid, 2, skillGain)
       doPlayerAddSkill(cid, 3, skillGain)
       doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
   end    
   if (getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7) then
       doPlayerAddSkill(cid, 4, skillGain)
       doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
   end    
   if (getPlayerVocation(cid) == 13 or getPlayerVocation(cid) == 14) then
       doPlayerAddSkill(cid, 1, skillGain)
       doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
   end
   if (getPlayerVocation(cid) == 17 or getPlayerVocation(cid) == 18) then
       doPlayerAddSkill(cid, 0, skillGain)
       doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
   end    
setPlayerStorageValue(cid, 602032, 1)
else
doCreatureSay(cid,"Voce ja fez esta quest.",TALKTYPE_ORANGE_1)
end

return TRUE
end

 

 

Agora em data/actions/actions.xml cole a tag:

<action actionid="2085" script="skillQuest.lua"/>

 

 

E por último com seu mapa editor, vai no baú desejado do seu server e coloque o actionid 2085.

brunaum15B
25 de janeiro de 2012 às 13:03

Entaoo vey.. eu usei esse seu script direitin, mais eu clico no bau e soh aparece a mensagem "Voce ganhou tanto skills" mais o player nao ganha os skills.. =/

Alguem ae pode ajudar!?!?!?

 

 

Vai em data/actions/script, duplica um arquivo e nomeia para "skillQuest" sem as aspas e nele cole:

 

function onUse(cid, item, frompos, item2, topos)

local mlGain = 3 -- quantidade de ml que ira ganhar o player
local skillGain = 5 -- quantidade de skill que ira ganhar o player

if (getPlayerStorageValue(cid, 602032) < 1) then
if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 15 or getPlayerVocation(cid) == 16) then
	doPlayerAddMagLevel(cid, mlGain)
	doCreatureSay(cid,"Voce ganhou "..mlGain.." magic leveis!",TALKTYPE_ORANGE_1)
end	
if (getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8) then
	doPlayerAddSkill(cid, 2, skillGain)
	doPlayerAddSkill(cid, 3, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end	
if (getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7) then
	doPlayerAddSkill(cid, 4, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end	
if (getPlayerVocation(cid) == 13 or getPlayerVocation(cid) == 14) then
	doPlayerAddSkill(cid, 1, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end
if (getPlayerVocation(cid) == 17 or getPlayerVocation(cid) == 18) then
	doPlayerAddSkill(cid, 0, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end	
setPlayerStorageValue(cid, 602032, 1)
else
doCreatureSay(cid,"Voce ja fez esta quest.",TALKTYPE_ORANGE_1)
end

return TRUE
end

 

 

Agora em data/actions/actions.xml cole a tag:

<action actionid="2085" script="skillQuest.lua"/>

 

 

E por último com seu mapa editor, vai no baú desejado do seu server e coloque o actionid 2085.

Editado Janeiro 25 por brunaum15

ZamorakZ
25 de janeiro de 2012 às 17:54

cara tenta assim:

 

<action uniqueid="2085" script="skillQuest.lua"/>

 

jhon992J
25 de janeiro de 2012 às 18:16

Apareceu algum erro no executavel? tenta assim:

 

function doPlayerAddMagLevel(cid, amount)
   for i = 1, amount do
       doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid, getPlayerMagLevel(cid, true) + 1) - getPlayerSpentMana(cid)) / getConfigInfo('rateMagic'))
   end
   return true
end  

function doPlayerAddSkill(cid, skill, amount, round)
   if(skill == SKILL__LEVEL) then
       return doPlayerAddLevel(cid, amount, round)
   elseif(skill == SKILL__MAGLEVEL) then
       return doPlayerAddMagLevel(cid, amount)
   end

   return doPlayerAddSkillTry(cid, skill, (getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill)) / getConfigInfo('rateSkill'))
end

function onUse(cid, item, frompos, item2, topos)

local mlGain = 3 -- quantidade de ml que ira ganhar o player
local skillGain = 5 -- quantidade de skill que ira ganhar o player

if (getPlayerStorageValue(cid, 602032) < 1) then
   if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 15 or getPlayerVocation(cid) == 16) then
    doPlayerAddMagLevel(cid, mlGain)
    doCreatureSay(cid,"Voce ganhou "..mlGain.." magic leveis!",TALKTYPE_ORANGE_1)
   end    
   if (getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8) then
    doPlayerAddSkill(cid, 2, skillGain)
    doPlayerAddSkill(cid, 3, skillGain)
    doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
   end    
   if (getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7) then
    doPlayerAddSkill(cid, 4, skillGain)
    doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
   end    
   if (getPlayerVocation(cid) == 13 or getPlayerVocation(cid) == 14) then
    doPlayerAddSkill(cid, 1, skillGain)
    doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
   end
   if (getPlayerVocation(cid) == 17 or getPlayerVocation(cid) == 18) then
    doPlayerAddSkill(cid, 0, skillGain)
    doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
   end    
setPlayerStorageValue(cid, 602032, 1)
else
doCreatureSay(cid,"Voce ja fez esta quest.",TALKTYPE_ORANGE_1)
end

return TRUE
end

brunaum15B
25 de janeiro de 2012 às 18:52

cara tenta assim:

 

<action uniqueid="2085" script="skillQuest.lua"/>

 

 

Entaoo eu puis no meu script pra ganha 40 de ml os mage e os otros ganha 100 de skill!

Ai coloquei uniqueid como se falo ao inves de actionid e funfo o de ML mais upo soh 1 ml --" e os otros nao aconteceu nada!!

 

Alguem ajuda ae?? Plx

 

Apareceu algum erro no executavel? tenta assim:

 

function doPlayerAddMagLevel(cid, amount)
for i = 1, amount do
	doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid, getPlayerMagLevel(cid, true) + 1) - getPlayerSpentMana(cid)) / getConfigInfo('rateMagic'))
end
return true
end  

function doPlayerAddSkill(cid, skill, amount, round)
if(skill == SKILL__LEVEL) then
	return doPlayerAddLevel(cid, amount, round)
elseif(skill == SKILL__MAGLEVEL) then
	return doPlayerAddMagLevel(cid, amount)
end

return doPlayerAddSkillTry(cid, skill, (getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill)) / getConfigInfo('rateSkill'))
end

function onUse(cid, item, frompos, item2, topos)

local mlGain = 3 -- quantidade de ml que ira ganhar o player
local skillGain = 5 -- quantidade de skill que ira ganhar o player

if (getPlayerStorageValue(cid, 602032) < 1) then
if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 15 or getPlayerVocation(cid) == 16) then
	doPlayerAddMagLevel(cid, mlGain)
	doCreatureSay(cid,"Voce ganhou "..mlGain.." magic leveis!",TALKTYPE_ORANGE_1)
end	
if (getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8) then
	doPlayerAddSkill(cid, 2, skillGain)
	doPlayerAddSkill(cid, 3, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end	
if (getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7) then
	doPlayerAddSkill(cid, 4, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end	
if (getPlayerVocation(cid) == 13 or getPlayerVocation(cid) == 14) then
	doPlayerAddSkill(cid, 1, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end
if (getPlayerVocation(cid) == 17 or getPlayerVocation(cid) == 18) then
	doPlayerAddSkill(cid, 0, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end	
setPlayerStorageValue(cid, 602032, 1)
else
doCreatureSay(cid,"Voce ja fez esta quest.",TALKTYPE_ORANGE_1)
end

return TRUE
end

 

MAIS NO XML EU PONHO COMO UNIQUEID OU ACTIONID? E NO BAU?

 

Apareceu algum erro no executavel? tenta assim:

 

function doPlayerAddMagLevel(cid, amount)
for i = 1, amount do
	doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid, getPlayerMagLevel(cid, true) + 1) - getPlayerSpentMana(cid)) / getConfigInfo('rateMagic'))
end
return true
end  

function doPlayerAddSkill(cid, skill, amount, round)
if(skill == SKILL__LEVEL) then
	return doPlayerAddLevel(cid, amount, round)
elseif(skill == SKILL__MAGLEVEL) then
	return doPlayerAddMagLevel(cid, amount)
end

return doPlayerAddSkillTry(cid, skill, (getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill)) / getConfigInfo('rateSkill'))
end

function onUse(cid, item, frompos, item2, topos)

local mlGain = 3 -- quantidade de ml que ira ganhar o player
local skillGain = 5 -- quantidade de skill que ira ganhar o player

if (getPlayerStorageValue(cid, 602032) < 1) then
if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 15 or getPlayerVocation(cid) == 16) then
	doPlayerAddMagLevel(cid, mlGain)
	doCreatureSay(cid,"Voce ganhou "..mlGain.." magic leveis!",TALKTYPE_ORANGE_1)
end	
if (getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8) then
	doPlayerAddSkill(cid, 2, skillGain)
	doPlayerAddSkill(cid, 3, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end	
if (getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7) then
	doPlayerAddSkill(cid, 4, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end	
if (getPlayerVocation(cid) == 13 or getPlayerVocation(cid) == 14) then
	doPlayerAddSkill(cid, 1, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end
if (getPlayerVocation(cid) == 17 or getPlayerVocation(cid) == 18) then
	doPlayerAddSkill(cid, 0, skillGain)
	doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)
end	
setPlayerStorageValue(cid, 602032, 1)
else
doCreatureSay(cid,"Voce ja fez esta quest.",TALKTYPE_ORANGE_1)
end

return TRUE
end

 

Vey eu usei esse novo ae q vc mando, e continua a mesma coisa!! O ML dando só 1 para os mages (eu testei com um player ML 29 e passo alguns % nem chego a upa 1) e skill n upa nada!! =/

Nao da nenhum erro no executavel...

ZmovirZ
27 de janeiro de 2012 às 22:09

Testa esse

 

 

function onUse(cid, item, frompos, item2, topos)

 

local mlGain = 3 -- quantidade de ml que ira ganhar o player

local skillGain = 5 -- quantidade de skill que ira ganhar o player

 

if (getPlayerStorageValue(cid, 602032) < 1) then

if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 15 or getPlayerVocation(cid) == 16) then

doPlayerAddMagLevel(cid, mlGain)

doCreatureSay(cid,"Voce ganhou "..mlGain.." magic leveis!",TALKTYPE_ORANGE_1)

end

if (getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8) then

doPlayerAddSkill(cid, 2, skillGain)

doPlayerAddSkill(cid, 3, skillGain)

doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)

end

if (getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7) then

doPlayerAddSkill(cid, 4, skillGain)

doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)

end

if (getPlayerVocation(cid) == 13 or getPlayerVocation(cid) == 14) then

doPlayerAddSkill(cid, 1, skillGain)

doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)

end

if (getPlayerVocation(cid) == 17 or getPlayerVocation(cid) == 18) then

doPlayerAddSkill(cid, 3, skillGain)

doCreatureSay(cid,"Voce ganhou "..skillGain.." skills!",TALKTYPE_ORANGE_1)

end

setPlayerStorageValue(cid, 602032, 1)

else

doCreatureSay(cid,"Voce ja fez esta quest.",TALKTYPE_ORANGE_1)

end

 

return TRUE

end