Muito mais facil e gostoso de mudar o skill, e sem precisar de storage, certo ?
- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- Doplayersetskill
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

yeah
só funciona depois que reloga ?
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

é porque é pela database do player,ai só funciona com ele deslogado.
info
Grupo: Infante
Registrado: 27/07/09
Posts: 1.5k
Reputação: +405
Char no Tibia: Gean Riot

cara fico perfeito esse sistema.
info
Grupo: Cavaleiro
Registrado: 30/09/08
Posts: 174
Reputação: +60
Char no Tibia: Knight do Momento

Tu poderia fazer um comando agora xD...
Muita gente procura comando de venda de skill de ml onde. Só druid e sorc compra ml e com limite de 200, só pally compra distance com limite de 350 e só kina compra de club, sword e axe com limite de 350.
info
Grupo: Campones
Registrado: 28/07/07
Posts: 27
Reputação: 0
Char no Tibia: Kombosabo

Otimo function '-' usando no meu server
soh uma duvida:
"Se jogador for sorcerer e tiver magic level menor que 70, set magic level to 70."
ta certo isso ai?
if playerVoc == 1 and getPlayerSkill(cid, 7) <= 70 then doPlayerSetMagic(cid, 70)
Editado Dezembro 15 por Kombosabo OT Server
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

if getPlayerVocation(cid) == 1 and getPlayerMagLevel(cid) < 70 then return doPlayerSetMagic(cid, 70) end
info
Grupo: Campones
Registrado: 28/07/07
Posts: 27
Reputação: 0
Char no Tibia: Kombosabo

if getPlayerVocation(cid) == 1 and getPlayerMagLevel(cid) < 70 then return doPlayerSetMagic(cid, 70) end
REP+ ![]()
muito obrigado pela contribuição.
info
Grupo: Conde
Registrado: 16/06/08
Posts: 998
Reputação: +185
Gênero: Masculino

SET é meio sem utilidade, acho que add ficaria melhor, ah e arrumei o TRUE porque nas últimas versões do tfs ele foi repassado por true
function doPlayerSetSkill(cid, skill, amount)
local pid = getPlayerGUID(cid)
doRemoveCreature(cid, true)
db.executeQuery("UPDATE `player_skills` SET `value` = `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` = `maglevel` + " .. amount .. " WHERE `id` = ".. pid)
return true
end
Um modo de fazer essa função sem laggar o servidor é assim:
function playerAddSkill(cid, skill, amount, round) if(skill == SKILL__LEVEL) then return doPlayerAddLevel(cid, amount, round) end for i = 1, amount do if(skill == SKILL__MAGLEVEL) then return doPlayerAddMagLevel(cid, i) end return doPlayerAddSkill(cid, skill, i) end end
Editado Janeiro 26 por fireelement
info
Grupo: Barão
Registrado: 13/07/15
Posts: 242
Reputação: +56
Char no Tibia: Sekk

Desculpa reviver o tópico, mas preciso muito dessa ajuda!
Olhem, me ajudem com esse script:
function onSay(cid, words, param)
if (getTilePzInfo(getCreaturePosition(cid)) == FALSE) thendoPlayerSendTextMessage(cid,22,"você precisa estar em protection zone pra poder usar este comando.")return TRUEendif doPlayerRemoveItem(cid,2160,500) and getPlayerVocation(cid) == 8 thendoPlayerSetSkill(cid, 3, 400)doCreatureSay(cid, "AXE FULL KNIGHT!", TALKTYPE_ORANGE_1)doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA)elsedoPlayerSendCancel(cid, 'voce precisa de 5kk para usar este comando e ser Kina.')doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA)endend
Mais informações para os erros que aparecem: http://www.xtibia.com/forum/topic/238114-erro-erros-com-talkactions/








info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino
Função para mudar a quantidade de skills ou magic level do jogador.
lib/050-function
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 endexemplo de uso
vocês também podem fazer calculo para adicionar por exemplo +10 de magic level ou skills,muito facil
agora a função para skill:
lista:
ex:
ou add + x de skill...
ex adicionando + 5 de skill sword