Script Pawn

segunda-feira, 18 de maio de 2020

0 Paradise City Roleplay


Paradise City Roleplay - Home | Facebook

Paradise City Roleplay


Paradise City Roleplay é um GameMode para o GTA San Andreas Multiplayer. Foi desenvolvido do zero por mim. Foi lançado na internet pela primeira vez dia 08/08/2016 no Fórum Samp.

Sobre o Gamemode

Gamemode organizado e optimizado. Tem alguns bugs e sistemas incompletos, não me lembro quais são pois já não mexo nisto há muito tempo. O gamemode está pronto a jogar, é só preciso configurar as casas, bizzes, factions, etc. O gamemode utiliza DOF2 para guardar os dados e utiliza SHA256 para encriptar as passwords. Notem que o melhor é usar um Salt diferente para cada conta, o que não acontece aqui (facilmente mudado).
Como não tinha nada para fazer, há uns tempos fiz alterações no código, alterei algumas coisas, refiz alguns sistemas, mas entretanto perdi o changelog, ou seja, já não me lembro que melhorias fiz nem que bugs corrigi. Mas que ficou melhor ficou :)

Sistemas

  • Casas dinâmicas
  • Lojas dinâmicas
  • Edifícios dinâmicos
  • Factions dinâmicas
  • Comandos de admin extensos
  • 5 níveis de admin (Game Master, Administrador, Head Admin, Responsável e Scripter)
  • Sistema de fabricar drogas e armas
  • Sistema de pesca
  • Sistema de caravanas
  • Sistema de barcos habitáveis
  • Todos os carros guardam os danos visuais
  • Sistema de doenças
  • Sistema de toxicodependência
  • Sistema de economia
  • Sistema de seguros
  • Sistema de VIP automático por socket
  • Sistema de análise da performance de algumas funções chave
  • Sistema de ajuda à criação de rotas para os jobs
E tem mais, não me lembro de todos. Dinâmico quer dizer que 99% das características dão para alterar in-game e não é preciso andar a mexer no código.

Outros

Aconselho a atualizar todas as includes e plugins que o servidor usa para uma melhor estabilidade. Aconselho também que quando ligarem pela primeira vez o servidor, desliguem e voltem a ligar.
O AntiCheat é bom, mas quando configurado corretamente. Por default ele vai kickar muita gente inocente.
Para utilizarem o comando /dox é necessário hospedar um ficheiro PHP que pode ser encontrado aqui.
Aconselho vivamente a diminuirem o MAX_CARROS para um valor baixo da primeira vez que entrarem no servidor, caso contrário irão crashar sempre que entrem no servidor. Depois, podem ir para uma parte do mapa não usada e usar o comando /resetcarros. Logo de seguida podem aumentar o MAX_CARROS para o valor desejado, ir ao mesmo sítio e fazer o /resetcarros para aparecerem todos os carros.
Aconselho também a utilizar o PAWN em debug mode, para qualquer crash ser mais facilmente lido pelo CrashDetect.
Sistema de pastas dentro dos scriptfiles (scriptfiles/PCRP/(...)):
Pastas

Créditos

Eu - criação do gamemode
Incognito - Streamer Plugin
BlueG - Socket Plugin
Dan - TimerFix Plugin
Emmet_ - SSCANF Plugin
Zeex - CrashDetect Plugin
Samp Team - SAMP
OstGot - Nex-AC Include
YourShadow - Pawn.CMD
Lós - LosGS Include
Gammix - GMenus Include & Dini2
Y-Less - Foreach Include
Westie - STRLib Include
Snowie - Mapping incluso no gamemode
klap - Sistema de tunning e outras funções úteis

Licença

Podem utilizar este código da maneira que quiserem, desde que deixem os créditos a todas as pessoas envolvidas neste projeto.


0 Advanced Roleplay [MySQL] 2012

MTASA - MODS ADVANCED ROLEPLAY - MTA Brasil

(O advanced não faliu!)

