Postado Abril 29, 2014 11 anos O título é meio complicado eu sei, mas eu queria saber se é possível fazer o seguinte: - Se a arma for de peso até 20, o speedattack do player muda para 2000 - Se a arma for de peso 21 até 40. o speedattack do player muda para 2500 - Se a arma for de peso maior que 40, o speed attack do player muda para 3000 - Se o player está sem arma o speed attack volta ao original que é 1500 Se o player for premium: - Se a arma for de peso até 20, o speedattack do player muda para 1000 - Se a arma for de peso 21 até 40. o speedattack do player muda para 1500 - Se a arma for de peso maior que 40, o speed attack do player muda para 2000 - Se o player está sem arma o speed attack volta ao original que é 500 Se algúem puder ajudar eu agradeço, eu uso TFS 0.4 rev 3777, em ubuntu lt 12.04, não sei se essa parte do ubuntu faz diferença ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Se não funcionar da forma acima, pode ser assim: - Se a arma for de peso até 20, a vocation vira 1 - Se a arma for de peso 21 até 40. a vocation vira 2 - Se a arma for de peso maior que 40, a vocation vira 3 - Se o player está sem arma a vocation volta ao normal e se for premmy as vocatioon viram as de premmy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ o Adriano SwaTT me fez esse script: local voc20 = local voc21_40 = local voc41 = local strg = 84849 function onEquip(cid, item, slot) local check = getItemWeight(item) local save = getPlayerVocation(cid) setPlayerStorageValue(cid, strg, save) if check < 20 then doPlayerSetVocation(cid, voc20) doPlayerSendTextMessage(cid, 20, "Parabens, sua vocacao mudou para ".. getPlayerVocationName(cid) ..".") elseif check >= 21 and check <= 40 then doPlayerSetVocation(cid, voc21_40) doPlayerSendTextMessage(cid, 20, "Parabens, sua vocacao mudou para ".. getPlayerVocationName(cid) ..".") elseif check > 41 then doPlayerSetVocation(cid, voc41) doPlayerSendTextMessage(cid, 20, "Parabens, sua vocacao mudou para ".. getPlayerVocationName(cid) ..".") end return true end function onDeEquip(cid, item, slot) local back = getPlayerStorageValue(cid, strg) doPlayerSetVocation(cid, back) doPlayerSendTextMessage(cid, 20, "Sua vocacao foi resetada.") return true end <movevent type="Equip" itemid="2407;2967;3387;3271" slot="shield" event="script" value="arquivo.lua"/> <movevent type="DeEquip" itemid="2407;2967;3387;3271" slot="shield" event="script" value="arquivo.lua"/> botei no itemid o 2523 (blessed shielld), mas o item não vai "pra mão" Editado Abril 29, 2014 11 anos por blackz (veja o histórico de edições) tibia.com Eu que não fumo, queria um cigarro Eu que não amo você Envelheci dez anos ou mais Nesse último mês Eu que não bebo, pedi um conhaque Pra enfrentar o inverno Que entra pela porta Que você deixou aberta ao sair
Postado Abril 29, 2014 11 anos Boa noite. Deixe-me te perguntar, por acaso chegou a criar as novas vocações em vocations.xml e adicioná-las no início do script? Nesta parte, no lugar dos "X": local voc20 = X local voc21_40 = X local voc41 = X Adicione as vocações e teste assim: local voc20 = local voc21_40 = local voc41 = local strg = 84849 function onEquip(cid, item, slot) local check = getItemWeight(item, 1) local save = getPlayerVocation(cid) setPlayerStorageValue(cid, strg, save) if check < 20 then doPlayerSetVocation(cid, voc20) doPlayerSendTextMessage(cid, 20, "Parabens, sua vocacao mudou para ".. getPlayerVocationName(cid) ..".") elseif check >= 21 and check <= 40 then doPlayerSetVocation(cid, voc21_40) doPlayerSendTextMessage(cid, 20, "Parabens, sua vocacao mudou para ".. getPlayerVocationName(cid) ..".") elseif check > 41 then doPlayerSetVocation(cid, voc41) doPlayerSendTextMessage(cid, 20, "Parabens, sua vocacao mudou para ".. getPlayerVocationName(cid) ..".") end return true end function onDeEquip(cid, item, slot) local back = getPlayerStorageValue(cid, strg) doPlayerSetVocation(cid, back) doPlayerSendTextMessage(cid, 20, "Sua vocacao foi resetada.") return true end Poste o resultado. #Não_testei. Editado Abril 30, 2014 11 anos por Adriano SwaTT (veja o histórico de edições) Gosta do meu trabalho? Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs. Atenciosamente,Adriano Swatt' Para ver meus tutoriais acesse meu perfil.
Postado Abril 30, 2014 11 anos Autor não criei as novas vocations ainda, to testando com as que já existem tibia.com Eu que não fumo, queria um cigarro Eu que não amo você Envelheci dez anos ou mais Nesse último mês Eu que não bebo, pedi um conhaque Pra enfrentar o inverno Que entra pela porta Que você deixou aberta ao sair
Postado Abril 30, 2014 11 anos Autor quando tento colocar o item na "mão" aparece esse erro, estou usando o novo código que me passou [22:12:16.798] [Error - MoveEvents Interface] [22:12:16.799] data/movements/scripts/itemweight.lua:onEquip [22:12:16.800] Description: [22:12:16.801] (luaGetItemWeight) Item not found [22:12:16.802] [Error - MoveEvents Interface] [22:12:16.803] data/movements/scripts/itemweight.lua:onEquip [22:12:16.805] Description: [22:12:16.806] data/movements/scripts/itemweight.lua:10: attempt to compare bool ean with number [22:12:16.807] stack traceback: [22:12:16.808] data/movements/scripts/itemweight.lua:10: in function <data/move ments/scripts/itemweight.lua:6> tibia.com Eu que não fumo, queria um cigarro Eu que não amo você Envelheci dez anos ou mais Nesse último mês Eu que não bebo, pedi um conhaque Pra enfrentar o inverno Que entra pela porta Que você deixou aberta ao sair
Postado Abril 30, 2014 11 anos testa assim local voc20 = local voc21_40 = local voc41 = local strg = 84849 local cap = {20, 21, 40, 41} function onEquip(cid, item, slot) local check = getItemWeight(item, 1) local save = getPlayerVocation(cid) setPlayerStorageValue(cid, strg, save) if check < cap[1] then doPlayerSetVocation(cid, voc20) doPlayerSendTextMessage(cid, 20, "Parabens, sua vocacao mudou para ".. getPlayerVocationName(cid) ..".") elseif check >= cap[2] and check <= cap[3] then doPlayerSetVocation(cid, voc21_40) doPlayerSendTextMessage(cid, 20, "Parabens, sua vocacao mudou para ".. getPlayerVocationName(cid) ..".") elseif check > cap[4] then doPlayerSetVocation(cid, voc41) doPlayerSendTextMessage(cid, 20, "Parabens, sua vocacao mudou para ".. getPlayerVocationName(cid) ..".") end return true end function onDeEquip(cid, item, slot) local back = getPlayerStorageValue(cid, strg) doPlayerSetVocation(cid, back) doPlayerSendTextMessage(cid, 20, "Sua vocacao foi resetada.") return true end se isso não der certo experimenta declarar local item = IDdoitem em questão (o mesmo do movements.xml) 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)
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.