Jump to content
×
×
  • Create New...

Recommended Posts

 

5a7b5de2110fb_1jojl1FOMkX9WypfBe43D6kjfBqRNJmRvJwXs1M3EMoAJtlSElhvFv9...png.88767b85daa58d26ca46526165d8c1ab.png

 

 

Como todos sabem existem milhares de servidores de poketibia para download aqui no fórum, mas nenhum esta 100%, quando eu falo 100% é dos sistemas principais e não das edições. Então resolvi pegar uma base PField OpenSource aqui do fórum mesmo e começar um projeto comunitário totalmente aberto, para tentarmos deixar a base 100% com os sistemas principais de um servidor de poketibia para quem quiser começar um projeto serio usar este server como base.

 Mas porque eu escolhi a base PField? Simples, por ela ser uma base mais antiga e mais limpa, sem todas as gambiarras, armadilhas e menos poluída. A minha meta é trabalharmos no server opensource, cliente com as sources criado do 0 tambem, e todos se ajudarem para quando ficar com os sistemas básicos 100% dai a galera começar a fazer suas edições

 

ATENÇÃO: Não sou programador, sou meia boca em quase tudo e tenho esperança que com a ajuda de todos conseguiremos deixar a base perfeita para futuros projetos. Peço que não briguem aqui no tópico por causa de créditos, reps etc. Caso alguém tenha autoria em algo e não estiver nos créditos me avise que estarei adicionando. Não quero reputação, apenas quero fazer algo bom para a comunidade com a ajuda de vocês.

Inicialmente estaremos corrigindo os bugs e adicionando os sistemas principais deixando a base mais atualizada, quem quiser pegar a base e já ir editando não fique perguntando aqui no tópico, porque como eu disse a prioridade inicial são os sistemas básicos.

 

 

• Menu:

                 ├ Informações;
  ├ Prints;

├ Bugs;
           ├ Download;
       └ Créditos.

 

separador-2.png

logo.png.7e13cdd446c6363c5362f16731215fcd.png 

Spoiler

Systems do PFIELD!

 
Bike System: 100%
Caught System: 100%
Evolution System: 100%
Go-Back System: 100%
Gerações 1: 100%
Gerações 2: 100%
Limite de 6 Pokemons na Bag: 100%
Moves System: 100%
Portrait System: 100%
Pokedex System: 100%
Ride System: 100%
Sem Level System!
fly System: 100%
Surf System: 100%
Teleport System: 100%
Auto Stacking.
Player canWalkthrough.
ETC...

 

         separador-2.png

• Prints 

Spoiler

project.thumb.png.cb6577f3b3d2ad9237c5f1f78ad82417.png

 

 

ddddd.thumb.png.da40a19985d0cdb15014c0efb8c3ba6d.png

 

 

blastoise.thumb.png.b3d484522d090caf350402b780191c56.png

 

kkkkkkkkk.png.52e60017131f9bef3b913e3d51b2c6a9.png

 

ddddddddddd.png.986a54a6341ec780035bc4ad74c0cb74.png

 

 

 

 

Dungeon.thumb.png.b89c9aa1ca5a7dc1de0c417cc36abf07.png

 

1552738642_TaskDaily.thumb.png.c2aa6427fb0fb4fa4565dc512f2eca76.png

 

 

1860308875_Sinttulo33333.thumb.png.a19fc848beb319f241284f6ef0f29baf.png

 

 

Daily.thumb.png.11f460073c326f8331551e32a9e963af.png

 

• Informações Basicas 

Spoiler

O que falta:
Adicionar sistema de clã.
Sistema de nick.
Sistema de duel.
Sistema de gym esta parcial, ainda conte bugs.
Player soltar poke/usar revive andando.
Pokedex.
Fishing.
ETC...

 

Tem muita coisa faltando, mas a intenção deste tópico é justamente essa, adicionar os sistemas e corrigir os bugs, como essa base é bem limpa sera mais fácil de trabalharmos.
 
Pesso a ajuda de todos, porque assim como eu, muitos sentem falta de uma base boa para começar um projeto.
 
