Ir para conteúdo

Featured Replies

Postado

nesse script q vc postou a linha 45 tá vazia, logo não poderia dar erro nela..

Bugou adicionou linhas vazias na hora de postar,não sei oque houve,posta de novo aqui(agora deu certo :boos: ):

function onKill(cid, target, lastHit)
 if not isMonster(target) then
        return true
    end
local upgrade = {
[1] = {required = 100},
[2] = {required = 200},
[3] = {required = 300},
[4] = {required = 400},
[5] = {required = 500}
}
 
local teste = getWeapon(cid)
 
if teste == false then
return true
end
 
 
if getCreatureMaster(target) ~= nil then
return true
end
 
local pos = getThingPos(cid)
local level = getItemLevel(teste.uid, #upgrade)
         
 
if level >= #upgrade then
doItemSetAttribute(teste.uid, "description", "Experience: ["..upgrade[level].required.."/"..upgrade[level].required.."]")
return true
end
 
local count = math.floor((getMonsterInfo(string.lower(getCreatureName(target))).experience))
 
local expatual = getItemAttribute(teste.uid, "exp") or 0
 
local newexp = expatual+count
 
 
if newexp >= upgrade[level + 1].required then 
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You leveled your "..getItemNameById(teste.itemid).." to ".. level+1 ..".")
doItemSetAttribute(teste.uid,'name', getItemNameById(teste.itemid)..' +'..(level+1))
doSendMagicEffect(pos, math.random(28,30))
if isInArray({1,2,3}, getItemWeaponType(teste.uid)) then
doItemSetAttribute(teste.uid, "attack", getItemAttack(teste.uid) + (level * 2))
end
doItemSetAttribute(teste.uid, "exp", 0)
if level + 2 <= #upgrade then
doItemSetAttribute(teste.uid, "description", "Experience: [".. 0 .."/"..upgrade[level + 2].required.."]")
end
else
doItemSetAttribute(teste.uid, "exp", expatual+count)
doItemSetAttribute(teste.uid, "description", "Experience: ["..(expatual+count).."/"..upgrade[level + 1].required.."]")
doPlayerSendTextMessage(cid, 27, "Congratulations, you get the experience of a ".. getCreatureName(target) .."!")
end
return true
end 

Editado por Coul (veja o histórico de edições)

  • Respostas 109
  • Visualizações 10k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • [1] = {required = 1000}, -- qnt de exp precisa pra cada nivel no formato [nv] = {required = experiencia requerida} [2] = {required = 10000}, [3] = {required = 100000}, [4] = {required = 1000000}, [5]

  • @Coul, é só remover o restante dos prints agr que vc sabe que funciona   @Ayna, até daria pra fazer mas tem que fazer pela source pra n ficar gambiarra.. porque o player pode upar e qnd remover a es

  • Tava na hora de eu fazer um script da minha cabeça mesmo, fico sempre fazendo oque os outros pedem :~~~

Posted Images

Postado
  • Autor

deixa assim e vê se dá certo:



 
function onKill(cid, target, lastHit)
 if not isMonster(target) then
        return true
    end
local upgrade = {
[1] = {required = 100},
[2] = {required = 200},
[3] = {required = 300},
[4] = {required = 400},
[5] = {required = 500}
}
 
local teste = getWeapon(cid)
 
if teste == false then
return true
end
 
 
if getCreatureMaster(target) ~= nil then
return true
end
 
local pos = getThingPos(cid)
local level = getItemLevel(teste.uid, #upgrade)
         
 
if level >= #upgrade then
doItemSetAttribute(teste.uid, "description", "Experience: ["..upgrade[level].required.."/"..upgrade[level].required.."]")
return true
end
 
local count = math.floor((getMonsterInfo(string.lower(getCreatureName(target))).experience))
 
local expatual = getItemAttribute(teste.uid, "exp") or 0
 
local newexp = expatual+count
 
 
if newexp >= upgrade[level + 1].required then 
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You leveled your "..getItemNameById(teste.itemid).." to ".. level+1 ..".")
doItemSetAttribute(teste.uid,'name', getItemNameById(teste.itemid)..' +'..(level+1))
doSendMagicEffect(pos, math.random(28,30))
if isInArray({1,2,3}, getItemWeaponType(teste.uid)) then
doItemSetAttribute(teste.uid, "attack", getItemAttribute(teste.uid, "attack") + ((level + 1) * 2))
end
doItemSetAttribute(teste.uid, "exp", 0)
if level + 2 <= #upgrade then
doItemSetAttribute(teste.uid, "description", "Experience: [".. 0 .."/"..upgrade[level + 2].required.."]")
end
else
doItemSetAttribute(teste.uid, "exp", expatual+count)
doItemSetAttribute(teste.uid, "description", "Experience: ["..(expatual+count).."/"..upgrade[level + 1].required.."]")
doPlayerSendTextMessage(cid, 27, "Congratulations, you get the experience of a ".. getCreatureName(target) .."!")
end
return true
end 

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)

Postado

deixa assim e vê se dá certo:

 

function onKill(cid, target, lastHit)
 if not isMonster(target) then
        return true
    end
local upgrade = {
[1] = {required = 100},
[2] = {required = 200},
[3] = {required = 300},
[4] = {required = 400},
[5] = {required = 500}
}
 
local teste = getWeapon(cid)
 
if teste == false then
return true
end
 
 
if getCreatureMaster(target) ~= nil then
return true
end
 
local pos = getThingPos(cid)
local level = getItemLevel(teste.uid, #upgrade)
         
 
if level >= #upgrade then
doItemSetAttribute(teste.uid, "description", "Experience: ["..upgrade[level].required.."/"..upgrade[level].required.."]")
return true
end
 
local count = math.floor((getMonsterInfo(string.lower(getCreatureName(target))).experience))
 
local expatual = getItemAttribute(teste.uid, "exp") or 0
 
local newexp = expatual+count
 
 
if newexp >= upgrade[level + 1].required then 
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You leveled your "..getItemNameById(teste.itemid).." to ".. level+1 ..".")
doItemSetAttribute(teste.uid,'name', getItemNameById(teste.itemid)..' +'..(level+1))
doSendMagicEffect(pos, math.random(28,30))
if isInArray({1,2,3}, getItemWeaponType(teste.uid)) then
doItemSetAttribute(teste.uid, "attack", getItemAttribute(teste.uid, "attack") + (level * 2))
end
doItemSetAttribute(teste.uid, "exp", 0)
if level + 2 <= #upgrade then
doItemSetAttribute(teste.uid, "description", "Experience: [".. 0 .."/"..upgrade[level + 2].required.."]")
end
else
doItemSetAttribute(teste.uid, "exp", expatual+count)
doItemSetAttribute(teste.uid, "description", "Experience: ["..(expatual+count).."/"..upgrade[level + 1].required.."]")
doPlayerSendTextMessage(cid, 27, "Congratulations, you get the experience of a ".. getCreatureName(target) .."!")
end
return true
end 

Tive este erro ao matar e subir de level:

[18:14:52.750] [Error - CreatureScript Interface]
[18:14:52.750] data/creaturescripts/scripts/itemexp.lua:onKill
[18:14:52.750] Description:
[18:14:52.750] data/creaturescripts/scripts/itemexp.lua:45: attempt to perform a
rithmetic on a nil value
[18:14:52.750] stack traceback:
[18:14:52.750]  data/creaturescripts/scripts/itemexp.lua:45: in function <data/c
reaturescripts/scripts/itemexp.lua:1>

O level ta subindo,só o atk que fica na mesma.

Postado
  • Autor

editei lá, testa agr.. se não der certo, antes do if que dá ataque coloca pra printar isso daqui:

getItemAttribute(teste.uid, "attack")

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)

Postado

 

editei lá, testa agr.. se não der certo, antes do if que dá ataque coloca pra printar isso daqui:

getItemAttribute(teste.uid, "attack")

Olha se eu printei certo...

function onKill(cid, target, lastHit)
 if not isMonster(target) then
        return true
    end
local upgrade = {
[1] = {required = 100},
[2] = {required = 200},
[3] = {required = 300},
[4] = {required = 400},
[5] = {required = 500}
}
 
local teste = getWeapon(cid)
 
if teste == false then
return true
end
 
 
if getCreatureMaster(target) ~= nil then
return true
end
 
local pos = getThingPos(cid)
local level = getItemLevel(teste.uid, #upgrade)
         
 
if level >= #upgrade then
doItemSetAttribute(teste.uid, "description", "Experience: ["..upgrade[level].required.."/"..upgrade[level].required.."]")
return true
end
 
local count = math.floor((getMonsterInfo(string.lower(getCreatureName(target))).experience))
 
local expatual = getItemAttribute(teste.uid, "exp") or 0
 
local newexp = expatual+count
 
 
if newexp >= upgrade[level + 1].required then 
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You leveled your "..getItemNameById(teste.itemid).." to ".. level+1 ..".")
doItemSetAttribute(teste.uid,'name', getItemNameById(teste.itemid)..' +'..(level+1))
doSendMagicEffect(pos, math.random(28,30))
print("getItemAttribute")
if isInArray({1,2,3}, getItemWeaponType(teste.uid)) then
doItemSetAttribute(teste.uid, "attack",getItemAttribute(teste.uid, "attack") + ((level + 1) * 2))
end

doItemSetAttribute(teste.uid, "exp", 0)
if level + 2 <= #upgrade then
doItemSetAttribute(teste.uid, "description", "Experience: [".. 0 .."/"..upgrade[level + 2].required.."]")
end
else
doItemSetAttribute(teste.uid, "exp", expatual+count)
doItemSetAttribute(teste.uid, "description", "Experience: ["..(expatual+count).."/"..upgrade[level + 1].required.."]")
doPlayerSendTextMessage(cid, 27, "Congratulations, you get the experience of a ".. getCreatureName(target) .."!")
end
return true
end 

Se estiver meu log foi esse:

getItemAttribute

[20:15:16.421] [Error - CreatureScript Interface]
[20:15:16.421] data/creaturescripts/scripts/itemexp.lua:onKill
[20:15:16.421] Description:
[20:15:16.421] data/creaturescripts/scripts/itemexp.lua:46: attempt to perform a
rithmetic on a nil value
[20:15:16.421] stack traceback:
[20:15:16.421]  data/creaturescripts/scripts/itemexp.lua:46: in function <data/c
reaturescripts/scripts/itemexp.lua:1>

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo