-
Total de itens
554 -
Registro em
-
Última visita
-
Dias Ganhos
7
Tudo que Natanael Beckman postou
-
Opa galera venho trazer mais uma novidade e essa é pra quem gosta de qualidade e não quer perder tempo baixando e testando vários sites... Estou postando o GesiorACC mais atual que temos, o mais moderno, o mais confiável digo isso porque utilizo, lembrando é confiável do jeito que está, se você começar encher de coisas pode deixar de ser confiável. Bom abaixo vou postar algumas modificações feitas por mim e no final do devidos créditos! Compatível com: TFS 0.4 OTX Pasta account: ajax_accountname.php ajax_charactername.php ajax_email.php Foi modificado está seguinte linha em todos esses arquivos listados acima. $conn = mysql_pconnect('localhost', 'root', 'senha') or die(); Porque a modificação? No linux é necessário está leitura pra haver a real conexão com o banco de dados pra poder verificar accountname, email na criação de uma conta e assim mostrar se está ok ou não. Não esqueça de alterar esses 3 arquivos citados acima na sua instalação! O direcionamento do arquivo config.ini pra pasta correta do OT faz parte do funcionamento desse sistema! createaccount.php Fiz uma modificação pra não criar character, porque tem um bug que o cara pode criar um char com espaço no final ai fica ruim porque ninguém da goto nele, não da exiva, por tanto removi pra não ter essa dor de cabeça... Adicionei os links de downloads modifiquei as imagens: accountmanagement.php Nesse arquivo adicionei o sistema de vip_time, que vai reconhecer se a conta está vip, quantos dias faltam pra acabar, algumas modifcações de imagens... forum.php No forum existia um erro em que não podia cria topico e nem post então foi corrigido isso. install.php Adicionei algumas querys de instalação das tabelas e colunas: vip_time guild_points z_shopguild_history_item z_shopguild_history_pacc z_shopguild_offer z_shop_history_pacc shopadmin.php shopguildadmin.php Adicionei os tradicionais shopadmin com algumas opções a mais, como vipdays, itemvip... shopsystem.php shopguild.php Adicionei os dois SHOP's bem modernos e modificados com todas as opções... lostaccount.php Ajustei estava com um problema pra envio, ta funcionando, testado e aprovado! config.php Foram adicionados algumas regras, tipo newsticket porque tem um BUG que se não tiver com essa regra o cara consegue cria uma newsticket redirecionando seu site pro dele, normalmente o Gesior 2012 está vindo sem essa regras simples. E outras regras adiconadas! $config['site']['access_tickers'] = 3; $config['site']['shopguild_system'] = true; $config['site']['players_group_id_block'] = 3; $config['site']['limitDeath'] = 5; $towns_list[0] = array(1 => 'Venore', 2 => 'Thais', 3 => 'Kazordoon', 4 => 'Carlin'); $config['site']['newchar_towns'][0] = array(1, 2, 3, 4); classes/account.php Registro das funções vip_time e guild_points. public function setVipTime($value){$this->data['vip_time'] = $value;} public function getVipTime(){return $this->data['vip_time'];} public function setGuildPoints($value){$this->data['guild_points'] = $value;} public function getGuildPoints(){return $this->data['guild_points'];} layout.php Ajustado a imagem TibiaLogoArtworkTop, o direcionamento pra pagina latestnews foram adicionados outras abas no site... system/load.compat Nesse arquivos adicionei varias regras pra criar o nome do char, assim evitando criar com nome de monstros, GM, Tutor, ADM dentre outras variadas regras... character.php Adicionei o sistem vip_time mostrando o status se o char está vip ou não... adicionei fraglist também... Aqui fica uma imagem do site, lembrando que na aba Account fica o Admin Panel, onde você adiciona Newsticker, Featured Article, facebook.... SITE DOWNLOAD SITE DOWNLOAD XAMPP 1.7.3 DATABASE LIMPA MYSQL Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada)
-
Compilando OTserver Linux Ubuntu 13.10 64bit
-
Compilando OTserver Linux Ubuntu 13.10 64bits
tópico respondeu ao Natanael Beckman de Natanael Beckman em Tutoriais de Infraestrutura
Você não está utilizando sistema operacional 64bits. Você está utilizando a REV que indiquei? -
Compilando OTserver Linux Ubuntu 13.10 64bits
tópico respondeu ao Natanael Beckman de Natanael Beckman em Tutoriais de Infraestrutura
Ontem mesmo fiz toda essa instalação no meu server... Deu certo! Qual parte da compilação? Você leu o tutorial ou passou a vista? Ou não entendi sua pergunta... -
Compilando OTserver Linux Ubuntu 13.10 64bits
um tópico no fórum postou Natanael Beckman Tutoriais de Infraestrutura
Opa galera... Eu mais uma vez com esse meu português maravilhoso hahahahaha.... Trazendo um mais um grande tutorial, Compilando e montando um server em Linux Ubuntu 13.10 64bits, nesse tutorial irá conter algumas partes do tutorial passado devido muita gente que buscar esses tutorias e não terem nenhum conhecimento com Linux, então vamos explicar TUDO. Eu migrei pro linux ubuntu 13.10 devido o avanço dos otserver e o linux 10.04 não fornece estabilidade pra esse avanço! Porque um OTServer em linux? Linux é tudo 100% melhor que Windows. Proteção, o Linux tem uma rígida proteção contra acessos indesejados, acessos maliciosos. O Linux tem um mega capacidade de proteção DDoS isso e se você tiver as configurações corretas. No Windows você só pode utilizar mapa com o tamanho máximo 100mb no Linux é ilimitado. No Linux o OTServer tem um desempenho maior com agilidade muito boa. Deixando de bla, bla, vamos ao que interessa. Downloads necessarios: http://ip.da.maquina/phpmyadmin acesse seu phpmyadmin usando user: root e a senha é a que você botou na instalação do mysql, crie o seu banco de dados e vamos já upa a database.... Via ftp na pasta var/www/ renomeie usando o f2 o nome da pasta phpmyadmin para outro nome, qualquer um, eu particularmente sempre boto outros nomes, não deixo phpmyadmin, exemplo, 65fs98a97ds56aq. Upando a database, usando o shell vamos para a pasta onde se encontra o seu banco de dados, que enviamos via ftp, no caso, a pasta home: cd /home psenha Ae você bota a senha do seu mysql se você não sabe entre em contato com quem você alugou seu dedicado. mysql -u root -psenha No comando abaixo você bota o nome da sua database que criamos agora pouco na web. USE seubancodedados Aqui você bota o nome do arquivo.sql que enviamos por ftp: source arquivo.sql Só esperar finalizar após concluir ok, database upada pode conferir pelo seu navegador de internet como todas as tabelas estarão la do jeito que você configurou no windows. Galera ai o resto vocês já sabem sobre o config.lua,dados da database, senha, ip, rates, feito isso vamos pro site. Via ftp acesse sua pasta htdocs selecione todos os arquivos dentro dela e mande para a pasta var/www, quando concluir apenas altere o a seguinte arquivo, config.ini, em server path, altere, no caso ali o nome da pasta do meu OT é otserver: install = "no" server_path = "/home/otserver/" signatures = "0" Se tiver feito até agora tudo certo, o seu site vai estar funcionando perfeitamente. Go go go! Você já testou o server em sua casa, configurou a pasta data utilizando a mesma REV, pronto enviar a pasta via ftp substituindo a pasta que existe la. Feito isso vamos para o shell acesse a pasta do ot: cd /home/otserver ./theforgottenserver Se aparecer algo bla bla (Y or N?) digita Y e da enter. Ai vai abri normalmente aparece carregando o server se der algum erro vai dizer pra quem sabe ler vai ser moleza! Abriu o server entrou com seu god testou tudo ok, feche o server, ctrl+c, agora vamos abrir o server oficial pra não cair e poder fechar o shell sem cair o ot. Vamos nós, no shell volte para o root usando: Até voltar ao root: cd .. Vamos adicionar um usuario: adduser tfs No caso ai o nome do usuário que estou adicionando é tfs, pode ser otserver, seu nome, você escolhe, quando você executa o comando vai pedi uma senha bote mesma da sua maquina da enter vai pedi seu nome pais e talz bota nada não só da enter ate finalizar o processo feito isso, OK. Agora baixe esse arquivo em seu computador extraia ele e envia por ftp para a pasta home: TFS.RAR No shell execute: cd /home chmod 777 -R tfs Da mesma forma baixe: TFS.SH Por ftp envie esse arquivo pra dentro da pasta do OTServer e execute o comando: cd /home/otserver chmod 777 -R tfs.sh Feito né? Ok agora vamos abrir o OT pra ele não fechar e quando ele cair por algum erro ele volta sozinho. Em root utilizando o shell execute os comandos: Isso indica que você esta utilizando o usuario tfs: su tfs cd /home/otserver ./theforgottenserver.sh& Ai ele começa a carrega normal e pronto THE END. Caso queria fechar o server: su tfs cd /home/otserver ps x Vai aparece uma lista de coisas abertas e cada uma com o numero do processo: Pra fechar o server vai ter que mata dois processo, o bash e o tfs, ambos com interrogação do lado veja que tem dois bash killa somente o com a interrogação(?). Sempre primeiro o bash: kill -9 21748 Depois o server: kill -9 21750 Pronto. Evite crash em seu ot por flood:(sempre que reniciar a maquina ou o server cair tem que executa os comandos) iptables -N conn-flood iptables -I INPUT 1 -p tcp --syn -j conn-flood iptables -A conn-flood -m limit --limit 7/s --limit-burst 20 -j RETURN iptables -A conn-flood -j DROP iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j ACCEPT iptables -A INPUT -p icmp -j DROP Creditos total, 100%, só meu, Natanael Beckman! -
Gesior Acc Modificado
tópico respondeu ao Natanael Beckman de Natanael Beckman em Websites & Layouts
Olá, boa tarde, cara o link está off, poderia dar um help? Agradecido. Download Corrigido! -
Yes Beeki, um skill bem maior em processo de treino seria uma numeração assim, 54265, mais ou menos. Count = experiencia adquirida de um skill x ao próximo. Database resetada: Database em uso:
-
Pode fazer manual também: UPDATE `players` SET `level`=8 UPDATE `players` SET `maglevel`=0 UPDATE `players` SET `posx`=32360 UPDATE `players` SET `posy`=31782 UPDATE `players` SET `posz`=7 UPDATE `players` SET `cap`=850 UPDATE `players` SET `skull`=0 UPDATE `players` SET `skulltime`=0 UPDATE `players` SET `stamina`=151200000 UPDATE `players` SET `health`=185 UPDATE `players` SET `healthmax`=185 UPDATE `players` SET `experience`=4200 UPDATE `players` SET `mana`=35 UPDATE `players` SET `manamax`=35 UPDATE `players` SET `soul`=100 UPDATE `players` SET `manaspent`=0 UPDATE `players` SET `guildnick`=0 UPDATE `players` SET `marriage`=0 UPDATE `players` SET `marrystatus`=0 UPDATE `players` SET `comment`=0 UPDATE `players` SET `lookbody`=0 UPDATE `players` SET `lookfeet`=88 UPDATE `players` SET `lookhead`=88 UPDATE `players` SET `looklegs`=0 UPDATE `players` SET `looktype`=134 UPDATE `players` SET `lookaddons`=0 -=Skills=- UPDATE `player_skills` SET `value`=10 UPDATE `player_skills` SET `count`=0 UPDATE `accounts` SET `vip_time`=0 UPDATE `accounts` SET `key`=0
-
Pra inicio ta bom, eu aconselho usar Linux Ubuntu 10.04... Minha opinião!
-
Testa ae, layout.php eita bagunça kkkkkk
-
Em layouts.php faz assim altera disso: if($group_id_of_acc_logged >= $config['site']['access_admin_panel']) echo "<a href='?subtopic=shopadmin'> <div id='submenu_shopadmin' 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_shopadmin' class='ActiveSubmenuItemIcon' style='background-image:url(".$layout_name."/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>! Shop Admin !</font></div> <div class='RightChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> </div> </a>"; pra isso: if($group_id_of_acc_logged >= $config['site']['access_admin_panel']) echo "<a href='?subtopic=shopadmin'> <div id='submenu_shopadmin' 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_shopadmin' class='ActiveSubmenuItemIcon' style='background-image:url(".$layout_name."/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>! Shop Admin !</font></div> <div class='RightChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> </div> </a> <a href='?subtopic=shopguildadmin'> <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>"; Ver se resolve!
-
sistema [Blood Castle] Evento Otimizado![12/04/14]
tópico respondeu ao Killua de Natanael Beckman em Mods, funções e outros
Conheço muito bem esse evento, jogo Mu-Lande, muito bom cara, parabéns mega script! -
action Envio.php Confirmando a Doação direto pro seu e-mail.
tópico respondeu ao Natanael Beckman de Natanael Beckman em Tutoriais de Websites
Obrigado galera! Ficou show mkbrabsolute.- 9 respostas
-
- envio.php
- confirmando doação
- (e 6 mais)
-
action Envio.php Confirmando a Doação direto pro seu e-mail.
um tópico no fórum postou Natanael Beckman Tutoriais de Websites
Opa galera do XTibia, eu mais uma vez trazendo um bom e útil tutorial. Esse tutorial é pra quem tem a necessidade de uma pagina que confirme uma doação feita e automaticamente essa confirmação seja direcionada ao e-mail do administrador! Bom galera é um php simples, não tenho muito conhecimento com php, o que estou postando agora foi o resultado de algumas pesquisas e pouquinho de dor de cabeça mais saiu do jeito que eu queria. OBS: A imagem anexada chega no seu e-mail como um arquivo sem formato mais pode abrir com o Paint ou o Visualizador de imagem que abre normal! Lembrando que é obrigatório e necessário que toda parte de apache, php e send-mail estejam funcionando corretamente no seu servidor, como eu utilizo Linux apenas instalei apache2, php5 e sendmail. Comandos que eu utilizei no Linux: apt-get install apache2 apt-get install php5 apt-get install sendmail killall -9 apache2 /etc/init.d/apache2 start Outra coisa, dificilmente esse sistema funcione no seu computador, localhost, é necessário um configuração adequada, eu utilizo um servidor dedicado não tive dor de cabeça em relação a isso. Vamos ao que interessa... Crie dois arquivos .php chamados, confirmar.php e enviar.php, adicione os dois na pasta htdocs ou quem usa linux pasta www, quem utiliza o Novo Gesior ACC joga o confirmar.php na pasta pages e o enviar.php na pagina htdocs ou www. Dentro do arquivo confirmar.php você adiciona os seguintes code: CONFIRMAR.PHP SEM ANEXO: CONFIRMAR.PHP COM ANEXO: Dentro do arquivo enviar.php você adiciona os seguintes code: ENVIAR.PHP SEM ANEXO: ENVIAR.PHP COM ANEXO: O que deve ser alterado: Enviar.php Linhas, 3 e 60 03. $email_to = "natanbeckman@live.com"; // Seu e-mail 60. echo "<script> window.location.href = 'http://localhost'; </script>" ; // Site do seu server Confirmar.php Caso você utilize a opção Login: então altere na linha. 3 03. <label for="character">Character Name:</label> Em index.php adicione: case "confirmar"; $subtopic = "confirmar"; $topic = "Confirmar"; include("confirmar.php"); break; Em layout.php adicione abaixo de: <a href='?subtopic=shopsystem&action=show_history'> <div id='submenu_show_history' 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_show_history' class='ActiveSubmenuItemIcon'style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>History</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Adicione: <a href='?subtopic=confirmar'> <div id='submenu_confirmar' 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_confirmar' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Confirmar</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Dessa forma somente que tiver com ACC logada vai ter acesso a pagina. E pronto galera terminamos, espero que todos façam atentamente pra sair tudo perfeito, espero ter ajudado. Qualquer pessoa pode fazer copia deste tutorial desde que mencione os devidos créditos. Vejam algumas imagens como ficou o meu: SEM ANEXO: COM ANEXO: COMO CHEGA NO E-MAIL: Creditos: Natanael Beckman- 9 respostas
-
- envio.php
- confirmando doação
- (e 6 mais)
-
Compilando e Rodando OTserv em Linux Ubuntu 12.04
tópico respondeu ao Beeki de Natanael Beckman em Tutoriais de Infraestrutura
Um bom tutorial pra quem já tem conhecimento com Linux, porém pra quem não entende nada de Linux isso não serve como um tutorial que os ensine o que eles querem aprender. Entre em mais detalhes do A ao Z, ai será um grande tutorial. Mais por outro lado, parabéns pela organização e a grande iniciativa! REP+- 24 respostas
-
- compilar otserv
- linux
- (e 6 mais)
-
Herói plz!
-
sistema ShopGuild Points 100% add em player offline.
tópico respondeu ao Natanael Beckman de Natanael Beckman em Mods, funções e outros
Bom, se for da mesma acc, vai ganhar somente uma vez um char, e outra o sistema oferecer ao adm varias regras que impossibilitam as fraudes. No meu server eu dava apenas 9 pontos por acc e no meu shop de interessante so tinha a a vip que custava 5 pts e a soft 3pts e 1kk 1pt era o que todos precisavam, soft é besteira tem no server, dinheiro tbm a unica coisa que importava era a vip e a a vip so podia comprar pra propia acc que estava com os pontos então o cara desistia de qualquer fraude. -
sistema ShopGuild Points 100% add em player offline.
tópico respondeu ao Natanael Beckman de Natanael Beckman em Mods, funções e outros
#Spik3ex Qual é o erro mesmo? Você só falou o que já tem explicando no tópico. O membro só ganha umas vez na account está tudo correto acredito que você tenha se confundido. Abraços! -
sistema ShopGuild Points 100% add em player offline.
tópico respondeu ao Natanael Beckman de Natanael Beckman em Mods, funções e outros
Se por 1hr pode ser tbm. -
sistema ShopGuild Points 100% add em player offline.
tópico respondeu ao Natanael Beckman de Natanael Beckman em Mods, funções e outros
Esse comando é pra cada guild, guild x usou hj agora só amanha e assim todas as outras. -
sistema ShopGuild Points 100% add em player offline.
tópico respondeu ao Natanael Beckman de Natanael Beckman em Mods, funções e outros
Essa tag ja tem no tutorial inclusive ela é a primeira a ser adicionada. Mais de qualquer forma fica a dica ae, obrigado! -
Antecipadamente você está de parabéns, estou ansioso e vou fazer um teste de inject se passar no teste está perfeito demais!
-
sistema ShopGuild Points 100% add em player offline.
tópico respondeu ao Natanael Beckman de Natanael Beckman em Mods, funções e outros
Não sei se meu shop vai te ajudar, devido outras alterações feitas por mim, mais testa ae: shopguild.php -
[Arquivado]Como você se protege de DDOS (nukers) ?
tópico respondeu ao Administrador de Natanael Beckman em Noticias - Arquivo
Como alguns citaram abaixo, eu acredito que o primeiro passo para uma boa proteção é a estrutura da maquina, não adianta você ter um bom firewall se você não tem agilidade o suficiente pro firewall trabalhar de acordo com a velocidade do ataque. Eu utilizei algumas proteções adquiridas em alguns fóruns americanos que por alguns meses me trouxeram paz, mais como dito eles sempre procuram uma forma maior de conseguir derrubar, meu servidor chegou a suporta ataques de 7,500,000 PPS, eu utilizava 2 firewall, regras de iptables com psad e o mais importante um detector de brute force e o bloqueador que utilizava o comando netstat -nb que detecta o ip verdadeiro, porque toda ataque vem com ips falsos e esse comando mostra o ip verdadeiro e assim era banido por minutos ou hrs todos eles trabalhavam em um conjunto de sucesso que só precisava de memoria e processador. Mais deixei de mão, porque maquina de boa configuração em uma empresa de grande porte é caro e como o lucro de otserver n existe eu deixei pra la. Mais o que mais me deixava triste era ver o próprio player destruir a sua diversão, ae deixei de bater cabeça com algo que so me traz mais e mais dor de cabeça. -
sistema ShopGuild Points 100% add em player offline.
um tópico no fórum postou Natanael Beckman Mods, funções e outros
Obrigatoriamente leia tudo! Opa galera mais uma vez eu trazendo o melhor para todos. Hoje vou postar o sistema de Guild de Points que eu utilizo em meu OTserver, acredito que dificilmente será encontrado por ae um tão completo e sem bugs igual o que será postado logo abaixo, é um sistema completo que é utilizado pelo líder da guild executando um comando que, se tiver de acordo com as regras que seram feitas por você, todos os membros da guild iram receber os pontos uma unica vez, lembrando que quando os pontos são adicionados a um player ele não receberá entrando em outra guild e não receberá criando outro personagem na conta, resumindo ele só receberá uma unica vez na conta e com um player só. E um dos detalhes que me causava dor de cabeça era que quando um líder executava o comando, quem estava online recebia os pontos, mais quem estava offline não recebia, isso acontecia normalmente porque tem guilds que contém 50, 70, 100 players, portanto nem sempre todos estavam online. O comando só pode ser executado uma vez por dia cada guild, para não gerar processamentos desnecessários e assim um mal funcionamento do servidor. Cada administrador pode configurar seu sistema da forma que quiser, por ser um sistema muito simples, você pode bota que todos os players estejam no minimo level x, que a guild só possa executar o comando quando estiver quantidade x de players online, isso é bom porque traz um certa dificuldade para fraudes de pontos, e o sistema só vira bagunça dependendo do que você vai oferecer no seu shop guild, eu particularmente só utilizei esse comando porque muitas guilds grandes pediam pontos, eles me cobravam uma quantidade x de pontos e eu cobrava uma quantidade x de player então pra automatizar o processo e não ter dor de cabeça foi feito todo esse sistema. Se você analisar bem vai ver que tudo isso só gera mais crescimento ao seu servidor. Bom, vamos ao sistema: Em talkactions.xml, adicione a tag abaixo: <talkaction words="!guildpoints" event="script" value="guildpoints.lua"/> Na pasta talkactions/scripts faça um .lua com o nome guildpoints e dentro dele adicione os coder abaixo: GuildPointsConfigs = { ExecuteIntervalHours = 24, NeedPlayersOnline = 10, NeedDiferentIps = 6, MinLevel = 80, AddPointsForAcc = 9 } function getGuildPlayersValidAccIDS(GuildID, MinLevel) local RanksIDS = {} local AccsID = {} local ValidAccsID = {} Query1 = db.getResult("SELECT `id` FROM `guild_ranks` WHERE guild_id = '".. GuildID .."'") if(Query1:getID() == -1) then return ValidAccsID end for i = 1, Query1:getRows() do table.insert(RanksIDS, Query1:getDataInt("id")) Query1:next() end Query2 = db.getResult("SELECT `account_id` FROM `players` WHERE `rank_id` IN (".. table.concat(RanksIDS, ', ') ..") AND `level` >= ".. MinLevel .."") if(Query2:getID() == -1) then return ValidAccsID end for i = 1, Query2:getRows() do local AccID = Query2:getDataInt("account_id") if #AccsID > 0 then for k = 1, #AccsID do if AccID == AccsID[k] then AddAccList = false break end AddAccList = true end if AddAccList then table.insert(AccsID, AccID) end else table.insert(AccsID, AccID) end Query2:next() end Query3 = db.getResult("SELECT `id` FROM `accounts` WHERE `guild_points_stats` = 0 AND `id` IN (".. table.concat(AccsID, ', ') ..")") if(Query3:getID() == -1) then return ValidAccsID end for i = 1, Query3:getRows() do local AccID = Query3:getDataInt("id") if #ValidAccsID > 0 then for k = 1, #ValidAccsID do if AccID == ValidAccsID[k] then AddAccList = false break end AddAccList = true end if AddAccList then table.insert(ValidAccsID, AccID) end else table.insert(ValidAccsID, AccID) end Query3:next() end return ValidAccsID end function onSay(cid, words, param, channel) if(getPlayerGuildLevel(cid) == 3) then local GuildID = getPlayerGuildId(cid) Query = db.getResult("SELECT `last_execute_points` FROM `guilds` WHERE id = '".. GuildID .."'") if(Query:getID() == -1) then return true end if Query:getDataInt("last_execute_points") < os.time() then local GuildMembers = {} local GuildMembersOnline = {} local PlayersOnline = getPlayersOnline() for i, pid in ipairs(PlayersOnline) do if getPlayerGuildId(pid) == GuildID then if getPlayerLevel(pid) >= GuildPointsConfigs.MinLevel then table.insert(GuildMembersOnline, pid) end end end if #GuildMembersOnline >= GuildPointsConfigs.NeedPlayersOnline then local IPS = {} for i, pid in ipairs(GuildMembersOnline) do local PlayerIP = getPlayerIp(pid) if #IPS > 0 then for k = 1, #IPS do if PlayerIP == IPS[k] then AddIPList = false break end AddIPList = true end if AddIPList then table.insert(IPS, PlayerIP) end else table.insert(IPS, PlayerIP) end end if #IPS >= GuildPointsConfigs.NeedDiferentIps then local ValidAccounts = getGuildPlayersValidAccIDS(GuildID, GuildPointsConfigs.MinLevel) db.executeQuery("UPDATE `guilds` SET `last_execute_points` = ".. os.time() +(GuildPointsConfigs.ExecuteIntervalHours * 3600) .." WHERE `guilds`.`id` = ".. GuildID ..";") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "".. #ValidAccounts .." Players received points") if #ValidAccounts > 0 then db.executeQuery("UPDATE `accounts` SET `guild_points` = `guild_points` + " ..GuildPointsConfigs.AddPointsForAcc .. ", `guild_points_stats` = ".. os.time() .." WHERE `id` IN (" .. table.concat(ValidAccounts, ',') ..");") for i, pid in ipairs(GuildMembersOnline) do local PlayerMSGAccID = getPlayerAccountId(pid) for k = 1, #ValidAccounts do if PlayerMSGAccID == ValidAccounts[k] then doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "You received "..GuildPointsConfigs.AddPointsForAcc .." guild points.") break end end end end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only ".. #IPS .." players are valid, you need ".. GuildPointsConfigs.NeedDiferentIps .." players with different ips.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Has only ".. #GuildMembersOnline .." players online you need ".. GuildPointsConfigs.NeedPlayersOnline .." players online at least from level ".. GuildPointsConfigs.MinLevel ..".") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "The command can only be run once every "..GuildPointsConfigs.ExecuteIntervalHours .." hours.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only guild leader can request points.") end return true end No coder acima bem no inicio tem as linhas seguintes para configurar: ExecuteIntervalHours = 24, ( Intervalo para execução do comando, ae está de 24 em 24hrs) NeedPlayersOnline = 10, (Quantos players é preciso está online para poder executar o comando.) NeedDiferentIps = 6, (Quantos IPS diferentes são necessários para executar o comando no exemplo ae tem 6.) MinLevel = 80, (Aqui adicione o level minimo, é necessário que todos os player da guild tenha o level pedido para o lider executar o comando.) AddPointsForAcc = 9, (Aqui é a quantidade de pontos para adicionar em cada player da guild.) 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`)) 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 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>"; 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 LukeSkywalker (Raphael Luiz) .lua 100% Não proíbo ninguém de copia o tópico só peço que onde você adicione inclua os créditos mencionados.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.