Observações
 
Os systems acima apenas afirma que os sistema em si esta em 100%, quero deixa bem claro que nem todos os pokemos então adicionados ao sistemas.
 
Lembrando tambem que possa aparece bugs porque todos os OtServs de Poketibia á Bugs... Mais Caso Ocorra algum por favor me relate que sera rapidamente corrigido.

separador-2.png

5a7b6d069bfa9_logo(3).png.383884d5404f3a42b7ab2a379cefc8d6.png

 

Spoiler

Server

Descarga 04/03/2021

 

Cliente

Descarga

 

•Scan•

Scan

 

 

• Créditos •

•ADM Kabo

•Kevick

•Aberos

•Avronex

•Lordbaxx

•CipSoft

•PxG

•Nintendo

Se faltar algum me avisem.

 

Se tiver algo errado no tópico me avisem, não tenho muita experiencia em posts.

@Yan Liima

Edited by KaboFlow
UPDATE 04/03/21
Link to post
Share on other sites
  • Replies 34
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Como todos sabem existem milhares de servidores de poketibia para download aqui no fórum, mas nenhum esta 100%, quando eu falo 100% é dos sistemas principais e não das edições. Então resolvi pegar uma

New Update 03/03/2021 Add Autoloot Mais Pokes N Lista! New Sprits  Melhr n map   Descarga Update

New Spells! New Pokes!   New Sprits    

Posted Images

A ideia e iniciativa - E bacana 

 

O problema e se tem galera pra isso pra ajudar pra testar(no caso ir atras de bugs pra possivelmente arrumar) 

 

Eu acho melhor dando uma dica simples de uma possivel V2 tipo algo de inicio.

 

É:  - coloca remakes nos pokemos.

     - coloca nao sei se nesta base como e antiga, itens grupaveis - 100x tipo: stones e items raros.

     - e arrumar bugs.

 

Sei la e uma dica de inicio de V2.

 

E complicado de inicio coloca sistemas tipo: clan system ou ate mesmo boost system.

 

De inicio e bom começa pelo simples ate chega sei la em uma V4 ou V5 onde ai começa coloca sistemas e coisas bacanas.

 

So uma dica mesmo!!

 

Boa Iniciativa ;) 

Edited by BrunooMaciell
Link to post
Share on other sites

Problemas dessa base:
- Sistemas antigos/ desatualizados;
- Sistema de passive/ agressive feito em .lua, o que leva a sobrecarregar o servidor, travando os players (lag infernal);
- Sistema de Moves (m1, m2, m3), toda vez que criar uma spell para o Pokémon (player), precisa criar outra para o Pokémon (selvagem);

Não é uma base ruim para edição, mas creio que não seja viável começar um projeto com a mesma.
Hoje existe praticamente todas as funções para se montar uma source para o PDA e deixa-lo estável para um projeto.

Edited by Wyzze
Link to post
Share on other sites
3 horas atrás, Wyzze disse:

Problemas dessa base:
- Sistemas antigos/ desatualizados;
- Sistema de passive/ agressive feito em .lua, o que leva a sobrecarregar o servidor, travando os players (lag infernal);
- Sistema de Moves (m1, m2, m3), toda vez que criar uma spell para o Pokémon (player), precisa criar outra para o Pokémon (selvagem);

Não é uma base ruim para edição, mas creio que não seja viável começar um projeto com a mesma.
Hoje existe praticamente todas as funções para se montar uma source para o PDA e deixa-lo estável para um projeto.

O problema de um PDA. 

 

E uma base onde tem muitas gambiarras. 

 

Porem assim:

 

E uma base boa pra se editar por se mais atualizada e tudo mais. 

 

Porem pra cria um projeto OPEN SOURCE em cima de um PDA, creio eu que tinha que ter uma equipe grande ate pra fazer uma source em cima dele, e uma parte desta equipe tinha que esta jogando horas e horas pra ta achando erros e falhas no server ate mesmo possivel bugs de nukar o server.

 

