Doplayersetskill

Vodkart
em Mods, funções e outros

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gê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
end

 

exemplo de uso

 

 

function onSay(cid, words, param)
return doPlayerSetMagic(cid, 100) -- mudara o magic level do jogador para 100
end

 

vocês também podem fazer calculo para adicionar por exemplo +10 de magic level ou skills,muito facil

 

function onSay(cid, words, param)
local add = 10 -- quanto vc quer adicionar de magic level
doPlayerSetMagic(cid, getPlayerMagLevel(cid)+add)
return TRUE 
end

 

agora a função para skill:

 

lista:

SKILL_FIST (0) = Fist Fighting

SKILL_CLUB (1) = Club Fighting

SKILL_SWORD (2) = Sword Fighting

SKILL_AXE (3) = Axe Fighting

SKILL_DISTANCE (4) = Distance Fighting

SKILL_SHIELD (5) = Shielding

SKILL_FISHING (6) = Fishing

 

ex:

function onSay(cid, words, param)
return doPlayerSetSkill(cid, 2, 50) -- mudei a skill de sword do jogador para 50
end

 

ou add + x de skill...

 

ex adicionando + 5 de skill sword

function onSay(cid, words, param)
return doPlayerSetSkill(cid, SKILL_SWORD, getPlayerSkillLevel(cid, SKILL_SWORD)+5) -- adicionei 5 de skill de sword
end

 

 

bossisg.png

Saymon14

.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 05/05/10Posts: 544

Muito mais facil e gostoso de mudar o skill, e sem precisar de storage, certo ?

 

Não entro em equipes, já tenho meu projeto, não insista.

 

 

 

 

 

 

Easy Mapper Map Editor 8.60: Clique aqui

[8.60] BeastXHunter: Clique aqui

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

yeah

bossisg.png

meubk

@miillerdomingues
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/04/08Posts: 311

só funciona depois que reloga ?

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

é porque é pela database do player,ai só funciona com ele deslogado.

bossisg.png

Subwat

GAUCHO MACHO
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 27/07/09Posts: 1516Char no Tibia: Gean Riot

cara fico perfeito esse sistema.

Entrem Server online desde o dia 22/02/2013 Monster 24HORAS dedicado!

IP: monster24h.com

PROTOCOL:8.60

PORT:7171

 

RATES:

Exp: 9999x~10x

Skills:800x

Magic:200x

Loot:2x

Pvp-e Advanced: 1.1x Ao matar players de level semelhante.

 

Accounts Pelo Account Manager!

guixap

Beyond Sky
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 30/09/08Posts: 174Char 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.

Desvendando Scripting:



Thanks: Marcelin e Demonbholder

 

yeti.gif

Kombosabo

Kombosabo :)
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/07Posts: 27Char 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)

exoriflamq.jpg

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino
if getPlayerVocation(cid) == 1 and getPlayerMagLevel(cid) < 70 then
return doPlayerSetMagic(cid, 70)
end

bossisg.png

Kombosabo

Kombosabo :)
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/07Posts: 27Char no Tibia: Kombosabo

if getPlayerVocation(cid) == 1 and getPlayerMagLevel(cid) < 70 then
return doPlayerSetMagic(cid, 70)
end

 

 

 

 

REP+ smile_positivo.gif

exoriflamq.jpg

72asdf

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/12/11Posts: 32

muito obrigado pela contribuição.

Fir3element

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 16/06/08Posts: 998Gê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

jvcasarin

Exorcizamus te
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 13/07/15Posts: 242Char 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) then
doPlayerSendTextMessage(cid,22,"você precisa estar em protection zone pra poder usar este comando.")
return TRUE
end
if doPlayerRemoveItem(cid,2160,500) and getPlayerVocation(cid) == 8 then
doPlayerSetSkill(cid, 3, 400)
doCreatureSay(cid, "AXE FULL KNIGHT!", TALKTYPE_ORANGE_1)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA)
else
doPlayerSendCancel(cid, 'voce precisa de 5kk para usar este comando e ser Kina.')
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA)
end
end

 

 

Mais informações para os erros que aparecem: http://www.xtibia.com/forum/topic/238114-erro-erros-com-talkactions/

Te ajudei? Da um REP+ que me ajuda bastante  biggrin.png