Infelizmente tive que dar release nesse gamemode devido a um servidor estar usando ele sem a minha permissão, além de plagiar o advanced, ele ainda retira os créditos do gamemode que serviu de base que foi o Quartz Roleplay, eu tive uma trabalheira enorme nesse gamemode, desde a tradução, remoção de coisas inúteis, desbugar, adicionar anims, comandos de admins, criar as tabelas ( O QUARTZ ROLEPLAY NÃO DISPONIBILIZA AS TABELAS PARA DOWNLOAD ), criação de tudo do 0, isso deu um trabalho desgraçado, após isso o servidor em questão (Vincere Roleplay) obteve acesso a esse gamemode, editou umas coisas, removeu todos os créditos do gamemode e falaram que foi eles que fizeram, para mim esse servidor é um servidor sem ética moral, o coder não sabe programar e só sabe editar e falar que foi ele quem fez, servidores assim não vão para frente.
Porque estou dando release? o motivo foi acima e outro, como algumas pessoas aprenderam a programar usando o gamemode antigo que eu dei release, agora irão aprender a programar em MySQL, estudem bastante esse gamemode, se quiserem abrir um servidor não tem problemas, só mantenham os créditos, não sejem anti éticos, não sejem NOOBS! de remover o crédito, vocês não vão ser PIORES se manterem os créditos, e sim MELHORES! espero que vocês gostem do gamemode, ele foi feito baseando-se na otimização, tentei otimizar ele ao maximo, removendo timers, dentre outras coisas.

Nesse gamemode possui sistemas de anims, sistema de casa dinâmicas criadas ingame, sistema de empresas dinâmicas criadas ingame, sistemas de facções dinâmicas criadas ingame, sistema de concessionarias dinâmicas aonde você pode ter um número ilimitado de carros ( o sistema estava precario e totalmente bugado ), sistema de anotações, portamalas, inventário, ele está 100% integrado a um painel de controle (UCP) para ser criado fora do jogo, sistema de RÁDIO em empresas e casas feito do 0 por mim, perfect, sistema de xm rádio em veículos com sincronização, itens a venda, drogas, prisão, etc. anti weapon hack, atualizado para a versão R7 do SQL, vip por dias usando timestamp, mapas por Hayran Tavares


Download: http://www.4shared.com/rar/mbBDF78C/arpr7_ricardo.html?
Database: disponibilizada em BREVE.


O gamemode está fazendo o servidor cair, porém não é nada tão critíco que vocês não possam desbugar fácilmente, não é difícíl remover esse bug, demorei uns 3 dias para removelo, porém não irei dar ele sem esse bug, será mais um desáfio para vocês aprenderem a programar mais ainda! quebrem a cabeça e aprendam mais e mais! o gamemode contém 20 mil linhas, com diversos sistemas.


Espero que eu consiga ajudar muitos novatos, e sei que não terá mais servidores como o Vincere Roleplay na internet, que sujam a imagem de todas as pessoas que programam honestamente e que realmente fazem a diferença!
Se eles podem ter o gamemode então que todos tenham ele, pelo menos todos os NOOBS do forum samp serão mais ÉTICOS que eles!

(SERVIDOR BLACKLIST EM QUESTÃO: 174.138.169.91:7780)

Obrigado: todos os players do advanced, Vanessa (eva) <3, Felipe, Barata, dentre outras pessoas

0 ArtPlayRPG

ArtPlayRPG


• Introdução
Bom, venho através deste tópico informar que estarei trabalhando em um servidor de SA:MP RPG open source para a comunidade.

O projeto contará com o desenvolvimento de um UCP(User Control Panel) que será construído usando a linguagem GoLang como back-end e para o front-end será usado Vue.js + Vuex + Nuxt.js.

O servidor será desenvolvido totalmente em módulos onde todos serão independentes,
sendo divididos da seguinte forma:


• Contribuindo
Caso queria contribuir para o projeto é só me contatar.
Estarei montando a diretriz de contribuição que contém informações sobre a estrutura do projeto.

O projeto também será desenvolvido via live coding... as transmissões serão feitas pela twitch.
• Links:
Github #Projeto
Twitch #Transmissão

0 Roleplay Based

A primeira coisa a se dizer que este game mode foi iniciado em 7 de Setembro 2017 , porém fiquei fazendo ele pouco tempo , agora limpando meu dropbox para dar espaço aos trabalhos da faculdade encontrei ele , vou postar porque achei que é algo legal.

PHP Code:
Brasil RolePlay Beta
Inicio 
do projeto 7 de Setembro 2017