O PDA e um server muito bom por ser atualizadão porem como disse e muita gambiarra e um server que foi trabalhado e postado sem source onde complico muito o server.

 

Mas da pra fazer um projeto OPEN SOURCE em cima dele porem e um grande trabalho nele. 

Link to post
Share on other sites
6 horas atrás, BrunooMaciell disse:

O problema de um PDA. 

 

E uma base onde tem muitas gambiarras. 

 

Porem assim:

 

E uma base boa pra se editar por se mais atualizada e tudo mais. 

 

Porem pra cria um projeto OPEN SOURCE em cima de um PDA, creio eu que tinha que ter uma equipe grande ate pra fazer uma source em cima dele, e uma parte desta equipe tinha que esta jogando horas e horas pra ta achando erros e falhas no server ate mesmo possivel bugs de nukar o server.

 

O PDA e um server muito bom por ser atualizadão porem como disse e muita gambiarra e um server que foi trabalhado e postado sem source onde complico muito o server.

 

Mas da pra fazer um projeto OPEN SOURCE em cima dele porem e um grande trabalho nele. 

PDA no caso foi apenas uma ideia, a base PField precisa de muito trabalho em cima da mesma, creio que quase todos os sistemas dela precisam ser atualizados.

Sobre o sistema de moves creio que utilizar a função doCreatureCastSpell seria uma ótima alternativa e deixaria muito mais leve e otimizado o sistema.

Link to post
Share on other sites
2 horas atrás, Wyzze disse:

PDA no caso foi apenas uma ideia, a base PField precisa de muito trabalho em cima da mesma, creio que quase todos os sistemas dela precisam ser atualizados.

Sobre o sistema de moves creio que utilizar a função doCreatureCastSpell seria uma ótima alternativa e deixaria muito mais leve e otimizado o sistema.

Entendi. 

 

Sim todas as bases vai da um grande trabalho porque todas tem oque melhora e arruma.

Link to post
Share on other sites

A ideia do sistema de move (m1, m2, m3) utilizando a doCreatureCastSpell seria basicamente assim:
Link da função: doCreatureCastSpell

 

function getTime(s)
	local n = math.floor(s / 600)
	s = s - (600 * n)
	return n, s
end

function onSay(cid, words, param)
	if #getCreatureSummons(cid) == 0 then --- Check SUMMON!
		return doPlayerSendCancel(cid, "Sorry, not possible.")
	end
	
	local summon = moves[getCreatureName(getCreatureSummons(cid)[1])][words]
	if not summon then
		return true
	end
	
	local storage = summon.st
	local cd = math.ceil(summon.cd/2)
	local pokemon = getCreatureSummons(cid)[1]
	local target = getCreatureTarget(cid)
    
	---	
	
	if getTilePzInfo(getCreaturePosition(pokemon)) and summon.pz == false then --- Check PZ!
		return doPlayerSendCancel(cid, "You can't use spells in protection zone.")
	end
	
	if getPlayerLevel(cid) < summon.minlvl then --- Check LVL!
		return doPlayerSendCancel(cid, "You must be level "..summon.minlvl.." or higher to use this move.")
	end
	
	if os.time()-getPlayerStorageValue(cid, storage) <= cd then --- Check CD!
		minutes,seconds = getTime(cd-(os.time()-getPlayerStorageValue(cid, storage)))
		return doPlayerSendCancel(cid, "Wait "..seconds.." seconds to use "..summon.atk..".")
	end
	
	if target == 0 and summon.target then
		return doPlayerSendCancel(cid, "You can't use this move.")
	end
	
	--- 
	
	doCreatureSay(cid, getCreatureName(pokemon)..", "..summon.atk.."!", TALKTYPE_MONSTER)
	doCreatureSay(pokemon, string.upper(summon.atk).."!", TALKTYPE_MONSTER)
	
	doCreatureCastSpell(pokemon, summon.atk) --- Soltar SPELL!

	---
	
	setPlayerStorageValue(cid, storage, os.time()+cd) --- Setar CD!
	return true
end

 

E a tabela com os moves algo assim:
 

