Ir para conteúdo

PXM (PField) Open Source 2021


KaboFlow

Posts Recomendados

 

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

Editado por KaboFlow
UPDATE 04/03/21
Link para o comentário
Compartilhar em outros sites

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 ;) 

Editado por BrunooMaciell
Link para o comentário
Compartilhar em outros 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.

Editado por Wyzze
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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

Editado por Wyzze
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...