O que ja foi feito 
?
Sistema de registro com seleção de sexoSistema de emprego (Motorista entregador)
Sistema de entregador com rota random e facil de acrescentar rotaSistema de motorista com rota random e facil de acrescentar rotaSistema de infoadmin [POSTED]
4 Niveis de AdminSistema de ORGSistema de infoorg [POSTED]
Carros personalizados GM e BOPESistema de Celular com operadora EX 8094-8745 [/sms /ligar][resetar numero compra de creditos]
Sistema de radio [POSTED]
Sistema de empresaTodas HQ (Menos Reporter)
Sistema de suspeito com codigo penal 
Não tenho GTA na maquina para fazer fotos , mas tem algumas perdidas no forum vou buscar e acrescentar junto .

Vale a resalva para o sistema de suspeito.
PHP Code:
static const Infoart[14][350] = {
{
"{FFFFFF}                     --- Principais código penal ---"},
{
"{FFFFFF}Art. 33 - Tranfico de intorpecentes .(Resumo)"},
{
"{FFFFFF}Art. 121 - Crime contra vida .(Resumo)"},
{
"{FFFFFF}Art. 129 - Ofender a integridade corporal ou a saúde de outrem ."},
{
"{FFFFFF}Art. 138 - Caluniar alguém, imputando-lhe falsamente fato definido como crime ."},
{
"{FFFFFF}Art. 140 - Injuriar alguém, ofendendo-lhe a dignidade ou o decoro ."},
{
"{FFFFFF}Art. 148 - Privar alguém de sua liberdade, mediante seqüestro ou cárcere privado ."},
{
"{FFFFFF}Art. 150 - Entrar ou permanecer clandestina, em casa alheia ou em suas dependências ."},
{
"{FFFFFF}Art. 155 - Subtrair, para si ou para outrem, coisa alheia ."},
{
"{FFFFFF}Art. 157 - Subtrair, para si ou para outrem, coisa alheia, mediante grave ameaça ou violência a pessoa ."},
{
"{FFFFFF}Art. 163 - Destruir, inutilizar ou deteriorar coisa alheia ."},
{
"{FFFFFF}Art. 171 - Obter, para si ou para outrem, vantagem ilícita, em prejuízo alheio, ou qualquer outro meio fraudulento ."},
{
"{FFFFFF}Art. 331 - Desacatar, ou seja, faltar com o respeito para com um funcionário público no exercício da função ."},
{
"{FFFFFF}                     --- Principais código penal ---"}
};
static const 
Tempoart[14][350] = {
{
"{FFFFFF}                     --- Principais código penal ---"},
{
"{FFFFFF}Art. 33 - 10 Minutos de reclusão ."},
{
"{FFFFFF}Art. 121 - 30 Minutos de reclusão ."},
{
"{FFFFFF}Art. 129 - 05 Minutos de reclusão ."},
{
"{FFFFFF}Art. 138 - 05 Minutos de reclusão ."},
{
"{FFFFFF}Art. 140 - 05 Minutos de reclusão ."},
{
"{FFFFFF}Art. 148 - 20 Minutos de reclusão ."},
{
"{FFFFFF}Art. 150 - 10 Minutos de reclusão ."},
{
"{FFFFFF}Art. 155 - 15 Minutos de reclusão ."},
{
"{FFFFFF}Art. 157 - 20 Minutos de reclusão ."},
{
"{FFFFFF}Art. 163 - 10 Minutos de reclusão ."},
{
"{FFFFFF}Art. 171 - 05 Minutos de reclusão ."},
{
"{FFFFFF}Art. 331 - 10 Minutos de reclusão ."},
{
"{FFFFFF}                     --- Principais código penal ---"}
}; 
Diferente dos demais você pode tomar mais de um codigo penal .
A ideia na epoca era fazer cada policia ficar em cima de determinado codigo penal ...

Sistema de celular igual ao real , foi pego um local para compra de celular , creditos , reset de numero entre outras coisas.

Alguns sistemas que foram feitos estão postados aqui no forum ..

Download
Gamemode - https://pastebin.com/ZWsyk1kb
Comandos - https://pastebin.com/g8MFjc04
Ban - https://pastebin.com/m20W8phP
Empresas - https://pastebin.com/Y5pHyxU1
Text - https://pastebin.com/vZ88i3kR
Mapas - https://pastebin.com/B0nH6sZU









Vlw

