Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


    [NPM4.9] - Loja do servidor

    lovins
    lovins
    Membro Ativo
    Membro Ativo


    Mensagens : 340
    Créditos : 68

    [NPM4.9] - Loja do servidor Empty [NPM4.9] - Loja do servidor

    Mensagem por lovins Seg Set 07, 2015 9:15 pm

    [NPM4.9] - Loja do servidor IbiDMc8Q9SD40u


    • Informações:


    Essa modificação faz com que as lojas sejam salvas no servidor, facilitando a edição ou implementação de certos tipos de eventos em seu jogo.




    • Logs:


    07/09/15 - Script criado e postado.




    • Tutorial:



    1) Vá na pasta do servidor e abra o arquivo functions dentro da pasta scripts, abaixo de:
    Código:

    --------------------------------
    --         Drop (37)          --
    --------------------------------
      elseif cmd == "<37a>" then
        do
          data = string.gsub(data, " ", "")
          mdrop_id = string.gsub(data, "<37a>", "")
        end

      elseif cmd == "<37>" then
        do
          NP():SendToUser(mdrop_id, data)
        end
    Adicione:
    Código:

    --------------------------------
    --        Loja (l01)          --
    --------------------------------
      elseif cmd == "<l01>" then
        do
           data = string.gsub(data, "<l01>", "")
           data = string.gsub(data, "</l01>", "")
           loja = data
           file = io.open("Lojas\\"..loja..".dat", "a+")
           loja_string = file:read("*all")
           loja_string = string.gsub(loja_string, "\n", "/n/")
           NP():SendToUser(user.id,"<l01>"..loja_string.."</l01>")
           file:close()
        end

    2) Agora ainda na pasta do servidor, crie uma pasta chamada Lojas, e dentro dela crie um arquivo para cada loja, por exemplo, vou criar o 1.dat que será a primeira loja, e dentro dele colocarei: 1_3]1,1], ]2,1]]
    Sendo que:
    1 = Ordem da loja, use o mesmo nome do arquivo (OBS.: Tem que ser número)
    1,1 e 2,1 = Item que será vendido, o numero antes da "," representa o tipo do item (0 = item; 1 = armas; 2 = armaduras) e o número depois da "," é o ID do item, então no caso eu estou vendendo uma arma de ID 1 e uma armadura de ID 1.

    3) Agora nos scripts do jogo, vá no [NET] Network, abaixo de:
    Código:

        # Recebimento do drop
        when /<37>(.*)<\/37>/
          return true if $1.strip == ""
          for line in $1.split("/n/")
            next if line.strip == ""
            arg = line.split(">")
            $game_drops.add(arg[0].to_i, arg[1].to_i, arg[2].to_i, arg[3].to_i, arg[4].to_i, arg[5].to_i, arg[6].to_i)
          end
          return true
    adicione:
    Código:

        # Recebimento da loja
        # By: Darkmel
        when /<l01>(.*)<\/l01>/
            n = $1.split("_")
            arrg = n[1]
            n = eval(n[0])
            $loja_servidor = [] if $loja_servidor.nil?
            $loja_servidor[n[0]] = [] if $loja_servidor[n[0]].nil?
            $loja_servidor[n[0]] = eval(arrg)
          return true

    4) Crie um script acima do main e coloque isso:
    Código:

    #==============================================================================
    # ** Carregar loja do servidor
    #------------------------------------------------------------------------------
    # By Darkmel
    #==============================================================================
    class CarregarLoja
      def self.iniciar(id)
        Network.socket.send("<l01>#{id}</l01>\n")
        if !$loja_servidor[id].nil?
          $game_temp.battle_abort = true
          $game_temp.shop_calling = true
          $game_temp.shop_goods = $loja_servidor[id]
        end
      end
    end


    5) Para abrir uma loja é simples, basta chamar um script no npc com isso: CarregarLoja.iniciar(1) sendo que onde está verde é a loja que deseja chamar.




    • Créditos:


    Darkmel - Por criar e postar o sistema


    Da rep+, não custa nada ajudar quem ajuda :)


    _________________
    [NPM4.9] - Loja do servidor 616s9EW

      Data/hora atual: Sex Nov 22, 2024 8:53 am