moves = {
	["Dragon"] = {
		["m1"] = {atk = "Death Strike", minlvl = 20, st = 2000, cd = 0, target = true, pz = false},
		["m2"] = {atk = "Flame Strike", minlvl = 20, st = 2001, cd = 0, target = true, pz = false},
		["m3"] = {atk = "Mass Healing", minlvl = 20, st = 2002, cd = 0, target = false, pz = false},
		["m4"] = {atk = "Wrath of Nature", minlvl = 20, st = 2003, cd = 0, target = false, pz = false},
		},
}


No caso trabalharia apenas com as spells do spell.xml não precisaria criar duas spell uma pro summon e outra para o selvagem

Edited by Wyzze
Link to post
Share on other sites
Em 01/03/2021 em 08:54, Wyzze disse:

A ideia do sistema de move (m1, m2, m3) utilizando a doCreatureCastSpell seria basicamente assim:
Link da função: doCreatureCastSpell

 


function getTime(s)
	local n = math.floor(s / 600)
	s = s - (600 * n)
	return n, s
end

function onSay(cid, words, param)
	if #getCreatureSummons(cid) == 0 then --- Check SUMMON!
		return doPlayerSendCancel(cid, "Sorry, not possible.")
	end
	
	local summon = moves[getCreatureName(getCreatureSummons(cid)[1])][words]
	if not summon then
		return true
	end
	
	local storage = summon.st
	local cd = math.ceil(summon.cd/2)
	local pokemon = getCreatureSummons(cid)[1]
	local target = getCreatureTarget(cid)
    
	---	
	
	if getTilePzInfo(getCreaturePosition(pokemon)) and summon.pz == false then --- Check PZ!
		return doPlayerSendCancel(cid, "You can't use spells in protection zone.")
	end
	
	if getPlayerLevel(cid) < summon.minlvl then --- Check LVL!
		return doPlayerSendCancel(cid, "You must be level "..summon.minlvl.." or higher to use this move.")
	end
	
	if os.time()-getPlayerStorageValue(cid, storage) <= cd then --- Check CD!
		minutes,seconds = getTime(cd-(os.time()-getPlayerStorageValue(cid, storage)))
		return doPlayerSendCancel(cid, "Wait "..seconds.." seconds to use "..summon.atk..".")
	end
	
	if target == 0 and summon.target then
		return doPlayerSendCancel(cid, "You can't use this move.")
	end
	
	--- 
	
	doCreatureSay(cid, getCreatureName(pokemon)..", "..summon.atk.."!", TALKTYPE_MONSTER)
	doCreatureSay(pokemon, string.upper(summon.atk).."!", TALKTYPE_MONSTER)
	
	doCreatureCastSpell(pokemon, summon.atk) --- Soltar SPELL!

	---
	
	setPlayerStorageValue(cid, storage, os.time()+cd) --- Setar CD!
	return true
end

 

E a tabela com os moves algo assim:
 


moves = {
	["Dragon"] = {
		["m1"] = {atk = "Death Strike", minlvl = 20, st = 2000, cd = 0, target = true, pz = false},
		["m2"] = {atk = "Flame Strike", minlvl = 20, st = 2001, cd = 0, target = true, pz = false},
		["m3"] = {atk = "Mass Healing", minlvl = 20, st = 2002, cd = 0, target = false, pz = false},
		["m4"] = {atk = "Wrath of Nature", minlvl = 20, st = 2003, cd = 0, target = false, pz = false},
		},
}


No caso trabalharia apenas com as spells do spell.xml não precisaria criar duas spell uma pro summon e outra para o selvagem

tenhe como judar?

Em 28/02/2021 em 16:30, BrunooMaciell disse:

E bom vc coloca oque foi feito.

Olá, gostaria que alguém me ajudasse, ocupo o EDITOR DE ITENS Para essa base já que os que encontrei dão erro e quero melhorar muito melhor o projeto

6 horas atrás, Slytherin disse:

Tu não acha que se explica as coisa que foram adicionadas no "UPDATE" seria melhor? 

 