0 Paradise City RPG





  • O projeto ainda existe, apenas não mais no SA:MP. Você pode acompanhar através do Discord ou do site.
  • Projeto não recomendado para iniciantes. Não pense que vai ser simplesmente baixar, tirar os créditos, compilar e já iniciar. É um pouco mais complicado do que isto.
  • O servidor é modular, isto facilita MUITO na hora da aprendizagem, então se você deseja aprender sobre desenvolvimento modular para servidores, aqui é um ótimo lugar.
  • TUDO que está nos repositórios, foi desenvolvido do 0 (com exceções de frameworks para web, como Laravel, Bootstrap e outros).
  • Os desenvolvedores darão suporte até o momento que o servidor ligar, caso você não consiga ligar o servidor, sinta-se livre de nos procurar.
  • Não há pretensão de atualizarmos o gamemode, portanto, saiba que você estará utilizando um gamemode sem suporte.
  • Este projeto está comigo a exatamente 5 anos, então, por favor, lembre-se de todo trabalho de quem contribuiu com o projeto ao longo de todo esse tempo.
  • Só estamos publicando por que este projeto vai ter mais utilidade para vocês do que para nós, no momento.
  • Todas as informações referente a este projeto estão neste tópico, inclusive imagens do mesmo.


1. Features
  • Web
    • Site completo
    • UCP com editar conta, ranking, bugtracker, blueprints, denúncias, tickets, perfil e etc...
    • Frontend do UCP com mais de 43 páginas prontas para backend.
    • Site desenvolvido com framework MVC (Laravel)
    • Dentro da pasta layout/samp, existe um site que estava desenvolvendo, porém, não finalizado.
  • Server
    • Servidor extremamente fácil de ser lido e modularizado
    • Casas, empresas, tudo pronto e dinâmico
    • Missões como no San Andreas Offline
    • 13 empregos
    • 2 facções
    • Sistema de gangues, polícia e etc...
    • 5 rankings administrativos
    • Servidor extremamente optimizado
    • Loteria, concessionária, pets, apartamentos e etc....
    • Academia, banco, interações entre jogadores, prisão, tutorial, clima dinâmico
    • Eventos de motocross, paintball, corrida e etc...



2. Instalação
  1. Altere os dados da DB no arquivo modules/data/connection.pwn
  2. Compile o gamemode (Github ignora o arquivo .amx)
  3. Importe o arquivo database/pc-rpg.sql no seu banco de dados
  4. Inicie o servidor
  5. Para se tornar developer (rank 5), entre no servidor, logue na RCON e digite /setrank [seuid] 5



3. Créditos
Desenvolvedores: @Lós, @Larceny, @n0minal e @w1tch
Agradecimentos: Todos os jogadores que nos ajudaram a testar e desenvolver o servidor, passaram horas reportando bugs pelo UCP e interagindo com a comunidade em especial aos BTs que realmente trabalharam no projeto. Não vou citar um a um por que muito provável que eu vá esquecer alguém.


4. Download

segunda-feira, 23 de dezembro de 2013

0 Otimização MySQL

Otimização MySQL




Requisitos para entender esse tutorial
  • Conhecimento básico~médio em MySQL


1 - Introdução
Basicamente nesse tutorial vamos aprender algumas dicas úteis para otimizar o uso do MySQL, algumas das dicas são bem conhecidas, porem são pouco usadas pela maioria da galera do forum SA-MP (alias, poucas pessoas usam MySQL em seus gamemodes).
Vale ressaltar que não ira ser apresentado nenhum código PAWN nesse tutorial.


2 - Índices
Os índices do MySQL são bem fáceis de se criar e podem fazer suas consultas rodarem em uma velocidade extremamente mais rápida.
Sem o uso de índices o MySQL faz um table scan onde verifica todos os registros contidos na tabela (exceto que você use LIMIT) e aceita ou nega os registros que correspondem com a condição da consulta.
Já com o uso de índices o MySQL ira subdividir os registros em blocos com um numero menor de registros, ao efetuar a consulta o MySQL ira perguntar ao índice em que bloco podem estar os registros que correspondem a condição da consulta e assim ele ira apenas verificar os registros daquele bloco e ignorar os outros.

2.1 - Criando índices
A sintaxe para criar índices é muito simples:
Code:
CREATE INDEX nome_do_indice on nome_da_tabela(nome_do_campo)
É importante ressaltar que os índices não devem ser criados para qualquer campo, você deve usar apenas campos que você constantemente usa como condição em suas consultas!

Para exemplificar, irei usar uma tabela com 159.191 registros (preenchidos com números randômicos), 5 campos e apenas um índice primário. Como a estrutura que você vê na imagem abaixo:


