Ir para conteúdo
  • Cadastre-se

(Resolvido)[Pedido] !saga com reverter e save


Ir para solução Resolvido por King Laker,

Posts Recomendados

Citar

asdasdasdas.jpg.b7c06e1706983c7b1744e8932d9fd74c.jpg

 

 

Salve galera! Eu já procurei aqui no fórum e encontrei um sistema de !saga

que muda a outfit sem ter que criar novas vocações,

apesar de o script ser muito bem desenvolvido, e funcionar perfeitamente,

eu gostaria de um "upgrade" nele.

No caso, eu digito "!saga 1" e ele me altera para a outfit 1 (que eu configurei),

ai eu digito "!saga 2" e ele muda para a outfit 2, etc.

 

Porém, ao deslogar do servidor a Outfit que o player estava usando no momento não fica salva,

e como a base que estou utilizando para estudos

ela adiciona a outfit de um mago velhinho (de roupa azul) para todas as vocações criadas,

e eu não sei onde eu arrumo isso.

 

Eu já tentei ir lá no SQL e adicionar o número da Outfit,

porém fazendo isso quando eu entro no servidor ele me crasha.

(Mas se deixar o mago velho como outfit inicial, entrar no game e digitar "saga"

ele muda para a outfit que eu quero e não da bug)

 

Também esse sistema de !saga ele anda somente para frente.

Exemplo: Tem um nível para liberar uma saga nova, que eu configurei para 100 níveis

Mas se o jogador estiver no nível 200 e já tiver usado o comando !saga 2

Ele não consegue voltar para a !saga 1

 

Mas o foco aqui é um upgrade nesse script para ele salvar as outfits,

algum mago ai consegue me dar um help nisso?

 

Autor: Wolf.

Código: 