AutoLoot  - presisa add mais pokes!!

Sprits de algums pokes!!

Melhr n map

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


    Administrador |  Diretor |  Coordenador |  Moderador |  Suporter |  Estagiário |  Herói
  • Similar Content

    • By bruninho38
      Olá pessoal,

      Estou procurando a alguns dias e não consegui fazer da certo ate o momento, então acho que mais pessoas devem ter a mesma dificuldade.

      Atualmente alguns servidores de poketibia tem um autoloot que é ativado assim que o monstro morre, você não precisa ir lá click no corpo e nem ficar configurando qual item vc quer.

      Uso a base do PokemasterX, esse servidores já te um script que pega todos os loot's, porem precisa click no poke morto, se alguém conseguir fazer o scrip funcionar se click no corpo ou tiver outro script ajudaria muito.

      Obrigado!

      Script que uso hoje:
       
      function getContainerBackpack(containeruid) local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end end for i = 1, #containers do if #containers > 1 then table.remove(containers, containers[i+1]) end if #containers > 2 then table.remove(containers, containers[i+2]) end if #containers > 3 then table.remove(containers, containers[i+3]) end if #containers > 4 then table.remove(containers, containers[i+4]) end if #containers > 5 then table.remove(containers, containers[i+5]) end end for i = 1, #containers do for _, x in ipairs(getContainerBackpack(containers[i])) do table.insert(containers, x) end end return containers end function getContainerItems(containeruid) local items = {} local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end table.insert(items, item) end if #containers > 0 then for i,x in ipairs(getContainerItems(containers[1])) do table.insert(items, x) end table.remove(containers, 1) end return items end function isCorpse(item) return string.find(getItemNameById(item.itemid), "fainted") or string.find(getItemNameById(item.itemid), "defeated ") end function getCorpsesPosition(position) local toret = { } -- table to return items position.stackpos = 1 while true do -- loop to catch the items and insert them in toret table local thing = getThingfromPos(position) if thing.itemid == 0 then -- thing doesn't exist, break the loop... break end if thing.uid > 0 and isContainer(thing.uid) and isCorpse(thing) then table.insert(toret,thing) end position.stackpos = position.stackpos + 1 -- get next item end return toret end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function doLoot(cid, corpse) if not isCollectAll(cid) then return true end if not isContainer(corpse.uid) then return false end local itemsToLootAllWindow = {} for _, loot in pairs(getContainerItems(corpse.uid)) do local slot = getPlayerSlotItem(cid, 3).uid local container = getContainerBackpack(slot) local item1 = getPlayerStorageValue(cid, 251461):explode("|") or 0 function configLoot() local itt = "".. tostring(getItemInfo(loot.itemid).clientId) .."|".. loot.type .."|" local ittt1, ittt2 = itt:explode("|")[1], itt:explode("|")[2] local itr = ittt1 .."-".. ittt2 .."-" table.insert(itemsToLootAllWindow, itr) doRemoveItem(loot.uid) doSendPlayerExtendedOpcode(cid, 69, table.concat(itemsToLootAllWindow)) end --// Sistema de Daily Itens \\-- if inDailyItens(cid) then if tonumber(item1[1]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[3]) - getPlayerItemCount(cid, item1[1])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[2]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[4]) - getPlayerItemCount(cid, item1[2])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[5]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[7]) - getPlayerItemCount(cid, item1[5])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[6]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[8]) - getPlayerItemCount(cid, item1[6])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end end --// Sistema de Daily Itens \\-- if #container < 1 then doPlayerAddItem(cid, loot.itemid, loot.type) configLoot() end for i = 1, #container do if #container >= 1 then if getContainerSlotsFree(container[i]) >= 1 then doAddContainerItem(container[i], loot.itemid, loot.type) configLoot() break end else doPlayerAddItem(cid, loot.itemid, loot.type) configLoot() end end end end function checkLoot(cid, corpse, SemMensagem) if not isContainer(corpse.uid) then return false end local quemMatou = getItemAttribute(corpse.uid, "corpseowner") if quemMatou then local player = getCreatureByName(quemMatou) if isPlayer(player) then local isInParyWithPlayer = false if isInParty(cid) and isInParty(player) then isInParyWithPlayer = isPartyEquals(player, cid) end if getCreatureName(cid) ~= getCreatureName(player) and not isInParyWithPlayer then if not SemMensagem then doPlayerSendCancel(cid, "Você não pode abrir um loot que não é seu.") end return false end end end return true end function onUse(cid, item, frompos, item2, topos) if isWatchingTv(cid) then return true end if not isContainer(item.uid) then return true end if not isCollectAll(cid) then return false end local maxItem = 800 if isContainer(item.uid)then if (getPlayerTotalItem(cid) + #getAllItemsFromContainer(item)) > maxItem then doPlayerSendCancel(cid, "Você não pode carregar mais itens pois já lotou a quantidade de slot's disponíveis") return false end else if getPlayerTotalItem(cid) + 1 > maxItem then doPlayerSendCancel(cid, "Você não pode carregar mais itens pois já lotou a quantidade de slot's disponíveis") return false end end local openCorpse = #getContainerItems(item.uid) < 1 if checkLoot(cid, item, false) then doLoot(cid, item) end for _, corpse in pairs(getCorpsesPosition(getThingPosition(item.uid))) do if checkLoot(cid, corpse, false) then doLoot(cid, corpse) end end if openCorpse then return false end return true end  
    • By jenison06
      Alguem consegue adaptar sistema de contagem, o meu nao esta contando apenas no abra e msmo assim so conta 1 ball.
       
      Action ( Catch.lua)
       
      Lib (catch system.lua)
      Checatch (Talkaction)
      function onSay(cid, words, param, channel) if param == "" then return true end getBrokesIn(cid, param) return true end  
    • By KaboFlow
      Versão do Servidor: TFS - 0.3.4 Tipo de Script: actions Código: Ocupo um reviver com tempo de 10 minutos.
      para o nível 200+
    • By KaboFlow
      Como todos sabem existem milhares de servidores de poketibia para download aqui no fórum, mas nenhum esta 100%, quando eu falo 100% é dos sistemas principais e não das edições. Então resolvi pegar uma base PField OpenSource aqui do fórum mesmo e começar um projeto comunitário totalmente aberto, para tentarmos deixar a base 100% com os sistemas principais de um servidor de poketibia para quem quiser começar um projeto serio usar este server como base.
       Mas porque eu escolhi a base PField? Simples, por ela ser uma base mais antiga e mais limpa, sem todas as gambiarras, armadilhas e menos poluída. A minha meta é trabalharmos no server opensource,  criado do 0 tambem, e todos se ajudarem para quando ficar com os sistemas básicos 100% dai a galera começar a fazer suas edições
       
      ATENÇÃO: Não sou programador, sou meia boca em quase tudo e tenho esperança que com a ajuda de todos conseguiremos deixar a base perfeita para futuros projetos. Peço que não briguem aqui no tópico por causa de créditos, reps etc. Caso alguém tenha autoria em algo e não estiver nos créditos me avise que estarei adicionando. Não quero reputação, apenas quero fazer algo bom para a comunidade com a ajuda de vocês.
      Inicialmente estaremos corrigindo os bugs e adicionando os sistemas principais deixando a base mais atualizada, quem quiser pegar a base e já ir editando não fique perguntando aqui no tópico, porque como eu disse a prioridade inicial são os sistemas básicos.
       
       
      • Menu:
                       ├ Informações;
        ├ Prints;
      ├ Bugs;
                 ├ Download;
             └ Créditos.
       

       
       
       
       

      • Prints •
       
      • Informações Basicas •
       


       
       
       
      • Créditos •
      •ADM Kabo
      •Kevick
      •Aberos
      •Avronex
      •Lordbaxx
      •CipSoft
      •PxG
      •Nintendo
      Se faltar algum me avisem.
       
      Se tiver algo errado no tópico me avisem, não tenho muita experiencia em posts.