Executei a seguinte consulta:
Code:
SELECT SQL_NO_CACHE * FROM `testeb` WHERE `num2`=2000
E o resultado obtido foi:


Agora criarei um índice usando a sintaxe:
Code:
CREATE INDEX numero on testeb(num2)
Repetirei a mesma consulta feita anteriormente e o resultado obtido foi:


Podemos ver claramente que com o índice minha consulta foi executada 2x mais rápida e caso seu banco de dados tenha um numero maior de registros a diferença pode aumentar incrivelmente. Vale também dizer que no nosso exemplo foram usados números randômicos nos registros, então não existia um padrão entre os registros e por isso se seus registros tiverem alguma semelhança ou lógica, a diferença na velocidade também ira aumentar.

Podemos ver no phpMyAdmin que o índice criado reduziu o numero de registros a serem verificados de 159.191 para 19.898, vejam na imagem abaixo (Índice "numero", vejam na quantidade):


2.2 - Criando índices usando numero de caracteres indicado
Também podemos criar índices indicando o numero de caracteres a ser usado pelo índice, assim podemos por exemplo, indicar para o índice usar como base os 4 primeiros dígitos de um campo. Caso fosse o numero de um telefone por exemplo, os 4 primeiros dígitos (o que seria o prefixo do telefone) provavelmente iriam se repetir constantemente e assim o índice acharia um padrão facilitando a divisão em blocos.
A sintaxe a ser usada no nosso exemplo seria:
Code:
CREATE INDEX numero on testeb(num3(4))
4 no caso seria o indicador para o índice usar apenas os 4 primeiros dígitos do campo.

Em caso de um servidor de SA-MP por exemplo, poderíamos usar a primeira letra de um nome como base, pois a primeira letra de um nick com certeza se repete e assim se dividiria em blocos com nomes que se começassem com a mesma letra.

2.3 - Índices PRIMARY e UNIQUE
Esses índices apesar de não dividirem os registros em blocos, também podem ajudar melhorar a velocidade de sua consulta.
No caso do índice UNIQUE, a consulta ira saber que ela só precisa encontrar 1 registro com o valor indicado (afinal se o valor é o único, só pode existir 1) e assim evitando de vasculhar por toda a tabela caso a consulta ache o registro desejado.
O índice PRIMARY é bem semelhante ao UNIQUE, geralmente é usado juntamente com AUTO_INCREMENT para criar um campo ID. Assim como UNIQUE só pode existir 1 registro igual a ele, então ao encontrar o registro desejado, ele encerra a consulta pois sabe que só existe aquele registro para a condição indicada.

2.3 - AVISOS
Como eu já citei anteriormente, apenas crie índices para campos que você usa constantemente como condição (WHERE) em consultas. Afinal você não precisa de índices para campos que você não consulta por exemplo.

E outra coisa muito importante é: NÃO CRIE MUITOS ÍNDICES!
Um exemplo pratico para exemplificar o porque de não se criar muitos índices é: Você tem uma agenda telefônica, nela tem um índice no inicio que você usa para achar o numero desejado mais rápido, porém não faz sentido que o índice por exemplo seja maior que a lista telefônica em si (Se não seria mais fácil ignorar o índice e ver folha a folha atrás do numero que você quer achar).
O indicado é que se crie de 2 a 3 índices, isso deve ser o suficiente para otimizar suas consultas sem ter nenhuma dor de cabeça. Se você acha que precisa de mais índices, talvez o mais indicado seja particionar sua tabela e é isso que veremos na próxima parte desse tutorial.


3 - Partições
3.1 - O que é particionar uma tabela?
Particionar uma tabela é basicamente subdividir a mesma em varias partes para melhor distribuir os registros contidos nela. Existem vários tipos de particionamento que serão mostrados nos tópicos a seguir.

3.2 - Quando particionar?
  • Muitos índices criados
  • Numero de registros muito grande

3.3 - Diferença nas queries de consulta
As queries de consultas não iram mudar devido ao particionamento, é o MySQL que ira fazer todo o trabalho de saber em qual partição está determinado registro e ir lá encontra-lo.

3.4 - Como particionar
3.4.1 - Chaves de particionamento
Chaves de particionamento são os campos que irão ser usados como base para particionar a tabela. Dos registros desse campo serão tirados os valores que iram servir para indicar o padrão usado para particionar a tabela.
AVISO: Os valores da chave de particionamento PRECISAM ser valores INT.