local saga = {
  [1] = {[1] = 66, [2] = 67, effect = 4}, -- Exemplo de como fica aqui, [1] = ID da Vocação | "[1] = 66" = !saga 1 = muda para outfit 66.
  
  local level = 100 -- Limite para liberar uma saga nova
  -- Eu gostaria de saber se tem como variar este nível para liberar saga, tem vocações que eu só tenho 4 sprites... ai o cara vai ter que upar level 400 pra ver uma tenten toda torda '_'


function onSay(cid, words, param, channel)


 if(param == "") then
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que você deseja.")
  return true
 end


if not saga[getPlayerVocation(cid)] then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode trocar de saga.")
return true
end


local t = string.explode(param, ",")


 if(t[2]) then
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Could not understand.")
  return true
 end


 if not (tonumber(t[1])) then
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que você deseja.")
  return true
 end


if tonumber(t[1]) > #saga[getPlayerVocation(cid)] or tonumber(t[1]) < 1  then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Essa saga não existe.")
return true
end




if getPlayerLevel(cid) >= (tonumber(t[1])*level) then
doSetCreatureOutfit(cid, {lookType = saga[getPlayerVocation(cid)][tonumber(t[1])]}, -1)
doSendMagicEffect(getThingPos(cid), saga[getPlayerVocation(cid)].effect)
doPlayerSendTextMessage(cid, 25, "Voce escolheu uma nova saga!")
doPlayerSay(cid, "Saga!!", TALKTYPE_ORANGE_1)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, você precisa de level "..(tonumber(t[1]) * level).." usar essa saga.")
end

return true
end

 

Link para o post
Compartilhar em outros sites
  • Solução

@betosoares
Primeiramente vá em talkactions.xml e coloque a seguinte tag.

Spoiler

 <talkaction words="!saga" event="script" value="saga.lua"/>

Crie um arquivo .lua com o nome saga e coloque a seguinte script

Spoiler

local saga = {
    
-- [ID DA VOC] = { Naruto },
[1] = { 840, 91, 841, 676, 842, 40, 305, 677, 686, 179, 683, 397, 607, 875, 914}, 
}
local level = 50 -- Limite para liberar uma saga nova
local sagastor = 578744
function onSay(cid, words, param, channel)    
    if exhaustion.check(cid, 120) == TRUE then
        doPlayerSendCancel(cid, "You are exhausted.")
        doSendMagicEffect(getCreaturePosition(cid), 3)
        return true
    end    
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que voce deseja.")
        exhaustion.set(cid, 120, 0.5) 
        return true
    end    
    if not saga[getPlayerVocation(cid)] then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode trocar de saga.")
        exhaustion.set(cid, 120, 0.5)
        return true
    end    
    local t = string.explode(param, ",")    
    if(t[2]) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Could not understand.")
        return true
    end    
    if not (tonumber(t[1])) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que voce deseja.")
        exhaustion.set(cid, 120, 0.5) 
        return true
    end        
    if tonumber(t[1]) > #saga[getPlayerVocation(cid)] or tonumber(t[1]) < 1 then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Essa saga não existe.")
        exhaustion.set(cid, 120, 0.5)
        return true
    end    
    if getPlayerLevel(cid) < (tonumber(t[1])*level) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, voce precisa de level "..(tonumber(t[1]) * level).." usar essa saga.") return true
    end
    local out = saga[getPlayerVocation(cid)][tonumber(t[1])]
    doCreatureChangeOutfit(cid, {lookType = out})
    setPlayerStorageValue(cid, sagastor, ":"..out..",:"..getPlayerVocation(cid))
    doSendMagicEffect(getThingPos(cid), saga[getPlayerVocation(cid)].effect)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce escolheu uma nova saga!")
    doPlayerSay(cid, "Saga!!", TALKTYPE_ORANGE_1)
    exhaustion.set(cid, 120, 0.5)    
    return true
end

Aqui esta configurado para ter uma transformação a cada 50 leveis (configuravel)
Explicação [1] = { 840, 91, 841, 676, 842, 40, 305, 677, 686, 179, 683, 397, 607, 875, 914}, 

o [1] é o ID da vocação que vc quer as transforms e dentro das chaves esta a ID de cada sprite, quando vc dizer !saga 1 vai transformar na sprite 840, e quando disser !saga 2 vai pra sprite 91, você pode dizer livremente !saga 1 ou 10 estando em qualquer outra transform.

Creditos ao script > @Vodkart

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites
2 horas atrás, King Laker disse:

@betosoares
Primeiramente vá em talkactions.xml e coloque a seguinte tag.

  Mostrar conteúdo oculto

 <talkaction words="!saga" event="script" value="saga.lua"/>

Crie um arquivo .lua com o nome saga e coloque a seguinte script

  Mostrar conteúdo oculto

local saga = {
    
-- [ID DA VOC] = { Naruto },
[1] = { 840, 91, 841, 676, 842, 40, 305, 677, 686, 179, 683, 397, 607, 875, 914}, 
}
local level = 50 -- Limite para liberar uma saga nova
local sagastor = 578744
function onSay(cid, words, param, channel)    
    if exhaustion.check(cid, 120) == TRUE then
        doPlayerSendCancel(cid, "You are exhausted.")
        doSendMagicEffect(getCreaturePosition(cid), 3)
        return true
    end    
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que voce deseja.")
        exhaustion.set(cid, 120, 0.5) 
        return true
    end    
    if not saga[getPlayerVocation(cid)] then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode trocar de saga.")
        exhaustion.set(cid, 120, 0.5)
        return true
    end    
    local t = string.explode(param, ",")    
    if(t[2]) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Could not understand.")
        return true
    end    
    if not (tonumber(t[1])) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o número da saga que voce deseja.")
        exhaustion.set(cid, 120, 0.5) 
        return true
    end        
    if tonumber(t[1]) > #saga[getPlayerVocation(cid)] or tonumber(t[1]) < 1 then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Essa saga não existe.")
        exhaustion.set(cid, 120, 0.5)
        return true
    end    
    if getPlayerLevel(cid) < (tonumber(t[1])*level) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, voce precisa de level "..(tonumber(t[1]) * level).." usar essa saga.") return true
    end
    local out = saga[getPlayerVocation(cid)][tonumber(t[1])]
    doCreatureChangeOutfit(cid, {lookType = out})
    setPlayerStorageValue(cid, sagastor, ":"..out..",:"..getPlayerVocation(cid))
    doSendMagicEffect(getThingPos(cid), saga[getPlayerVocation(cid)].effect)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce escolheu uma nova saga!")
    doPlayerSay(cid, "Saga!!", TALKTYPE_ORANGE_1)
    exhaustion.set(cid, 120, 0.5)    
    return true
end

Aqui esta configurado para ter uma transformação a cada 50 leveis (configuravel)
Explicação [1] = { 840, 91, 841, 676, 842, 40, 305, 677, 686, 179, 683, 397, 607, 875, 914}, 

o [1] é o ID da vocação que vc quer as transforms e dentro das chaves esta a ID de cada sprite, quando vc dizer !saga 1 vai transformar na sprite 840, e quando disser !saga 2 vai pra sprite 91, você pode dizer livremente !saga 1 ou 10 estando em qualquer outra transform.

Creditos ao script > @Vodkart

 

Assim ele vai salvar a saga que o player deixou antes de dar logout?

Se sim, melhor resposta. Muito obrigado, maninho.

Link para o post
Compartilhar em outros sites

@betosoares Ele vai salvar o ultimo outfit que o personagem usou antes de deslogar numa storage, sendo assim quando logar ele vai estar com a mesma outfit, ja tive o mesmo problema!

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites

@King Laker thank u, bro! De coração ♥

@King Laker Amigo, o script que você me mandou não está funcionando...

Usando a do Wolf ele troca as sagas, mas não salva.

A sua nem troca as sagas e nem salva...

Sabe me dizer o que acontece?

Link para o post
Compartilhar em outros sites

é que faltou a parte do creaturescript:

 

e no login.lua antes do ultimo 'return true' adc isso:

local sagastor = 578744
if getPlayerStorageValue(cid, sagastor) ~= -1 then
local w = tostring(getPlayerStorageValue(cid, sagastor)):gsub(':', ''):explode(',')
doCreatureChangeOutfit(cid, {lookType = tonumber(w[1])})
doPlayerSetVocation(cid, tonumber(w[2]))
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart kk obrigado meu nego tinha esquecido dessa parte <3 

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites
  • 1 month later...

@King Laker

estou usando um parecido (se não o mesmo), e o problema é que não estou conseguindo fazer algo simples que é mudar o effeito.

imaginei ser nessa linha 

doSendMagicEffect(getCreaturePosition(cid), 10)

e não mudou nada, logo tentei na do final 

doSendMagicEffect(getThingPos(cid), saga[getPlayerVocation(cid)].effect)
também mexi e nada mudou :( 

 

o script é esse 

local saga = {

--Sasuke---
[17] = {93, 689, 690, 658, 659, 660, 661, 654, 663}, -- [ID DA VOCATION] =
{ LOOKTYPES DE TODAS AS TRANSFORMAÇÕES SEPARADAS POR VIRGULAS} 
-- Deidara --
[272] = {809, 641, 810, 800},
-- Neji --
[46] = {833, 834, 835, 836, 837, 830, 831},
-- Tenten --
[55] = {815, 816, 817, 818, 819, 820, 821, 822, 29, 801, 700},
-- Hinata --
[64] = {295, 296, 857, 858, 860, 600, 859, 855, 598},
-- Kakashi --
[76] = {633, 585, 586, 587, 588, 750},
-- Killer bee --
[84] = {861, 862, 863, 854, 865, 866, 867, 868, 869, 870},
-- Sakura --
[96] = {174, 173, 665, 667, 664, 666, 668, 669, 670, 793},
-- Gaara ---
[111] = {53, 67, 72, 173, 58, 57, 538},
-- Kiba --
[123] = {69, 70, 196, 197, 198, 199},
-- Itachi --
[132] = {706, 707, 710, 711, 712, 713},
-- Shisui --
[320] = {922, 923, 924, 925, 26},
-- Tobi --
[142] = {476, 477, 478, 955, 482, 484, 755, 489, 941, 945},
-- Minato --
[154] = {728, 729, 730, 731, 732, 733, 734, 757},
-- Madara --
[164] = {715, 716, 717, 718, 719, 720, 721, 723, 725, 726},
-- Tsunade --
[175] = {591, 592, 593, 594, 596, 635, 636, 637, 638, 639, 928},
-- Hashirama --
[186] = {622, 623, 624, 625, 626, 758},
-- Tobirama --
[193] = {737, 738, 739, 740, 964},
-- Nagato --
[200] = {691, 692, 528, 797},
-- Yamato --
[211] = {791, 796, 794, 795, 796},
-- Raikage --
[217] = {490, 491, 492, 493, 494, 495},
-- Kisame --
[223] = {421, 411, 412, 414, 422, 602, 603,  920, 902},
-- Temari --
[231] = {378, 379, 380, 381, 382, 917, 918},
-- Kankuro --
[239] = {309, 310, 311, 312, 313, 912, 319},
-- Sasori --
[180] = {966, 967, 968, 963, 969, 970, 972, 973, 971},

}


local level = 50 -- Limite para liberar uma saga nova


function onSay(cid, words, param, channel)

if exhaustion.check(cid, 120) == TRUE then
doPlayerSendCancel(cid, "You are exhausted.")
doSendMagicEffect(getCreaturePosition(cid), 10)
return TRUE
end


 if(param == '') then
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o
número da saga que você deseja.")
 exhaustion.set(cid, 120, 0.5) 
 return true
 end


if not saga[getPlayerVocation(cid)] then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode
trocar de saga.")
exhaustion.set(cid, 120, 0.5)
return true
end


local t = string.explode(param, ",")


 if(t[2]) then
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Could not
understand.")
  return true
 end


 if not (tonumber(t[1])) then
  doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o
número da saga que você deseja.")
 exhaustion.set(cid, 120, 0.5) 
 return true
 end


if tonumber(t[1]) > #saga[getPlayerVocation(cid)] or tonumber(t[1]) < 1  
then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Essa saga não
existe.")
exhaustion.set(cid, 120, 0.5)
return true
end


if getPlayerLevel(cid) >= (tonumber(t[1])*level) then
doCreatureChangeOutfit(cid, {lookType = saga[getPlayerVocation(cid)]
[tonumber(t[1])]})
doSendMagicEffect(getThingPos(cid), saga[getPlayerVocation(cid)].effect)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce escolheu
uma nova saga!")
doPlayerSay(cid, "Saga!!", TALKTYPE_ORANGE_1)
exhaustion.set(cid, 120, 0.5)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, você
precisa de level "..(tonumber(t[1]) * level).." usar essa saga.")
end


return true
end

 

Editado por Zyros
decidi deixar mais explicito o que preciso de ajuda (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 year later...
Em 11/12/2018 em 08:13, Vodkart disse:

é que faltou a parte do creaturescript:

 

e no login.lua antes do ultimo 'return true' adc isso:


local sagastor = 578744
if getPlayerStorageValue(cid, sagastor) ~= -1 then
local w = tostring(getPlayerStorageValue(cid, sagastor)):gsub(':', ''):explode(',')
doCreatureChangeOutfit(cid, {lookType = tonumber(w[1])})
doPlayerSetVocation(cid, tonumber(w[2]))
end

 

vodkart no meu eu coloquei o script do mlk e o seu bgl de salvar mais esta dando 1 problema esta tirando a vocação dos players!

Link para o post
Compartilhar em outros sites
  • 6 months later...

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo