Ir para conteúdo

Featured Replies

Postado

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 por blackz (veja o histórico de edições)

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
avatar_1218.gif
  • Respostas 28
  • Visualizações 1.4k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

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

 

cbCyOSZ.png

Postado
  • Autor

não criei as novas vocations ainda, to testando com as que já existem

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
avatar_1218.gif
Postado
  • 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>
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
avatar_1218.gif
Postado

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

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