3.4.2 - Por RANGE
Criando uma partição usando RANGE, você pode indicar de que forma irão se dividir as partições indicando por exemplo o RANGE de ids para cada partição.
Um exemplo de sintaxe para criação de uma tabela particionada usando RANGE seria:
Code:
CREATE TABLE testando (
    nome VARCHAR(30),
    id INT NOT NULL
)
PARTITION BY RANGE (id) (
    PARTITION p0 VALUES LESS THAN (20),
    PARTITION p1 VALUES LESS THAN (40),
    PARTITION p2 VALUES LESS THAN (50),
    PARTITION p3 VALUES LESS THAN (70),
    PARTITION p4 VALUES LESS THAN MAXVALUE

);
Vamos entender parte a parte agora:
Code:
PARTITION BY RANGE (id) (
Aqui é indicado que o valores do campo ID serão usados como chave de particionamento


Code:
PARTITION p0 VALUES LESS THAN (20)
Aqui criamos a primeira partição, sendo p0 o nome da partição e "LESS THAN (20)" indicando que nessa partição apenas são aceitos valores menores que 20.


Code:
PARTITION p4 VALUES LESS THAN MAXVALUE
Essa é a ultima partição que criamos e usamos MAXVALUE pois aqui ficara todos os registros que não corresponderem as condições das outras partições criadas.

3.4.3 - Por LIST
Criando uma partição usando LIST, você pode indicar de que forma irão se dividir as partições indicando listas com os valores que serão aceitados na partição.
Um exemplo de sintaxe para criação de uma tabela particionada usando LIST seria:
Code:
CREATE TABLE testando (
    nome VARCHAR(30),
    id INT
)
PARTITION BY LIST(store_id) (
    PARTITION p0 VALUES IN (1,2,9),
    PARTITION p1 VALUES IN (3,10,5),
    PARTITION p2 VALUES IN (4,11,6),
    PARTITION p3 VALUES IN (99,60,30)
);
Não muda muito em relação ao particionamento anterior, mas agora usamos "LIST" ao em vez de "RANGE" e "VALUES IN" ao em vez de "LESS THAN". E é claro indicamos a lista de valores que serão aceitos na partição.

3.4.4 - Por HASH
No particionamento por HASH, você simplesmente indica o campo que será usado como chave de particionamento e o numero de partições. O resto do trabalho o MySQL ira fazer para você (consequentemente você não ira ter controle do local ou forma que os registros serão distribuídos).
Code:
CREATE TABLE testando (
    nome VARCHAR(30),
    datateste DATE NOT NULL DEFAULT '1970-01-01',
    id INT
)
PARTITION BY HASH( MONTH(datateste) )
PARTITIONS 12;
Agora explicando:
Code:
PARTITION BY HASH( MONTH(datateste) )
Nesse caso usamos os mêses contidos nos valores do campo datateste como chave de particionamento.


Code:
PARTITIONS 12;
Aqui indicamos o numero de partições a serem criadas, nesse caso vai ficar 1 partição para cada mês do ano (12 meses portanto 12 partições).

3.4.5 - Por KEY
O particionamento por KEY é parecido com o HASH, porem aqui temos uma exceção para o aviso dado anteriormente de que só se pode usar campos com valores INT como chaves de partição. Nesse caso você pode sim usar campos com VARCHAR por exemplo como chave de partição.
Veja o exemplo de sintaxe:
Code:
CREATE TABLE testando (
    testestr CHAR(32) PRIMARY KEY
)
PARTITION BY KEY(testestr)
PARTITIONS 7;

3.5 - Considerações
Dada todas essas informações, cabe a você decidir se deve particionar sua tabela e qual é o melhor tipo de particionamento caso deseje particionar.
Vale também ressaltar que nos exemplos de sintaxe para criação de particionamento eu usei CREATE TABLE, porem você também pode usar ALTER TABLE sem nenhum problema para particionar uma tabela que já existe e com registros.


4 - Engines
4.1 - Breve introdução
Não irei me aprofundar muito nesse assunto, pois apenas quero mostrar 1 tipo especifico de engine, porém se você já tem um conhecimento básico de MySQL sabe que ao criar uma tabela você pode escolher a engine de armazenamento para a mesma e cada engine oferece uma vantagem/desvantagem.

4.2 - ARCHIVE
A engine ARCHIVE de armazenamento é muito pouco usada, porem se você tem alguma tabela com valores constantes e que você sabe que não ira precisar dar nenhum update (como por exemplo uma tabela com os carros a serem spawnados), então essa engine é a indicada. Então não esqueça: usando esta engine você não pode editar os registros, por é apenas indicada para casos de valores constantes.

Qual vantagem de usar essa engine?
Ela faz com que a tabela tenha um tamanho significativamente menor do que as de mais, pois usa zlib para comprimir as informações. Assim ocupa menos espaço e também aumentaram a eficiência/rapidez de seus backups.


5 - FIM!
5.1 - Sugestões? Erros?
Esse é o meu primeiro tutorial, então acredito que pode ser melhorado, portanto deixem sugestões de como eu devo melhorar e também me corrijam caso existam erros (não sou nenhum expert em MySQL, então sim, posso ter me equivocado em algum momento).
5.2 - Agradecimentos
Como sempre agradeço a toda galera da iPs e espero que realmente possa ter ajudado pelo menos 1 pessoa com esse tutorial.
5.3 - Links úteis sobre o assunto
5.3.1 - Índices
http://www.linhadecodigo.com.br/arti...consultas.aspx
http://www.profissionaisti.com.br/20...s-em-ate-100x/
http://www.webmaster.pt/mysql-otimiz...ices-5148.html
5.3.2 - Partições
http://robsonpeixoto.com/blog/mysql-partition/
http://www.devmedia.com.br/particion...aplicacao/7299
http://dev.mysql.com/doc/refman/5.5/...mitations.html
5.3.3 - Vídeo
http://youtu.be/OiB2OjL1EoE
__________________

quinta-feira, 21 de novembro de 2013

2 SimpleLife [RPG] *Gm do zero*

SimpleLife [RPG]

Esse GameMode foi feito por 1 ano e meio, parei muitas vezes de programa-lo, mas voltava, e agora faz quase 1 ano que não mecho nele, não jogo mais sa:mp nem nada, então vou posta-lo aqui para vocês, só espero que não retirem os créditos, se retirarem também que se foda só mostra que você é burro

Ele é um GM feito totalmente do new.pwn...
Seus sistemas são feitos em:
SII
ZCMD
SSCANF
STREAMER
FOREACH

Nesse momento o GM tem 12 mil linhas.

Vou colocar aqui alguns sistemas que tem nele:

InfoOrg (com CofreOrg, Salario de Membros, Limpar vagas, etc...)
(- O InfoOrg dele é um pouco diferente, o salário das organizações do governo quem determina é a prefeitura, e se no cofre da prefeitura não houver dinheiro, os membros das orgs governamentais não recebem salário e nem conseguem equipar porque não tem dinheiro pra comprar as armas.)
Banco
Casas (O admin pode criar e deletar casas in-game)
Empresas (O admin pode criar e deletar empresas in-game)
Concessionaria
Administração completa
Licenças com teste para retira-las
Tutorial em dialog e bem divertido.
Empregos
GangZones domináveis
Sequestro (com /vendar, /passarfita, /salvarrefem, /liberarrefem. Depois que usa /sequestrar, demora 30 segundos para enviar a mensagem ao servidor, dando tempo pra fuga.)
Velocimetro
Lava-rapido
Ban/Desban/InfoBan
VIPS/S-VIPS
Cadeia
Acessórios(GPS, Fita, Corda, celular...)

E muitos outros que não me recordo, vou colocar algumas SS's para vocês:
Clique aqui para abrir as ScreenShots.


O Download, vocês teram que baixar um gerenciador porque o arquivo está hospedado no site do [iPs]Bruno(Bruno da Silva), só baixar e instalar ele rapidinho que o GM será baixado em seguida, fiz isso porque gera renda para mim e para o Bruno... Eu ajudo vocês disponibilizando o GM e vocês me ajudam também
Download - Clique aqui para baixar

Créditos
Programação em Geral: Bruno Pereira
[SII] [DRuG]Slick
[Foreach] Y_Less
[sscanf2] Y_Less
[Streamer] Incognito
Angeleno pelo Lava Carro
Josma CMD pela auto escola que foi bastante modificada.
[S]trong pelo velocimetro.


Espero que gostem, não vou lançar atualizações nem arrumar bugs, mas qualquer dúvida pode perguntar aqui bjs.
Podem postar em blogs/sites, mantendo os créditos claro.