Ir para conteúdo

Beeki

Herói
  • Total de itens

    1900
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Histórico de Reputação

  1. Upvote
    Beeki deu reputação a postdeotpago em GLOBAL 8.6 FULL EVENTS (Absolute)   
    Como apagaram o meu post em outro fórum de OTSERVER, estou postando aqui, pois acho mais difícil serem amiguinhos do maior ladrão da história Lu.Lukinhas (vulgo Absolute).



    Este é um OTSERVER que comprei pensando que era único, mas na verdade é só o EMPORIUM traduzido e modificado.



    O Absolute está cobrando R$300,00 por ele e estou disponibilizando gratuitamente para vocês.



    Download: http://www.mediafire.com/download/no418fbhix6pobz/GlobalPACK_8.60_FULL_with_Events.zip

    Scan: https://www.virustotal.com/pt/file/b8481c8e8b59b8816111e36384c0e1a3918e0c68747d82c40c782f7d9f484419/analysis/1453921891/



    Recomendo utilizar em Linux Debian 6.



    INFOS



    - É o servidor base dos maiores 8.6 de hoje em dia;

    - Possui cidades VIP novas, não encontradas em nenhum outro servidor;

    - Possui trainers offline;

    - Items VIP's já criados;

    - Cast System;

    - Thais reformulada;

    - Quests 99% funcionando.



    Não vou ajudar ninguém a utilizar. Usem o fórum para possíveis dúvidas.



    by: Amiguinho do Absolute





    Créditos: dono do EMPORIUM e acho que Absolute (mesmo que eu ache que ele não fez nada).

  2. Upvote
    Beeki deu reputação a postdeotpago em OTX 8.6 - DASH+CAST   
    Como apagaram o meu post em outro fórum de OTSERVER, estou postando aqui, pois acho mais difícil serem amiguinhos do maior ladrão da história Lu.Lukinhas (vulgo Absolute).



    Esta é uma das sources mais seguras atualmente. Ela pode ser baixada gratuitamente, porém sem o DASH e o CAST SYSTEM.



    O Absolute está cobrando R$150,00 por ela e estou disponibilizando gratuitamente para vocês.



    Esta source pode ser compilada da mesma forma que um TFS 0.4

    Possivelmente você terá alguns erros ao migrar de TFS para OTX, mas com paciência é possível resolver.



    Com esta distro, um Baiak, hospedado em VPS de 1GB fica mais liso que bunda de nenê, pois ele tem DASH incluso. Aquele mesmo DASH do MageBot já está incluso no distro, disponível para qualquer player usar.



    Download: http://www.mediafire.com/download/sagzx4w5tfpyju7/OTX_2.1_%5BCAST%5D_Absolute.zip

    Scan: https://www.virustotal.com/pt/file/1eec091fb9cb24af5666be2cf35ac92cde191c939fcdf4a3919abe9a2c88b6f3/analysis/



    Recomendo utilizar em Linux Debian 6.



    Não vou ajudar ninguém a compilar ou resolver erros de incompatibilidade com TFS 0.4. Procurem tutoriais no forum para isso.



    by: Amiguinho do Absolute





    Créditos: acho que Absolute (mesmo que eu ache que ele não fez nada).

  3. Upvote
    Beeki deu reputação a felzan em Criar VPS de testes em VM   
    Vamos criar uma Máquina Virtual que poderá ser acessada/controlada como se fosse uma VPS!
    Antes de contratar um serviço de host para o seu servidor pode-se testar todas as suas funções localmente!
     
    Índice:
     
    1. Por que fazer isto?
    2. Sistema Operacional
    3. Programa de virtualização
    4. Criando a VM
    5. Instalação do OS
    6. Configurando SSH
    7. Acessando terminal SSH
     
    1. Por que fazer isto?
     
    Pode-se criar uma VPS local para aprender a utilizar uma VPS profissional.
    Você fará tudo como se fosse uma VPS profissional, talvez a única diferença seja o IP
     
    2. Sistema operacional
     
    Vamos usar o Debian Jessie.
    Distros, vamos usar a x86 (32 bits). Vocês podem usar a x64.
     
    3. Programa de virtualização
     
    Vamos usar o VMware Workstation 11, vocês podem tentar usar a versão mais nova, porém, por sua conta
     
    4. Criando a VM
     
    Para criar a VM (Virtual Machine ~ Máquina Virtual) é só selecionar a imagem do OS (.iso) e ir avançando...
    http://imgur.com/a/LvUit
     
    Nenhuma dúvida nisso né?
     
    5. Instalação do OS
     
    Na instalação do OS (Operational System ~ Sistema Operacional) não tem mistério, é só ir preenchendo o que pede
    http://imgur.com/a/fMBv8
     
    6. Configurando SSH
     
    Já dentro do servidor vamos logar como root e habilitar para que este usuário possa ser usado via SSH.
    http://imgur.com/a/Ajw05
     
    Código da 2ª imagem
    nano /etc/ssh/sshd_config
    para salvar: Ctrl+X e aceitar (Y).
     
    Alterar
    PermitRootLogin without-password
    Para
    PermitRootLogin yes
     
    Código da 5ª imagem
    /etc/init.d/ssh restart
     
    Agora só precisamos saber qual o IP que vamos usar!
     
    Código da 6ª imagem
    ifconfig
     
    O endereço que precisamos é o inet addr (está na 2ª linha após o comando).
     
    Esse é mais "complicado"
     
    7. Acessando terminal SSH
     
    Para podermos acessar o servidor via terminal E ftp usaremos o Putty(download).
     
    Essa parte que vamos usar é bem intuitiva... Inserir o IP do servidor (porta já esta em 22), inserir usuário e senha no terminal.
    http://imgur.com/a/KLA52
     
    Agora é só diversão!
    Seu VPS (local) está prontinho! :nuts:
    X. Bônus Pra compilar e executar o servidor, podem seguir esse tutorial do @Annudek
     
    OBS: Eu fiz isso faz um tempo já, quando a VMware era 11 ainda, qualquer coisa falem :smile_positivo:
  4. Upvote
    Beeki deu reputação a felzan em Auto complete TFS 1.x p/ Notepad++ e Sublime Text   
    Auto completar é uma função que permite escrita mais veloz e com menos erros.
    Pra que ela serve?
    Ela mostra as possíveis funções a partir do que foi digitado.
     
    Notepad++

     
    Ativar no Notepad++
    Para ativar esta função no Notepad++: Configurações>Preferências > Auto completar> Marcar: Habilitar auto completar para cada entrada > Selecionar: Function anda Word completion
     
    Local do arquivo
    Colocar o Lua.xml em > [C:\Program Files (x86)\Notepad++\plugins\APIs]
     
     
     
    Sublime Text 3

     
    Copiar https://gist.github.com/felzan/16f636644e421ca2f687 e criar um arquivo chamado tfs-lua.sublime-completions
     
    Local do arquivo
    Colocar o tfs-lua.sublime-completions em > [%appdata%\Sublime Text 3\Packages\User\]
    Caso tenha apenas baixado o .zip vai ser em [pasta_do_Sublime_Text\Data\Packages\User\]
     
     
    Crédios:
    base Notepad++ @Zisly
    base Sublime Text @@Syntax
    Lua.xml
  5. Upvote
    Beeki deu reputação a Anuudek em [TFS 1.x] Compilando OTServ em Ubuntu/Debian   
    Compilando OTServer em Linux
    (Testado em Debian7 e Ubuntu14.04)

    Olá XTibia! Venho trazendo um tutorial muito útil para aqueles que não faz a mínima ideia de como compilar um OT de uma forma simples! Funciona somente com sources de TFS 1.x

    Primeiro de tudo, você tem que ter a Source e o OT que deseja compilar. Então 'LETS GO'!

    Programas para instalar PuTTY para conectar via SSH. (aqui) FilleZila Client para ter acesso aos arquivos da máquina. (aqui)
    Começando Ao instalar os programas, abra o Fillezila. Em Host, Nome de Usuário, Senha, Port (padrão 22), coloque oque te passaram pelo email quando comprou o Dedicado Ao logar, volte uma pasta, renomeie a pasta do seu ot para "otserv" e coloque a pasta "sources" dentro da pasta do seu ot, e mova para o Fillezila, ficando em /otserv Ao mover basta compilar, configurar e deixar online.
    Abrindo o PuTTY Agora você precisará usar o PuTTY. Abra ele e siga as imagens abaixo:
    ----

    ----

    ----

    -----


    Instalando arquivos necessários Bom, depois que o Shell estiver aberto, vamos instalar os arquivos necessários para compilar, incluindo Apache e MySQL. Com o Shell aberto execute este comando para atualizar o sistema: apt-get update (OBS: NUNCA USE #apt-get upgrade)
    Logo depois execute:
    apt-get install cmake build-essential liblua5.2-dev libgmp3-dev libmysqlclient-dev libboost-system-dev apache2 php5 libapache2-mod-php5 php5-mysql mysql-server phpmyadmin Após carregar tudo, irá pedir abrir duas telas com caixas de seleção, a primeira você marque "apache2" e dê enter, na segunda você seleciona "yes", e coloque a senha do MYSQL.

    Compilando seu OTServ Chegou a hora do tão esperando momento! Para compilar seu otserv navegue até a pasta das sources, executa o comando de compilar, e mova o arquivo "tfs" para a pasta do seu OT. Seguindo estes comandos: cd otserv/sources
    mkdir build
    cd build
    cmake ..
    make
    mv tfs /otserv  
    Pronto, OT compilado, fácil né? Para abrir certifique que seu config.lua está de acordo com a sua necessidade.
    Deixando seu OTServ online Depois de compilar, configurar o seu OTServ do jeito que você quiser, é hora de deixar seu OT online! Para deixar o OT online, você precisa ir para pasta do seu otserv e executar o comando #./tfs Siga os comandos: cd /otserv
    ./tfs  
    Pronto! Só esperar carregar e SERVER ON!

    Outros e dicas A pasta para colocar seu site fica em /var/www Se quiser deixar seu servidor online e com o PuTTY fechado, antes de abrir execute este comando apt-get install screen  
    Logo depois, use este comando, depois só abrir o servidor normalmente!
    screen -S tibia (OBS: o -S dessa palavra tem diferença, se você colocar o -S minúsculo (-s), haverá diferença de comando.
    Se quiser fechar o servidor, só digitar este comando de depois apertar CTRL+C.
    screen -x  


    Então galera, o tutorial foi esse! Eu também achava que era MUITO complicado, mas é só isso!
    Se você gostou não esqueça de reputar, e até mais!

    (Créditos pelas imagens: Natanael Beckman)
  6. Upvote
    Beeki deu reputação a Night Wolf em Player Executando TalkAction via "doCreatureSay"   
    É tranquilo porém tem limitações. Primeiramente vamos diferenciar oque são flags e oque são custom flags pra não nos confundirmos>
     
    Flags: Códigos binários que definem privilégios e limitações de gamemasters. Começou no TFS 0.2
    Custom Flags: códigos binários que definem privilégios e limitações de players em geral. Começou no TFS 0.3
     
    Oque isso nos diz sobre as custom flags? Elas vieram depois então possuem um grau de sofisticação maior, elas definem coisas que só as flags não deram conta e acredito q ela seja uma ferramente extremamente poderosa.
     
    Um outro link que achei para flags é esse daqui
     
    Você disse que eram as custom flags, estou certo? Então nem essa lista acima e nem a do @@felzan vão te ajudar. Tem algo lá q define quem pode usar callbacks e oque resta saber é se é uma configuração própria
    "Pode usar callbacks", ou algo mais geral que incluiram no OTC e que eles escolheram pois é a prova definitiva que alguém é GOD, como "Tem controle total do servidor". Se for o segundo caso, é um problema pois vc nao pode setar todo mundo como tendo acesso direto.
     
    "Tá, mas e se for o primeiro?"
    Bom, noticia boa.. agora a parte dificil: Qual é a configuração? Qual é o check que devo dar para garantir só essa pequena mudança nos meus players e permitir que eles usem callback?
    Infelizmente todo mundo usava o mesmo link para configurar as custom flags, que além de ser um link antigo (TFS 0.3) e desatualizado, ele não está mais disponível
    Eu juro q eu fui aos confins da terra pra procurar isso e não tive resultado, precisaria de alguém com MUITO conhecimento em source pra me apontar exatamente fica a configuração e fazer um site semelhante aos que já foram apresentados aqui, mas atualizado e com as customflags.
     
    "Ok, mas cadê a noticia boa disso?"
    bem, a noticia boa é que eles seguem um padrão muito simples de bases binárias, 2^n com n>= 3 & n E N.
    Você só tem que testar 8, 16, 32, 64, 128... 1 por 1 até achar um que funcione. Ok, parece simples.. com alguns resets no servidor você consegueria achar (supondo que é achável).
     
    "Epa, como assim 'supondo que é achável'?"
    Como não temos a lista nem o numero de customflags existentes, podemos chegar em 1 momento em que estaríamos repetindo combinações de numeros anteriores sem saber, e essas combinações PODEM ou NÃO ser válidas. Se não forem válidas vai retornar erro no groups.xml e saberemos qnd chegou ao fim, se forem válidas fodeu.
     
    Outra questão a ser levantada é se a configuração é de fato na source ou se não é algo no próprio module do OTC, nesse caso eles podem ter feito como eles bem entenderem e ao invés de ser uma numeração isolada podem ser conjuntos de combinações, ex:
    "Se o customflags for maior ou igual a 2199023255551 então libera o module". Nesse caso foderia muito pois este numero é referente à todas as opções assinaladas (é uma suposição).. oque tornaria isso inviável.
     
    Mas use isso como um ponto de partida.. teste todos isoladamente, se der certo GG izi WP. Se não der, vamos atrás da source, se mesmo assim não der vamos atrás da configuração do OTC. Eu não dou a mínima se eu tiver que reformular toda a forma de se fazerem OTC's só pra que isso funcione e espero que você esteja na mesma pegada que eu.
    PS: Ao final disso quero uma lista completa de flags e customflags e oque fazem cada uma.
     
     
    EDIT: Você já experimentou ir atrás de como o /cliport funciona? De alguma forma o client passa a posição que foi clicada pra source, daria pra direcionar isso pra Lua através de alguma função e formar um callback onClick com a posição que o mouse clicou como parâmetro.
     
     
    EDIT2:
     
     
    Aqui tem a lista completa do customflags pra versão 8.7, deve ajudar em algo. Os que nao tem número são apenas multiplos de 2 do anterior.
  7. Upvote
    Beeki recebeu reputação de PostadorHunter em Sobre VPS   
    A cada 30~40 MB de mapa é necessário 1,5 GB de memória ram, você precisa de uma máquina dedicada ou VPS a cima de 8 Giga.
  8. Upvote
    Beeki deu reputação a Benny em Preciso de um designer   
    É, exatamente isso.
    Tô sem meu computador, tô em um notebook aqui.. Mas a situação tá foda, terceira vez que o photoshop fecha comigo tentando editar o layout e nada. Tinha me comprometido em editar um layout pra um amigo, coisa simples. Mas acabou dando esse rolo do computador e eu não quero perder a amizade;deixar o cara na mão.
    Já fiz tanto por vocês aqui da seção, tenham compaixão rsrs
     
    Qualquer coisa, responde aí. É trampo simples, tenho as PSDs do layout.
    Posso pagar em trabalhos futuros como designer, se necessário.
    Abraços
     
  9. Upvote
    Beeki recebeu reputação de Administrador em [Arquivado]Quem é você, player? Ganhe 05 REP + Conquista!   
    Feito, Beeki. :smile_positivo:
  10. Upvote
    Beeki deu reputação a Benny em Herói   
    Ficar o dia todo na seçao de suporte eh motivo pra receber o cargo sim, lobo
    Voce ajudou bastante, sim. E merece rsrs
    E realmente, existem pessoas que merecem bem mais que a pip, mas uma coisa de cada vez rsrs
     
  11. Upvote
    Beeki recebeu reputação de Danihcv em Herói   
    @@Danihcv, prazer. Fábio. :lolz:
  12. Upvote
    Beeki deu reputação a Administrador em Herói   
    @@Beeki, devido a proximidade do valor de um dos quesitos, o tempo de registro e o reconhecimento que temos a respeito do seu nome na comunidade, não acredito que você vá perder o cargo.
     
     
    @, avaliaremos a seriedade, o intervalo e o número de alertas que você possui, tendo em vista os outros fatores que lhe concedem o título.
  13. Upvote
    Beeki recebeu reputação de LeoTK em Compilando e Rodando OTserv em Linux Ubuntu 12.04   
    Neste tutorial vamos ensinar como compilar seu servidor em Linux Ubuntu 12.04 LTS! Bom, o necessário é estar conectado ao terminal da nossa máquina usando o PuTTy.
     


    Primeiro de tudo (vamos atualizar).
    apt-get update Criando o diretório da instalação.
    mkdir /home/otserv cd /home/otserv Baixando e compilando o Open Tibia Server (The Forgotten Server (TFS) revisão 3884 – 8.60).
    wget http://base.serversoft.com.br/otserv/theforgottenserver.zip apt-get install unzip; unzip theforgottenserver Instalando o MySQL server.
    apt-get install libmysql++-dev libmysqlclient-dev mysql-common mysql-server Nota: Fique esperto pois ele vai te perguntar pra definir algumas senhas, lembre-se sempre de anotá-las para não esquecer.
     
    Criando o banco de dados.
    mysql -uroot -p digiteSuaSenhaAqui CREATE DATABASE theforgottenserver; Instalando as Libs e dependências pra OTserv.
    apt-get install libgmp3-dev liblua5.1-0 liblua5.1-0-dev liblua50 liblua50-dev liblualib50 liblualib50-dev lua50 lua5.1 libsqlite0-dev libsqlite3-dev sqlite3 libxml2-dev libxml++2.6-dev cpp gcc g++ make automake autoconf pkg-config subversion liblua5.1-sql-mysql-dev liblua5.1-sql-sqlite3-dev zlib1g-dev zlib1g libcrypto++-dev libcurl4-openssl-dev libasio-dev libboost-dev Instalando as Libs Lua (Rode cada comando separado).
    apt-get install libncurses5-dev cd /usr/local/src wget http://www.lua.org/ftp/lua-5.1.4.tar.gz tar -xzvf lua* cd lua* make linux make install Preparando para Compilar.
    cd /home/otserv/theforgottenserver/source/ chmod 777 autogen.sh ./autogen.sh ./configure --enable-mysql --enable-root-permission chmod 777 build.sh ./build.sh Copiando o arquivo compilado para a pasta do game:
    cp /home/otserv/theforgottenserver/ Importando o banco de dados de testes:
    cd /home/otserv/theforgottenserver/schemas mysql -uroot -ptheforgottenserver mysql.sql Configurando seu config.lua:
    apt-get install nano; nano /home/otserv/config.lua Agora você deve navegar pelo arquivo e modificar algumas configurações para ele funcionar. Verifique o IP, database e tudo mais. Para sair do programa “Nano” digite CTRL + X.
     
    Para rodar o game:
    cd /home/otserv/; chmod 777 ./theforgottenserver & Créditos:
     
    Serversoft & Beeki XTibia

    Ps: o link de download de uma das versões do theforgottenserver é a rev 3884 de protocolo 8.60, ou seja... você pode usar a revisão que quiser!
  14. Upvote
    Beeki deu reputação a Administrador em Novo xTibia 2016! | Mudanças Equipe, Visual e mais!   
    Estamos analisando o que foi falado aqui e mudaremos com certeza, obrigado pelo apoio.
  15. Upvote
    Beeki deu reputação a Benny em Novo xTibia 2016! | Mudanças Equipe, Visual e mais!   
    Eu não, lembro muito bem que me trocaram pelo "designer que ia movimentar a seção"
    Não vi um tópico dele. Enfim, gj xtibia.
     
  16. Upvote
    Beeki deu reputação a MuriloCavalcantti em Por quê o Tibia (CipSoft) nunca cresceu?   
    Sinceramente, é um crime você falar que o Tibia não cresceu!
  17. Upvote
    Beeki deu reputação a Piabeta Kun em Por quê o Tibia (CipSoft) nunca cresceu?   
    falar que o tibia nunca evoluiu ou cresceu eh tipo ignorar toda a histori tibiana, o tibia cresceu tnto que eu nao conseguiria jogar por exemplo um ot 8.6- pq falta coisas!
  18. Upvote
    Beeki recebeu reputação de Piabeta Kun em Por quê o Tibia (CipSoft) nunca cresceu?   
    Seja sensato, e olhe ao redor de tudo! O Tibia está em constante crescimento/desenvolvimento, e você ainda não percebeu isso. A CipSoft vem remodelando o jogo muito a tempo, updates mensais, contendo novas áreas de caça, novas cidades, itens e monstros.
    A verdade é que, a CipSoft tem feito essas mudanças para se adequar a necessidade dos novos players, tentando inserir dentro do Tibia aquele ar de dificuldade "mediana" que é a principal modalidade de jogo que atrai novos jogadores, te faço a pergunta, Qual jogo hoje em dia tem a dificuldade similar a do Tibia no ano de 2000~2005?
    Em relação aos botters, sinceramente? Não fede e nem cheira, usa quem quer, se fode quem quer.

    Ah, e eu nem li sua crítica já sabendo que era uma merda só de vir de você.




  19. Upvote
    Beeki deu reputação a LuckinhaSan em [Anti-DDoS] Apache   
    Hoje ensinarei vocês a diminuirem os ataques DDoS ao usar servidores via Apache.


    Configuração -
    1. Baixe esse arquivo dosevasive.rar

    2. Coloque os arquivos (mod_dosevasive22.dll-mod_dosevasive22.c), na pasta:
    \xampp\apache\modules\ Não se esqueça de fechar o seu Apache antes de fazer isso!
     
     
    3. Abra o seu httpd.conf com o bloco de notas
    \xampp\apache\Conf\httpd.conf 4. Procure por:
    LoadModule autoindex_color_module modules/mod_autoindex_color.so E adicione:
    LoadModule dosevasive22_module modules/mod_dosevasive22.dll Em baixo de:
    <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> Adicione:
    <IfModule dosevasive22_module> DOSHashTableSize 3097 DOSPageCount 20 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 300 </IfModule> Créditos - ragal



    Informações:
    DOSHashTableSize 1024 = define o tamanho da tabela DOSPageCount 10 = definir o número de solicitações para a mesma página DOSSiteCount 150 = Definir o número de pedidos de qualquer objeto pelo mesmo cliente, se o intervalo tenha sido ultrapassado o endereço IP do cliente é adicionado à lista de bloqueio. DOSBlockingPeriod 600 = 10 minutos de bloqueio, se alguém tentar atacar. Recomendo usar assim:
    <IfModule dosevasive22_module> DOSHashTableSize 3097 DOSPageCount 20 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 300 </IfModule>
  20. Upvote
    Beeki recebeu reputação de Administrador em Precisamos de você!   
    Trazer de volta a X-Developers.
     
     
     
  21. Upvote
    Beeki recebeu reputação de Lumus em Rise of Devovorga   
    Essa sessão tem um vinculo com a page de artigos e novos tíquetes do Tibia.com, não há necessidade de reformular toda a noticia, sendo que, todavia a mesma estará vinculada ao website Tibia.com
     
    -
     
    em poucas palavras, é só pra quem tem preguiça de entrar no tibia.com e traduzi-la.
     
    flw.
  22. Upvote
    Beeki recebeu reputação de Piabeta Kun em Rise of Devovorga   
    Essa sessão tem um vinculo com a page de artigos e novos tíquetes do Tibia.com, não há necessidade de reformular toda a noticia, sendo que, todavia a mesma estará vinculada ao website Tibia.com
     
    -
     
    em poucas palavras, é só pra quem tem preguiça de entrar no tibia.com e traduzi-la.
     
    flw.
  23. Upvote
    Beeki recebeu reputação de Administrador em Rise of Devovorga   
    Essa sessão tem um vinculo com a page de artigos e novos tíquetes do Tibia.com, não há necessidade de reformular toda a noticia, sendo que, todavia a mesma estará vinculada ao website Tibia.com
     
    -
     
    em poucas palavras, é só pra quem tem preguiça de entrar no tibia.com e traduzi-la.
     
    flw.
  24. Upvote
    Beeki deu reputação a Natanael Beckman em ShopGuild TFS 1.0   
    Shop Guild TFS 1.0
    Bom, vamos ao sistema:

    Em talkactions.xml, adicione a tag abaixo:
    <talkaction words="!guildpoints" separator=" " script="guildpoints.lua"/> Na pasta talkactions/scripts faça um .lua com o nome guildpoints e dentro dele adicione os coder abaixo: local config = { executeInterval = 24, minimumLevel = 80, membersNeeded = 10, minimumDifferentIps = 6, pointAmount = 9 } local function getValidAccounts(guild) local resultId = db.storeQuery('SELECT a.`id` FROM `accounts` a, `guild_membership` m, `players` p WHERE m.`guild_id` = ' ..guild:getId() .. ' AND p.`id` = m.`player_id` AND p.`level` > ' .. config.minimumLevel .. ' and a.`id` = p.`account_id` AND a.`guild_points_stats` = 0 GROUP BY a.`id`;') if resultId == false then return {} end local accounts = {} repeat table.insert(accounts, result.getDataInt(resultId, 'id')) until not result.next(resultId) result.free(resultId) return accounts end function onSay(cid, words, param) local player = Player(cid) local guild = player:getGuild() if not guild or player:getGuildLevel() ~= GUILDLEVEL_LEADER then player:getPosition():sendMagicEffect(CONST_ME_POFF) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Only guild leader can request points.') return false end local resultId = db.storeQuery('SELECT `last_execute_points` FROM `guilds` WHERE id = ' .. guild:getId()) if resultId == false then player:getPosition():sendMagicEffect(CONST_ME_POFF) player:sendCancelMessage('Error while running database query.') return false end local lastExecution = result.getDataInt(resultId, 'last_execute_points') result.free(resultId) if lastExecution >= os.time() then player:getPosition():sendMagicEffect(CONST_ME_POFF) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'The command can only be run once every ' ..config.executeInterval .. ' hours.') return false end local members = guild:getMembersOnline() for i = #members, 1, -1 do if members[i]:getLevel() < config.minimumLevel then table.remove(members, i) end end if #members < config.membersNeeded then player:getPosition():sendMagicEffect(CONST_ME_POFF) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Only ' .. #members .. ' guild members online, you need ' ..config.membersNeeded .. ' guild members with level ' .. config.minimumLevel .. ' or higher.') return false end local ipDictionary, ipCount = {}, 0 for i = 1, #members do local ip = members[i]:getIp() if not ipDictionary[ip] then ipDictionary[ip] = true ipCount = ipCount + 1 end end if ipCount < config.minimumDifferentIps then player:getPosition():sendMagicEffect(CONST_ME_POFF) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Only ' .. ipCount .. ' members are valid, you need ' ..config.minimumDifferentIps .. ' players with different ip addresses.') return false end local validAccounts = getValidAccounts(guild) db.query('UPDATE `guilds` SET `last_execute_points` = ' .. (os.time() + config.executeInterval * 3600) .. ' WHERE `guilds`.`id` = ' .. guild:getId() .. ';') player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, #validAccounts .. ' guild members received points.') if #validAccounts > 0 then db.query('UPDATE `accounts` SET `guild_points` = `guild_points` + ' .. config.pointAmount .. ', `guild_points_stats` = ' .. os.time() .. ' WHERE `id` IN (' .. table.concat(validAccounts, ',') .. ');') for i = 1, #members do local member = members[i] if isInArray(validAccounts, member:getAccountId()) then member:sendTextMessage(MESSAGE_INFO_DESCR, 'You received ' .. config.pointAmount .. ' guild points.') end end end return false end No coder acima bem no inicio tem as linhas seguintes para configurar:

    executeInterval = 24, ( Intervalo para execução do comando, ae está de 24 em 24hrs)
    membersNeeded = 10, (Quantos players é preciso está online para poder executar o comando.)
    minimumDifferentIps = 6, (Quantos IPS diferentes são necessários para executar o comando no exemplo ae tem 6.)
    minimumLevel = 80, (Aqui adicione o level minimo, é necessário que todos os player da guild tenha o level pedido para o lider executar o comando.)
    pointAmount = 9, (Aqui é a quantidade de pontos para adicionar em cada player da guild.)
     
    Em data/globalevents/scripts crie um arquivo chamado shopguild.lua e adicione o code a seguir:
    -- ### CONFIG ### -- message send to player by script "type" (types you can check in "global.lua") SHOP_MSG_TYPE = 18 -- time (in seconds) between connections to SQL database by shop script SQL_interval = 30 -- ### END OF CONFIG ### function onThink(interval, lastExecution) local result_plr = db.storeQuery("SELECT * FROM z_ots_guildcomunication") if(result_plr ~= false) then repeat local id = tonumber(result.getDataInt(result_plr, "id")) local action = tostring(result.getDataString(result_plr, "action")) local delete = tonumber(result.getDataInt(result_plr, "delete_it")) local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name"))) if(cid) then local itemtogive_id = tonumber(result.getDataInt(result_plr, "param1")) local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2")) local container_id = tonumber(result.getDataInt(result_plr, "param3")) local container_count = tonumber(result.getDataInt(result_plr, "param4")) local add_item_type = tostring(result.getDataString(result_plr, "param5")) local add_item_name = tostring(result.getDataString(result_plr, "param6")) local received_item = 0 local full_weight = 0 if(add_item_type == 'container') then container_weight = getItemWeight(container_id, 1) if(isItemRune(itemtogive_id)) then items_weight = container_count * getItemWeight(itemtogive_id, 1) else items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count) end full_weight = items_weight + container_weight else full_weight = getItemWeight(itemtogive_id, itemtogive_count) if(isItemRune(itemtogive_id)) then full_weight = getItemWeight(itemtogive_id, 1) else full_weight = getItemWeight(itemtogive_id, itemtogive_count) end end local free_cap = getPlayerFreeCap(cid) if(full_weight <= free_cap) then if(add_item_type == 'container') then local new_container = doCreateItemEx(container_id, 1) local iter = 0 while(iter ~= container_count) do doAddContainerItem(new_container, itemtogive_id, itemtogive_count) iter = iter + 1 end received_item = doPlayerAddItemEx(cid, new_container) else local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) received_item = doPlayerAddItemEx(cid, new_item) end if(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.') db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '..SQL_interval ..' seconds to get it.') end end until not result.next(result_plr) result.free(result_plr) end return true end Em data/globalevents/globalevents.xml adicione a seguinte tag:
    <globalevent name="shopguild" interval="300" event="script" value="shopguild.lua"/> Certo, a parte do servidor é esta, ta feita, vamos adicionar a database o coder a seguir:
    ALTER TABLE `accounts` ADD `guild_points` INTEGER(11) NOT NULL DEFAULT 0; ALTER TABLE `accounts` ADD `guild_points_stats` INT NOT NULL DEFAULT '0'; ALTER TABLE `guilds` ADD `last_execute_points` INT NOT NULL DEFAULT '0'; CREATE TABLE `z_shopguild_offer` ( `id` int(11) NOT NULL auto_increment, `points` int(11) NOT NULL default '0', `itemid1` int(11) NOT NULL default '0', `count1` int(11) NOT NULL default '0', `itemid2` int(11) NOT NULL default '0', `count2` int(11) NOT NULL default '0', `offer_type` varchar(255) default NULL, `offer_description` text NOT NULL, `offer_name` varchar(255) NOT NULL, `pid` INT(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`)) CREATE TABLE `z_shopguild_history_item` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `offer_id` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`)) CREATE TABLE `z_shopguild_history_pacc` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `pacc_days` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`)) CREATE TABLE IF NOT EXISTS `z_ots_guildcomunication` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `param1` varchar(255) NOT NULL, `param2` varchar(255) NOT NULL, `param3` varchar(255) NOT NULL, `param4` varchar(255) NOT NULL, `param5` varchar(255) NOT NULL, `param6` varchar(255) NOT NULL, `param7` varchar(255) NOT NULL, `delete_it` int(2) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13107; Olha estamos quase finalizando tudo, só precisamos terminar a parte de web.
    O meu GuildShop eu copiei meu shopsystem.php e fiz umas modificações, simples você pode fazer o mesmo é menos trabalhoso.
    Copie o shopsystem.php renomeie para shopguild.php, após abra-o e modifique como manda a seguir:

    shop_system para shopguild_system
    premium_points para guild_points
    premium points para guild points
    z_shop_offer para z_shopguild_offer
    shopsystem para shopguild
    z_shop_history_pacc para z_shopguild_history_pacc
    z_shop_history_item para z_shopguild_history_item
    z_ots_comunication para z_ots_guildcomunication
     
    Ou utilize este já pronto:
    shopguild.php
     
    O shopguildadmin.php está no link abaixo, basta fazer o mesmo procedimento:
    shopguildadmin.php
     
    Em index.php add:
    case "shopguild"; $topic = "Shop Guild"; $subtopic = "shopguild"; include("shopguild.php"); break; case "shopguildadmin"; $topic = "ShopGuild Admin"; $subtopic = "shopguildadmin"; include("shopguildadmin.php"); break; Vá em config.php adicione:
    $config['site']['shopguild_system'] = 1; $config['site']['access_adminguild_panel'] = 9; Vá em layouts.php adicione abaixo de buypoints:
    <a href='?subtopic=shopguild'> <div id='submenu_shopguild' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)'onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_shopguild' class='ActiveSubmenuItemIcon'style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Shop Guild</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Em layouts.php add depois do shopadmin:
    if($group_id_of_acc_logged >= $config['site']['access_adminguild_panel']) echo "<a href='?subtopic=shopadmin'> <div id='submenu_shopguildadmin' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)'onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_shopguildadmin' class='ActiveSubmenuItemIcon'style='background-image:url(".$layout_name."/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>! ShopGuild Admin !</font></div> <div class='RightChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> </div> </a>"; Em shopsystem.php procure por:
    elseif($action == 'show_history') { if(!$logged) { $main_content .= 'Please login first.'; } else{ $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($items_history_received)) { foreach($items_history_received as $item_received) { if($account_logged->getId() == $item_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $items_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$item_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $item_received['from_account']) $items_received_text .= '<i>Your account</i>'; else $items_received_text .= $item_received['from_nick']; $items_received_text .= '</td><td>'.$item_received['offer_id'].'</td><td>'.$item_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $item_received['trans_start']).'</td>'; if($item_received['trans_real'] > 0) $items_received_text .= '<td>'.date("j F Y, H:i:s",$item_received['trans_real']).'</td>'; else $items_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>'; $items_received_text .= '</tr>'; } } $paccs_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_pacc').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($paccs_history_received)) { foreach($paccs_history_received as $pacc_received) { if($account_logged->getId() == $pacc_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $paccs_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$pacc_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $pacc_received['from_account']) $paccs_received_text .= '<i>Your account</i>'; else $paccs_received_text .= $pacc_received['from_nick']; $paccs_received_text .= '</td><td>'.$pacc_received['pacc_days'].' days</td><td>'.$pacc_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $pacc_received['trans_real']).'</td></tr>'; } } $main_content .= '<center><h1>Transactions History</h1></center>'; if(!empty($items_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="6"><font color="white" size="4"><b> Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Cost</b></td><td><b>Bought on page</b></td><td><b>Received on '.$config['server']['serverName'].'</b></td></tr>'.$items_received_text.'</table><br />'; if(!empty($paccs_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="5"><font color="white" size="4"><b> Pacc Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Duration</b></td><td><b>Cost</b></td><td><b>Added:</b></td></tr>'.$paccs_received_text.'</table><br />'; if(empty($paccs_received_text) && empty($items_received_text)) $main_content .= 'You did not buy/receive any items or PACC.'; } } Troque por:
    elseif($action == 'show_history') { if(!$logged) { $main_content .= 'Please login first.'; } else{ $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($items_history_received)) { foreach($items_history_received as $item_received) { if($account_logged->getId() == $item_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $items_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$item_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $item_received['from_account']) $items_received_text .= '<i>Your account</i>'; else $items_received_text .= $item_received['from_nick']; $items_received_text .= '</td><td>'.$item_received['offer_id'].'</td><td>'.$item_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $item_received['trans_start']).'</td>'; if($item_received['trans_real'] > 0) $items_received_text .= '<td>'.date("j F Y, H:i:s",$item_received['trans_real']).'</td>'; else $items_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>'; $items_received_text .= '</tr>'; } } $itemsguild_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shopguild_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($itemsguild_history_received)) { foreach($itemsguild_history_received as $itemguild_received) { if($account_logged->getId() == $itemguild_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $itemsguild_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$itemguild_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $itemguild_received['from_account']) $itemsguild_received_text .= '<i>Your account</i>'; else $itemsguild_received_text .= $itemguild_received['from_nick']; $itemsguild_received_text .= '</td><td>'.$itemguild_received['offer_id'].'</td><td>'.$itemguild_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $itemguild_received['trans_start']).'</td>'; if($itemguild_received['trans_real'] > 0) $itemsguild_received_text .= '<td>'.date("j F Y, H:i:s",$itemguild_received['trans_real']).'</td>'; else $itemsguild_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>'; $itemsguild_received_text .= '</tr>'; } } $paccs_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_pacc').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($paccs_history_received)) { foreach($paccs_history_received as $pacc_received) { if($account_logged->getId() == $pacc_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $paccs_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$pacc_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $pacc_received['from_account']) $paccs_received_text .= '<i>Your account</i>'; else $paccs_received_text .= $pacc_received['from_nick']; $paccs_received_text .= '</td><td>'.$pacc_received['pacc_days'].' days</td><td>'.$pacc_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $pacc_received['trans_real']).'</td></tr>'; } } $paccsguild_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shopguild_history_pacc').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($paccsguild_history_received)) { foreach($paccsguild_history_received as $paccguild_received) { if($account_logged->getId() == $paccguild_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $paccsguild_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$paccguild_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $paccguild_received['from_account']) $paccsguild_received_text .= '<i>Your account</i>'; else $paccsguild_received_text .= $paccguild_received['from_nick']; $paccsguild_received_text .= '</td><td>'.$paccguild_received['pacc_days'].' days</td><td>'.$paccguild_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $paccguild_received['trans_real']).'</td></tr>'; } } $main_content .= '<center><h1>Transactions History</h1></center>'; if(!empty($items_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="6"><font color="white" size="4"><b> ShopServer Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Cost</b></td><td><b>Bought on page</b></td><td><b>Received on '.$config['server']['serverName'].'</b></td></tr>'.$items_received_text.'</table><br />'; if(!empty($itemsguild_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="6"><font color="white" size="4"><b> ShopGuild Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Cost</b></td><td><b>Bought on page</b></td><td><b>Received on '.$config['server']['serverName'].'</b></td></tr>'.$itemsguild_received_text.'</table><br />'; if(!empty($paccs_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="5"><font color="white" size="4"><b> ShopServer VIP Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Duration</b></td><td><b>Cost</b></td><td><b>Added:</b></td></tr>'.$paccs_received_text.'</table><br />'; if(!empty($paccsguild_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="5"><font color="white" size="4"><b> ShopGuild VIP Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Duration</b></td><td><b>Cost</b></td><td><b>Added:</b></td></tr>'.$paccsguild_received_text.'</table><br />'; if(empty($paccs_received_text) && empty($items_received_text)) $main_content .= 'You did not buy/receive any items or PACC.'; if(empty($paccsguild_received_text) && empty($itemsguild_received_text)) $main_content .= 'You did not buy/receive any items or PACC.'; } } Finalmente terminamos!
    Bom todo esse processo é feito só para facilitar tudo pra você e o player e pra diferenciar o Shop System do Shop Guild, porque um sustenta as despesas do server e o outro atrai player, porque pra ter player é preciso ter player.

    Galera acredito que não esteja faltando nada, espero que gostem e tudo que eu poder fazer para nossas melhoras estarei postando, me desculpem meu erros de português mais o que importa aqui é o script está correto, abraços!


    Créditos:
    Natanael Beckman
     
    Não proíbo ninguém de copia o tópico só peço que onde você adicione inclua os créditos mencionados.
  25. Upvote
    Beeki recebeu reputação de Administrador em Novo sistema de Cargos e Novas pips!   
    eu gostei, vai enchendo de matinho de acordo com a evolução, rsrs
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...