Ir para conteúdo

Featured Replies

Postado
  • Autor

então, o player começa com o primeiro amuleto, nenhum deles pode ser removido, pois ja editei no item editor, agora o amuleto te que ser trocado nos seguintes leveis:

 

1; 2; 5; 7; 10; 13; 16; 20; 25; 30; 35; 40; 45; 50; 55; 60; 65; 70; 75; 80; 85; 90; 95; 100; 125; 150; 175; 200; 250; 300; 350; 400; 425; 450; 475; 500; 525; 550; 575; 600; 625; 650; 675; 700

  • Respostas 32
  • Visualizações 1.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Não, ela serve pra se eu logar, e tiver com um amuleto que é de um nível superior(acontece quando você morre), ele trocar o amuleto para um anterior. Vou tentar explicar a minha lógica pra resolver es

  • bom, através do item edito eu coloquei pro item não poder ser movido do slot, e com o script do comedinhasss ele inicia com o primeiro colar function onLogin(cid) local sorcItems = {

  • Não cheguei a ver o código fonte dessa função. Mas eu penso nela desse modo:  

Postado

tenho razões pra acreditar que isso vai dar muito errado porque eu sou péssimo em fazer tables mas fica aí uma dica de como eu pensei em fazer o script:
 

function onAdvance(cid, oldLevel, newLevel)


local config = {
   [1] = {id =},
   [2] = {id = },
   [5] = {id = },
   [7] = {id = },
   [10] = {id = },
   [13] = {id = },
   [16] = {id = },
   [20] = {id = },
   [25] = {id = },
   [30] = {id = },
   [35] = {id = },
   [40] = {id = },
   [45] = {id = },
   [50] = {id = },
   [55] = {id = },
   [60] = {id = },
   [65] = {id = },
   [70] = {id = },
   [75] = {id = },
   [80] = {id = },
   [85] = {id = },
   [90] = {id = },
   [95] = {id = },
   [100] = {id = },
   [125] = {id = },
   [150] = {id = },
   [175] = {id = },
   [200] = {id = },
   [250] = {id = },
   [300] = {id = },
   [350] = {id = },
   [400] = {id = },
   [425] = {id = },
   [450] = {id = },
   [475] = {id = },
   [500] = {id = },
   [525] = {id = },
   [550] = {id = },
   [575] = {id = },
   [600] = {id = },
   [625] = {id = },
   [650] = {id = },
   [675] = {id = },
   [700] = {id = }
}


function LevelPlayer(cid)
i = 2
if getPlayerLevel(cid) < config[i] and getPlayerLevel(cid) >= config[i-1] then
level == config[i-1]
else
i = i+1
end
return level
end


if skill == 8 and getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == level.id then
if newLevel >= LevelPlayer(cid) then
    doPlayerRemoveItem(cid, level.id, 1)
    doPlayerAddItem(cid, config[i].id, 1, FALSE, 2)
if newLevel == config[i-1] then
    doPlayerSendTextMessage(cid, 22, "You received "..getItemNameById(level.id).." for reaching "..config[i-1].."")
end
end
end
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)

Postado
  • Autor

vou testar irmao, obrigado pela dedicação

 

os ids ficam assim?    [2] = {id=7888}

 

 

[29/04/2014 04:51:59] [Warning - TalkAction::configureEvent] Duplicate registered talkaction with words: !spells
[29/04/2014 04:51:59] [Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/medal.lua:13: '=' expected near '=='
[29/04/2014 04:51:59] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/medal.lua)
[29/04/2014 04:51:59] data/creaturescripts/scripts/medal.lua:13: '=' expected near '=='
Postado

sim, os Id's ficam exatamente assim. O erro na linha 13 tá pedindo == no lugar de só =, vc editou alguma coisa, porque a linha 13 aqui é essa:

[25] = {id = },

OBS: Não sei se vai funcionar porque eu não manjo dessas tables compostas:

config = {   [5] = {id = 7887},   [10] = {id= 7888}}

nesse caso o config[1].id seria 7887 por ser o primeiro item da table ou o config[5].id que seria o 7887?? Se alguém souber me responder eu posso arrumar o script pra fazer ele funcionar 100%


EDIT: fiz uns testes e arrumei uns bugs que tavam dando, infelizmente o script ainda não tá funcionando mas a lógica continua correta ao meu ver:

function onAdvance(cid, skill, oldlevel, newlevel)


local config = {
[1] = {id = 7887},
[2] = {id = 7888},
[5] = {id = 7889},
[7] = {id = 7890},
[10] = {id = 2129},
[13] = {id = 2130},
[16] = {id = 2131},
[20] = {id = 2132},
[25] = {id = 2133},
[30] = {id = 2134},
[35] = {id = 2135},
[40] = {id = 7898},
[45] = {id = 7899},
[50] = {id = 7900},
[55] = {id = 7901},
[60] = {id = 7902},
[65] = {id = 7903},
[70] = {id = 7904},
[75] = {id = 7905},
[80] = {id = 7906},
[85] = {id = 7907},
[90] = {id = 7908},
[95] = {id = 7909},
[100] = {id = 7910},
[125] = {id = 7911},
[150] = {id = 7912},
[175] = {id = 7913},
[200] = {id = 7914},
[250] = {id = 7915},
[300] = {id = 7916}
}


local function LevelPlayer(cid)
local i = 2
while getPlayerLevel(cid) < config[i] and config[i]~= nil do
if getPlayerLevel(cid) >= config[i-1] then
local level = config[i-1]
else
local i = i+1
end
end
return i
end

local a = LevelPlayer(cid) -1
if skill == 8 and getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == config[a].id then
if newlevel >= config[a] then
doPlayerRemoveItem(cid, config[a].id, 1)
doPlayerAddItem(cid, config[i].id, 1, FALSE, 2)
if newlevel == config[i] then
doPlayerSendTextMessage(cid, 22, "You received "..getItemNameById(level.id).." for reaching "..config[a].."")
end
end
end
return true
end

o erro que tá dando é bem bobo mas eu to tomando um baile aqui desse script
 

[29/04/2014 07:33:18] [Error - CreatureScript Interface] 
[29/04/2014 07:33:18] data/creaturescripts/scripts/hueee.lua:onAdvance
[29/04/2014 07:33:18] Description: 
[29/04/2014 07:33:18] data/creaturescripts/scripts/hueee.lua:40: attempt to compare number with table
[29/04/2014 07:33:18] stack traceback:
[29/04/2014 07:33:18]  data/creaturescripts/scripts/hueee.lua:40: in function 'LevelPlayer'
[29/04/2014 07:33:18]  data/creaturescripts/scripts/hueee.lua:50: in function <data/creaturescripts/scripts/hueee.lua:1>
ele não consegue comparar a table com um valor, por isso eu preciso saber como funciona esse esquema de table dentro de table.. caso contrário eu vou ter que fazer um script gigantesco e vai ficar feio pra caralho

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)

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.6k

Informação Importante

Confirmação de Termo