Postado Abril 28, 2015 10 anos 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 ): 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 Abril 28, 2015 10 anos por Coul (veja o histórico de edições)
Postado Abril 28, 2015 10 anos 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 Abril 29, 2015 10 anos 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Abril 28, 2015 10 anos 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 Abril 29, 2015 10 anos 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Abril 29, 2015 10 anos 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.