Ir para conteúdo
  • Cadastre-se

(Resolvido)Pega valor da exp ganha do player!


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Como posso  pegar a quantidade de Exp que o Player ganha, por exemplo matei um monstro e ganhei 50 de EXP, como pegar o valor 50 e passar para um scrippt?

 

 

Queor fazer algo tipo isso:

-- AoGanharExp

   Exp = Salvar Exp

SetItemAtribute ( Sword, exp, Salvar Exp)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Link para o post
Compartilhar em outros sites

hã? ninguém vai entender jovem...

Especifique melhor.

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

Vou tentar ser mais especifico, quero fazer algo assim:

 

Matei um monstro e ganhei Experiencia, como eu pego a quantidade de experiencia que ganhei e adiciono em 1 item, doItemSetAttribute(pid, "experiencia", expganha).

Link para o post
Compartilhar em outros sites

faz function onKill no creaturescripts:

local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier)
local count = math.floor((getMonsterInfo(string.lower(getCreatureName(target))).experience*exp))

count é o numero que vc quer. ;]

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Assim?

function onKill(cid)
 
local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier)
local count = math.floor((getMonsterInfo(string.lower(getCreatureName(target))).experience*exp))
 
local pokeball = getPlayerSlotItem(cid, CONST_SLOT_FEET)
local expatual = getItemAttribute(cid, "exp")
 
doItemSetAttribute(pokeball, "exp", expatual+count)
doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a  "..count.."!")
end

Link para o post
Compartilhar em outros sites

depende doque vc quer aheuhauhe mas sim, isso funciona.

a exp vai ser a experiencia do stage baseada no level do cara e na vocação pelo experienceMultiplier (definido no vocations.xml)
a count vai ser o valor arredondado da quantidade de experiencia que o monstro dá (definido no monsters.xml) e multiplicado pela exp

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

se der certo ou errado comenta aqui pra eu ter um feedback se essa forma de fazer funciona em PDA e poder ajudar outros que tenham dúvidas parecidas

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Cara não deu certo e não deu erro =/

O item tem o atributo exp, e está com 0 isso eu fiz já, só não está somando a exp ao matar o monstro.

 

A Tag é essa?

<event type="kill" name="exppoke" script="exppoke.lua"/>

 

 

PS: Não estou usando PDA, e preciso muito disso porque é o principal para o meu servidor.

Link para o post
Compartilhar em outros sites
  • Solução

perai q tá errado.. deixa eu arrumar pra ti e ja edito:

edit:

 

function onKill(cid, target, lastHit)

local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier)
local count = math.floor((getMonsterInfo(string.lower(getCreatureName(target))).experience*exp))

local pokeball = getPlayerSlotItem(cid, CONST_SLOT_FEET)
local expatual = getItemAttribute(pokeball.uid, "exp") or 0

doItemSetAttribute(pokeball.uid, "exp", expatual+count)
doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a  ".. getCreatureName(target) .."!")
return true
end

agr abre creaturescripts\scripts\login.lua e adiciona essa linha antes do ultimo return true:

registerCreatureEvent(cid, "exppoke")
Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Hehehe tá quase só não tá pegando o item do slot:

 

[02/09/2014 03:00:25] [Error - CreatureScript Interface] 
[02/09/2014 03:00:25] data/creaturescripts/scripts/exppoke.lua:onKill
[02/09/2014 03:00:25] Description: 
[02/09/2014 03:00:25] (luaDoItemSetAttribute) Item not found

Link para o post
Compartilhar em outros sites

arrumei lá, vc tinha colocado cid ao invés de pokeball.uid

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

muito maior ou oque? 
 

function onKill(cid, target, lastHit)

local exp = getExperienceStage(getPlayerLevel(cid))
local count = (getMonsterInfo(string.lower(getCreatureName(target))).experience*exp)

local pokeball = getPlayerSlotItem(cid, CONST_SLOT_FEET)
local expatual = getItemAttribute(pokeball.uid, "exp") or 0

doItemSetAttribute(pokeball.uid, "exp", expatual+count)
doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a ".. getCreatureName(target) .."!")
return true
end

testa assim

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

se vc colocou que o  bixo vai dar 135 de exp mas a exp é 100x obviamente vai multiplicar e ficar 13500... se vc quiser que vá só a experiencia do próprio monstro vc só usa a linha debaixo:

function onKill(cid, target, lastHit)

local count = getMonsterInfo(string.lower(getCreatureName(target))).experience

local pokeball = getPlayerSlotItem(cid, CONST_SLOT_FEET)
local expatual = getItemAttribute(pokeball.uid, "exp") or 0

doItemSetAttribute(pokeball.uid, "exp", expatual+count)
doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a ".. getCreatureName(target) .."!")
return true
end

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo