[Projeto] SimFramework [open-source]
#1

SimFramework
▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀
☀ ✈ ☎ ☻ ♨ ☁ ✉ ☂ ☃ ♫
(logotipo original em produзгo)



Prefбcio

Na minha juventude (com cerca de 16 anos) ao conhecer ao mundo do SAMP e da programaзгo pawn, idealizei diversos sistemas que seriam totalmente ъnicos e inovadores, procurei diversas ideias semelhantes, como resultado eu encontrei algumas que tinham um bom conceito mas nгo eram bem o que eu sempre quis.

Desde entгo, eu tentei por muitas e muitas vezes desenvolver sistemas que se aproximassem de toda aquela idealizaзгo, porque eu sempre dividia os resultados de meus brainstorming em partes e sempre programava cada sistema separadamente.

O filterscript simulador de necessidades bбsicas foi um projeto que para a йpoca jб causou certo impacto tanto positivo quanto negativo. Apesar de ser um sistema bem idealizado eu ainda nгo tinha toda a maturidade que precisava pra desenvolver algo totalmente fora do comum, era algo inovador mas nada muito lindo de se ver, hoje eu particularmente recomendo que caso queiram usб-lo, revisem todo o cуdigo e corrijam os erros porque hб sim alguns, mas isto nгo vem ao caso agora.

Hoje, posso dizer que possuo todo o conhecimento que eu almejava em pawn e em outras ferramentas no SAMP, as quais precisei na йpoca em que estive presente e ativo no jogo, mas nunca й tarde demais pra comeзar algo que sempre quisemos fazer, certo? Entгo decidi criar este projeto que nгo й algo pequeno, simples ou rбpido de ser concluнdo.


F.A.Q (perguntas frequentes)


P: Do que exatamente se trata este projeto?
R: Trata-se de um framework de mъltiplas funcionalidades que promete compreender diversos tipos de sistemas voltados principalmente а jogabilidade do modo Roleplay ou Roleplay Game (pode servir tambйm para outros modos caso o programador deseje inserн-lo).

P: O que й exatamente um framework?
R: "Um framework (ou biblioteca), em desenvolvimento de software, й uma abstraзгo que une cуdigos comuns entre vбrios projetos de software provendo uma funcionalidade genйrica. Um framework pode atingir uma funcionalidade especнfica, por configuraзгo, durante a programaзгo de uma aplicaзгo." (WIKIPЙDIA, https://pt.wikipedia.org/wiki/Framework).

P: Como posso usar isso no meu servidor ou projeto?
R: Por tratar-se de um framework pъblico eu estou desenvolvendo-o para ter o mбximo de compatibilidade possнvel com qualquer gamemode, a ponto de que vocк sу tenha que extrair o conteъdo do mesmo, configurar um (ou mais) arquivo(s) e poder usufruir de todo o conteъdo do framework, e й claro, caso queira, modificar de acordo а sua vontade.

P: Quais sistemas estarгo contidos neste framework?
R: Inicialmente eu planejo lanзar a primeira versгo baseada em alguns sistemas principais, talvez futuramente eu possa integrar outros sistemas ao projeto e quem sabe atй virar uma base de gamemode, mas este nгo й o ponto principal agora, seguem abaixo algumas das funcionalidades que planejo para este projeto:

+ Sistema de casas dinвmicas e imobiliбrias
+ Sistema de mobiliaзгo de casas e outdoors
+ Sistema de interaзгo com mobнlias e itens
+ Sistemas de armazenamento (inventбrio, porta-malas para carros e dispensa para casas)
+ Sistema de compras (mercados, lojas de conveniкncia e lojas de construзгo)
+ Sistema de garagens (anexadas ou nгo аs casas)
+ Sistema de necessidades bбsicas
+ Outros sistemas que serгo citados no decorrer do tуpico

P: Vocк nгo acha que isso й transformar demais o SAMP em The Sims?
R: Nгo exatamente, caso vocк nгo tenha se dado conta, 90% dos sistemas que eu apresento neste projeto estгo presentes na jogabilidade do GTA V, como por exemplo, as lojas de conveniкncia, ou atй mesmo as casas dinвmicas (entrбveis e interativas a grosso modo de dizer), garagens e as imobiliбrias sгo partes do jogo, eu pretendo criar uma nova ambientaзгo com recursos que jб existem.

P: Й possivel concretizar a ideia de ter sistemas tгo dinвmicos, interativos e interligados?
R: Bom, eu preciso dizer que atй algum tempo atrбs — especificamente atй antes da 0.3.7, quando tive algumas conversas com o beta tester Matite, que levou muito em consideraзгo vбrias das minhas sugestхes para objetos a serem modelados no jogo — os recursos eram muito limitados para que um projeto assim tivesse uma boa diversidade, e mesmo agora ainda sinto certa dificuldade de apresentar isso, mas й possнvel sim criar algo com o que temos hoje e diversificar um pouco usando a criatividade.

P: Quando vocк pretende terminar este projeto?
R: Nгo pretendo estipular nenhum prazo para tйrmino, frequкncia de programaзгo, atualizaзхes ou correзхes de bugs, й um projeto pъblico, vocк tem liberdade pra criar seus branches e usб-lo da forma que quiser, caso queira contribuir reportando issues no GitHub eu prometo analisar cada um dos reports o mais rбpido possнvel, mas nгo pretendo dar merge em todos os pull requests que surgirem.


Observaзхes:

- Nгo responderei mensagens pessoais para tratar assuntos pertinentes a este tуpico, caso tenha algum problema, dъvida, sugestгo ou crнtica, sinta-se livre para expressar-se abaixo nos comentбrios desde que o mesmo esteja de acordo com as regras de postagem, portanto, peзo encarecidamente que nгo me cobrem por um fim deste projeto, eu nгo vou abandonб-lo, tenho agora algum tempo livre pra programб-lo quando me dб vontade e faзo isto apenas por hobby, atй porque eu nгo jogo mais SAMP.

- Este tуpico estб sujeito а frequentes ediзхes, verifique constantemente a ъltima data de modificaзгo do mesmo e o motivo para saber o que mudou.

- O logotipo do projeto estб em construзгo por parte de uma amiga da faculdade, nгo me agridam por favor, o logotipo atual й apenas improviso.

- Toda e qualquer citaзгo externa estб disponнvel para consulta atravйs dos links grifados ao longo do tуpico.

- As imagens utilizadas neste tуpico sгo meramente ilustrativas e foram retiradas em sua totalidade do jogo GTA V.

Descriзгo dos Sistemas
1.0 - Sistema de Casas



Descriзгo:

As casas serгo um dos pilares principais no conteъdo deste projeto, por todos — ou quase todos — os sistemas estarem interligados, a base de boa parte do projeto estб contida aqui. Haverб uma ferramenta para criaзгo de modelos de casa in-game caso o administrador deseje, e haverгo tambйm modelos prй-definidos jб construнdos ao redor do mapa, porйm, totalmente opcionais.

Por exemplo: Hб uma casa prй-definida a ser construнda em ganton, com removebuildings jб inclusos e estrutura totalmente pronta, texturizada e configurada. Porйm, no mesmo lugar em seu servidor hб uma concessionбria, e vocк nгo quer que aquela casa fique por cima da concessionбria nгo й mesmo? Portanto, haverб um arquivo para configuraзгo de exceзхes chamado "exceptions.pwn", no qual as indexes de casas (—que poderгo ser vistas pelos administradores atravйs de labels in-game, ou atй mesmo prй-visualizadas atravйs de uma galeria de imagens e informaзхes que vгo constar no painel de controle do sistema, que serб desenvolvido em PHP e terб um exemplar online no site da ips-team em breve—), entгo ao adicionar uma index de exceзгo aquela casa й ignorada no processo de criaзгo.

Todas as casas serгo dinвmicas (interativas), vocк poderб entrar e sair dela a hora que quiser, controlar sua бrea, controlar suas mobнlias, seu contrato de permanкncia com a imobiliбria, pagar impostos, controlar seus recursos e muito mais que serб explicado abaixo.

1.1 - Sistema de Mobнlias


Descriзгo:

Assim como quase todo o resto deste projeto, as mobнlias serгo dinвmicas, isso quer dizer que vocк poderб sentar numa cadeira com animaзгo prй-definida e sincronizada pelo framework, ou atй mesmo deitar numa cama, й um trabalho totalmente detalhista.

Haverб tambйm uma margem de espaзo mнnima com colisхes para se tornar realista, portanto quando vocк vai sentar-se а uma cadeira por exemplo, a lуgica faz com que vocк puxe-a para trбs, execute o movimento (—no caso do jogo, animaзгo—) e entгo a cadeira retorne novamente ao lugar original. Esta margem de espaзo й algo pequeno mas que serб considerado ao colocar certos tipos de mobнlias em lugares especнficos, apesar de bastante trabalhoso, isso serб possнvel atravйs do plugin ColAndreas.

As mobнlias poderгo ser adquiridas em lojas de mobнlias & materiais de construзгo, e serгo entregues em caixas na dispensa de sua casa, ou colocadas no porta-malas do seu carro caso o mesmo esteja prуximo а loja.
1.2 - Sistema de Itens (consumнveis)


Descriзгo:

Os itens consumнveis poderгo ser adquiridos em mercados e lojas de conveniкncia ao redor do mapa, poderгo ser armazenados em geladeiras ou na dispensa da casa (dependendo do tipo) e consumidos quando desejбvel.

Os itens consumнveis poderгo ser entregues apenas por mercados em caixas na dispensa de sua casa, ou colocadas no porta-malas do seu carro caso o mesmo esteja prуximo ao mercado/loja de conveniкncia, do contrбrio caso nгo haja veнculo por perto e o player adquira algo na loja de conveniкncia, o item serб carregado а mгo porйm com quantidade reduzida e limitada de itens comprados.

Ligado aos itens consumнveis existirб (ou nгo, de acordo com a opзгo configurada) o painel de necessidades bбsicas, que farгo com que o servidor possa simular necessidades de um player, tais como higiene, fome, sede, saъde, bexiga etc, mas esta parte й opcional, caso o administrador do servidor queira, o uso de itens consumнveis pode deixar de afetar o painel de necessidades bбsicas para afetar a quantidade de vida do player, ou atй mesmo nгo afetar nada.

Por exemplo:

- Joгo come um hambъrguer, o que acontece apуs isso? O servidor pode optar entre:

[1]- Nada acontecer
[2]- Diminuir a fome do player caso o painel de necessidades esteja ativo no servidor
[3]- Aumentar a quantidade de HP caso o painel de necessidades esteja desativado no servidor
1.3 - Sistema de Dispensa


Descriзгo: (em desenvolvimento).
1.4 - Sistema de Бreas e Outdoors


Descriзгo: (em desenvolvimento).
1.5 - Sistema de Garagens


Descriзгo: (em desenvolvimento).
1.6 - Sistema de Modificaзгo


Descriзгo: (em desenvolvimento).
1.7 - Sistema de Propriedade


Descriзгo: (em desenvolvimento).
2.0 - Sistema de Comйrcio



Descriзгo: (em desenvolvimento).

2.1 - Sistema de Compras


Descriзгo: (em desenvolvimento).
2.2 - Sistema de Compras Mobiliares


Descriзгo: (em desenvolvimento).
2.3 - Sistema de Entregas (automбtico)


Descriзгo: (em desenvolvimento).
Cуdigo Fonte e Links externos


Todo cуdigo fonte estarб disponнvel atravйs deste repositуrio, seu conteъdo de conhecimento serб postado e organizado na wiki do repositуrio.

Este projeto requisitarб tambйm a utilizaзгo do plugin MySQL R39+ (by BlueG & maddinat0r), do plugin Streamer (by Incognito), a criaзгo de um novo plugin prуprio que estou a desenvolver, o plugin RemStreamer, e do ColAndreas plugin (by Pottus), entre outros.



Encerramento
Bom galerinha, acredito que apesar de extenso o tуpico do projeto й mais do que auto-explicativo, caso tenham alguma dъvida, crнtica ou sugestгo nгo hesitem em postar abaixo, espero que gostem e apoiem o projeto, obrigado a todos pela atenзгo atй aqui

Abraзos,

-ipsLeon.
Reply
#2

Deixa suporte para quem quiser facilmente alterar para outro sistema de salvamento...


E esse plugin que ta fazendo й o que mesmo??


Conta comigo se quiser...
Reply
#3

Boa sorte com o projeto, seria muito bom uma base para todo tipo de servidor, daria liberdade para os criadores projetarem coisas diferentes jб que o bбsico que todo mundo procura jб teria na framework e bem feito.

Se precisar de qualquer ajuda eu to aqui

+rep
Reply
#4

Quote:
Originally Posted by PT
View Post
Deixa suporte para quem quiser facilmente alterar para outro sistema de salvamento...


E esse plugin que ta fazendo й o que mesmo??


Conta comigo se quiser...
Streamer pra RemoveBuildingForPlayer
Reply
#5

Interessante, um bom projeto e uma boa sorte !
Reply
#6

Se concluнdo, de fato serб um dos melhores!
Reply
#7

Quote:
Originally Posted by ipsLeon
View Post
Streamer pra RemoveBuildingForPlayer
Diga como pretende atingir isto, obrigado.

@Topic Creio que este projeto nгo va dar em nada, espero que eu esteja errado.
Reply
#8

Quote:
Originally Posted by Day_
View Post
Diga como pretende atingir isto, obrigado.

@Topic Creio que este projeto nгo va dar em nada, espero que eu esteja errado.
Streamer + array of all objects + RemoveBuildingForPlayer -> radius
Reply
#9

Quote:
Originally Posted by ipsLeon
View Post
Streamer + array of all objects + RemoveBuildingForPlayer -> radius
Uma vez usado RemoveBuildingForPlayer nгo hб como voltar o objeto(Pode-se criar outro no local exato), entretanto o objeto original continuarб removido.
Reply
#10

Quote:
Originally Posted by PT
View Post
Deixa suporte para quem quiser facilmente alterar para outro sistema de salvamento...


E esse plugin que ta fazendo й o que mesmo??


Conta comigo se quiser...
O salvamento й especнfico para o framework, vai ter uma opзгo de SQLite tambйm, o servidor sу precisarб incluir o framework, configurar o tipo de salvamento que quer, e atravйs de macros conseguirei pegar cada informaзгo do player de acordo com o enumerador jб definido no gamemode, ou seja, se vocк jб tiver um sistema de Login totalmente pronto, й sу configurar algumas macros que ele serб compatнvel com o SimFramework.


Quanto ao nome "framework", talvez eu venha a mudar porque de certo ponto de vista isso nгo й muito um framework, talvez seja um Package ou biblioteca de extensгo, mas assim que eu tiver com tempo eu termino o tуpico.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)