SA

[Funçao Lua] Doplayeraddskiltry

Por sauvadur2, 02 de abr. de 2010 em Archived

script
6
1.5k
sauvadur2S
02 de abril de 2010 às 14:19

Ae galera to com duvida na funçao doPlayerAddSkilTry.

Tipo, eu queria que com essa funçao adciona-se sempre uma skill ao player, nao importa o numero da skill dele, desde que adcione...

Por exemplo:

eu vo fazer um script que remove certo item e adciona 1 skill, dependendo do comando usado pelo jogador, dai eu irei colocar doPlayerAddSkilTry(cid, skillid, e qual numero devo colocar aqui para sempre adcionar só uma skill, nem mais, nem menos, exatamente uma skill

 

 

Versao do ot server: 8.54

MattewM
02 de abril de 2010 às 22:00

Bom, veja bem:

 

if getPlayerItemCount(cid, itemid, count) == x then
doPlayerAddSkill(cid, skillid, amount)
doPlayerRemoveItem(uid, n)

 

Espero ter ajudado, ai é só você substituir, e aplicar onde você quiser, se vai ser num npc, ou sei lá.

 

Mattew.

Editado Abril 2 por Mattew

Henrique MouraH
02 de abril de 2010 às 22:11

Não se usa a função doPlayerAddSkillTry para adicionar skills, já que essa função apenas adiciona uma "tentativa" de skill ao jogador. Uma tentativa de skill é a mesma coisa de como se ele tivesse dado um hit em certo bixo, por exemplo, quando o jogador hita um monstro é como se ele tivesse ganhado uma tentativa.

 

Abraços.

sauvadur2S
03 de abril de 2010 às 17:46

E existe alguma funçao que adcione skills? porque ja tentei doPlayerAddSkill e n funciona, ja procurei em todos os lugares e n axei :/

KydraiK
03 de abril de 2010 às 22:47

Não se usa a função doPlayerAddSkillTry para adicionar skills, já que essa função apenas adiciona uma "tentativa" de skill ao jogador. Uma tentativa de skill é a mesma coisa de como se ele tivesse dado um hit em certo bixo, por exemplo, quando o jogador hita um monstro é como se ele tivesse ganhado uma tentativa.

 

Abraços.

Claro que usa ...

 

A função do TFS 0.3.6 é:

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

 

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

doPlayerAddSkillTry(cid, skillid, n) -> add n "tentativas" de skill.

getPlayerRequiredSkillTries(cid, skillId, skillLevel) -> pega a quantidade de "tentativas" necessária para o skillLevel desejado.

getPlayerSkillLevel(cid, skillid) -> pega o level do skill do player.

getPlayerSkillTries(cid, skillId) -> pega a quantidade de "tentativas" que o player ja deu.

getConfigInfo(key) -> nesse caso vai pega a rate no config.lua

Editado Abril 3 por kydrai

1 ano depois...
mayerkfM
03 de agosto de 2011 às 14:13

Ola, gostaria de saber qual o codigo que devo usar para add 1 ponto de skill , tipo.. o player tem 45 de sword, usou a funçao vai para 46.

tipo a funçao /addskill dos ADM , mas eu queria saber qual a linha de codigo que eu preciso pra fazer isso, add exatamente 1 ponto na skill que eu quero...

Ja faz dias ( serio ) que eu estou procurando, nao aguento mais... ninguem sabe ao certo como resolver isso.

O server que eu estou usando eh o 8.6 Alissow Server 4.11

 

Agradeceria imençamente a ajuda.