
Gabriel Netto
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
Gabriel Netto recebeu reputação de Cicuta Verde em (Resolvido)Como faço para criar um otserver do zeroBrother, não cai nessa de que "open source não é importante".
A maioria dos NTO por aí são cheio de bugs, postos intencionalmente pelos criadores, e eles só podem ser arrumados nas sources. Fora que dá pra fazer uma série de modificações nas sources (as que tem maior efeito no jogo precisam, como adicionar o sistema de balls pra pokemons, adicionar novas skills, modificar como funciona N sistema base etc).
Recomendo que use esse server aqui. Ele vem limpo, só com os scripts bem básicos, com sources e td mais. Até onde sei, sem nenhum bug:
Foca o estudo em .lua, procura tutoriais nesse e em outros foruns, veja vídeos. Quando sentir que dominou o básico, estude as funções do TFS 0.4 (The Forgotten Server. É o programa com as instruções básicas do Tibia. Tem várias versões, mas a mais estável é o 0.4.), se não me engano tem uma lista aqui no fórum com todas elas. O resto, como mapping e spriting tu aprende na manha com o tempo.
E não se esqueça, quaisquer dúvidas é só perguntar aqui no TK, só não fique querendo as coisas de mão beijada. :D
-
Gabriel Netto recebeu reputação de maccari em Comprar/Vender OTserver, Conseguir tudo de graça? O que é certo?Eu sou completamente foda-se quanto a esses assuntos. Até porque, propriedade intelectual não existe.
Patente é o maior câncer da humanidade, já que permite atrocidades, como monopolização de ideias e tals. Propriedade tem ideia de escassez, coisas não escassas não podem ser propriedade, porque não faz sentido.
Se a pessoa quer vender um código que ela fez? Direito dela. Se alguém que comprou espalhou esse código? Direito dela. Se ela quer vender o código que comprou, porém mais barato? Direito dela.
A partir do momento que alguém toma posse do código, ele pode fazer o que quiser com ele. E, na minha opinião, contratos de propriedade não podem impedir isso (pelo motivo q eu disse), mas podem impedir assistência técnica do programador, ou qualquer outra coisa advinda do programador, em caso de vazamento do código para outros.
Mas, eu achar isso certo, não faz com que seja moral. Quem fica liberando códigos comprados é pau no cu pra caralho e merece ter o nome vazado.
-
Gabriel Netto recebeu reputação de duduprec em (Resolvido)Como faço para criar um otserver do zeroBrother, não cai nessa de que "open source não é importante".
A maioria dos NTO por aí são cheio de bugs, postos intencionalmente pelos criadores, e eles só podem ser arrumados nas sources. Fora que dá pra fazer uma série de modificações nas sources (as que tem maior efeito no jogo precisam, como adicionar o sistema de balls pra pokemons, adicionar novas skills, modificar como funciona N sistema base etc).
Recomendo que use esse server aqui. Ele vem limpo, só com os scripts bem básicos, com sources e td mais. Até onde sei, sem nenhum bug:
Foca o estudo em .lua, procura tutoriais nesse e em outros foruns, veja vídeos. Quando sentir que dominou o básico, estude as funções do TFS 0.4 (The Forgotten Server. É o programa com as instruções básicas do Tibia. Tem várias versões, mas a mais estável é o 0.4.), se não me engano tem uma lista aqui no fórum com todas elas. O resto, como mapping e spriting tu aprende na manha com o tempo.
E não se esqueça, quaisquer dúvidas é só perguntar aqui no TK, só não fique querendo as coisas de mão beijada. :D
-
Gabriel Netto recebeu reputação de Augusto em Tibia King parou no tempo há muito tempoGanhar dinheiro com Tibia é boa HAUEAHUEAUH
Se tem como, sem participar de projetos caralhudos e gigantescos, eu desconheço. Larguei do C++ e tô estudando Java por causa disso: há mercado. Tibia já passou da sua era, apesar de ser bem divertido não acho q dê pra salvá-lo. E se há uma chance, ela tá na mão dos gigantes, tipo PxG ou os globais "inovadores".
É triste a comunidade em si, nao só o tibiaking, estar decaindo. MAs né, o mundo é assim, cada um se vira da maneira que pode. Uns fortalecendo o open source e outros tentando tirar seu lucro estando pouco se fodendo pro opentibia. D E S G O S T O T O T A L pra esse segundo grupinho.
Enfim, caso queira retomar um pouco as esperanças, tô desenvolvendo um projeto de poketibia feito do zero, do literalmente zero, pra liberar pro pessoal. Peguei a source do TFS e tô mexendo. O objetivo seria fazer quase todos sistemas essenciais nas sources, mas tá complicado haueahu, tô quebrando a cabeça pra alterar o comportamento dos monsters em situações N (quero aumentar o "RPG").
Não garanto que não vá demorar mais alguns bons meses, mas já é uma luz pro opentibia AHUEAHUEAHU
-
Gabriel Netto deu reputação a Augusto em Tibia King parou no tempo há muito tempo@Skydangerous
Cara, de que adianta você querer cobrar isso da comunidade, se você não faz sua parte?
Já ouviu a frase "Seja a mudança que você quer ver no mundo"? Comece por você. Se você tem 20 sistemas exclusivos que não existem nas comunidades, você esta fazendo exatamente o que os cara estão também. A diferença é que eles não estão vindo no fórum reclamar de algo que eles fazem...
Isto vai do que você quer...se quer ganhar dinheiro vá a fundo, vá participar de projetos privados e se tornar exatamente aquilo que você reclama agora.
-
Gabriel Netto deu reputação a Skydangerous em Tibia King parou no tempo há muito tempoComo vocês podem perceber, se acessarmos os tópicos de script veremos que só existem tópicos tfs 0.3.6 e tfs 0.3.4 , e raramente temos para tfs 1.x
Isso é totalmente ridículo, não vemos mais nenhum sistema, projeto, mapa .. de qualidade ..
E pior que não fazem nada para melhorar o fórum..
até eu sei por que? pq a maioria do pessoal foram trabalhar em projeto privado.. e advinha? Tudo é privado não vão disponibilizar para as comunidades open-source do tibia.
Parabéns para todos.
Eu não estou reclamando por que eu não consigo, muito pelo ao contrário.. sou desenvolvedor e tenho conhecimento muito amplo em relação aos otserv (códigos, funções e etc.) o que me falta são duas coisas:
01. Tempo e um novo notebook.
Mas ai vem? Será que ainda vale a pena ajudar de graça o pessoal? não seria melhor eu participar de um projeto privado e ganhar dinheiro??
então pensem bem todos.. antes de ajudar as comunidades... totalmente ridículo, só vocês verem os servidores 10.9X como eles estão.. coisas absurdas que existem e nada É DISPONIBILIZADO NA COMUNIDADE OPEN TIBIA... por que? Por que gente de FORA QUE NUNCA PARTICIPOU NO DESENVOLVIMENTO DAS COMUNIDADES PAGAM PARA AS PESSOAS TRABALHAREM E CRIAREM SISTEMAS E MELHORAR APENAS PARA O SERVIDOR DELE.
e volto a dizer... não choro por isso, só ver meu servidor tenho 20 sistemas exclusivos para tfs 1.x que não existem nas comunidades (:
Um grande abraço.
-
Gabriel Netto recebeu reputação de VitorNM em O que são soucers em poketibia?É complexo, mas resumindo:
o núcleo do teu servidor é feito em C++, uma linguagem compilada. Ou seja, a distro do teu servidor é tudo que tem nas sources, só que já compilado.
Para editar, tu vai ter que ter noções avançadas dessa linguagem.
-
Gabriel Netto recebeu reputação de Snowsz em [C++_switch] cases "aninhado"E aí galera, beleza?
Tô trazendo uma estrutura pro switch que eu achei bem interessante (vi num fórum). Não sei se seria correto chamar de case aninhado, mas foi a definição mais correta que encontrei ehauehau
"Ah, mas o que caralhos é switch"
Switch é uma estrutura de seleção que já tem um tutorial (antiguinho) aqui. Ele é comumente utilizado em menus etc, evitando a poluição do teu código com caralhadas de if/else/ else{if}.
Ao usar switch, a gente se separa com umas situações chatinhas. Um exemplo com uma função imaginaria:
char x; cin >> x; switch(x){ case 'a': abrirInventario(player); break; case 'A': abrirInventario(player); break; } Eu tenho duas condições diferentes, mas na prática a única diferença vai ser o capslock, então eu quero que independente das duas condições, no nosso caso da letra ser maiúscula ou minúscula, a função abrirInventario(player) seja chamada. Dá pra fazer uma "gambiarra" com o funcionamento da estrutura do nosso case..break, deixando assim:
char x; cin >> x; switch(x){ case 'a': case 'A': abrirInventario(player); break; } Bem mais legível, né? E com a mesma funcionalidade. Essa seria basicamente o case 'a' or 'A'/case 'a' || 'A' tão insistida por quem tá aprendendo essa estrutura heaehaue
Masssss: essa é uma brincadeira com o break, não é algo "bonito". Para ocupar poucas linhas com escolhas aninhadas e elegantes, recomendo operadores ternários.
-
Gabriel Netto recebeu reputação de tkskiller em Ajuda com SourcesSource = código fonte.
Para dar uma resumida, O que tu tem que saber é o seguinte: o The Forgotten Server (base OTServer mais usada), assim como a maioria dos jogos, é feito em C++, beleza? C++ é uma linguagem já antiga e tal, mas mesmo assim é extremamente importante e continua sendo usada. C++ é uma linguagem compilada. Ou seja, os programas são códigos em C++ (o código fonte), que contém todas instruções bases do teu programa (no caso, servidor), que é compilado num executável (.exe). No executável do teu servidor, ao abrir ele, é carregado as pastas data e mods, com funcionalidades adicionas feitas em linguagem de scripting (nesse caso é usado a linguagem lua, a linguagem de scripting mais rápida e a linguagem XML). A linguagem de scripting não precisa ser compilada como o C++ e é interpretada pelo executável do teu servidor.
Existem vários bugs no The Forgotten Server, e várias funcionalidades que só são viáveis de serem adicionadas no código fonte, por isso é recomendável tu pegar um servidor com source. Existe alguns servidores, como o Pokemon Dash Advanced, que a source foi perdida com o tempo. O servidor é bem completo, mas pra compensar, é cheio de bugs que só podem ser arrumados com a source e várias gambiarras pra adicionar algumas funcionalidades sem a source.
//Abaixo eu tô só adentrando de maneira bem vaga no assunto de compilação, se tu quiser ler... mas recomendo q pesquise na internet se realmente quiser saber sobre, já q eu dei uma bela resumida e falei umas coisas "pela metade" para ti entender.\\
"Mas o que é uma linguagem de médio nível?"
Linguagem de alto nível: linguagem de programação com alto nível de abstração. Traduzindo, é uma linguagem de programação mais próxima do entendimento humano do que do entendimento da máquina, deixando gerenciamento de coisas mais complexas como memória alocada e outras muitas, mas muitas, questoes tecnicas pro compilador fazer.
Linguagem de médio nível: um intermediário entre linguagem de alto nível e de baixo nível. Ela deixa algumas questões técnicas para o usuário lidar, como ponteiros (não precisa decorar esses termozinhos, eles são relacionados à programação msm)
Linguagem de baixo nível: são as linguagens mais próximas da linguagem da máquina, deixando o usuário lidar com todas questões técnicas do hardware na programação (como assembly), indo até a própria linguagem de máquina (que é os famosos 01011001, os números binarios), que não precisa ser compilada.
"Ta, mas o que é ser compilada?"
Bem, as linguagens, no geral, são resumidas em interpretadas e compiladas. Interpretadas são linguagens q dependem de outro software para serem executadas, e esse software vai transformá-la em linguagem de máquina. As compiladas, resumindo, dependem do compilador que vai transformar em código de máquina.
A linguagem compilada, uma vez compilada, pode ser executada independente dos softwares instalados, dependendo só do Sistema Operacional (coisa que o C++, a linguagem usada nos OTServs, se destaca, sendo compatível com a maioria dos sistemas operacionais se o programador a fazer compativel), já a interpretada não, ela depende sempre de outro software (como o Java. Pra ti rodar Minecraft no computador, tu precisa do Java baixado, porque Minecraft não tá compilado na linguagem de máquina, e sim na linguagem do software. Aí tu instalando o Java, o Java vai fazer com que o código seja transformado em linguagem de máquina qnd o minecraft for executado).
-
Gabriel Netto deu reputação a Guilherme em usando o switchbem, pra que serve o switch? o switch é uma função muito simple e fácil e serve pra você não ficar parecendo um retardado escrevendo milhares de códigos repetitivos e fazendo seu programa pesar, ficar feio e possivelmente dar erro.
sabe aquelas funções que vc fica escrevendo vários IFs? bem com o switch vc nao vai precisar fazer isso.
entao vamos lá:
Código
int opcao; cout << "1- primeira opcao" << endl; //Printa o texto (mesma função do print). endl é a quebra de linha cout << "2- segunda opcao" << endl; //Printa o texto (mesma função do print). endl é a quebra de linha cin >> opcao; //Cin é entrada de dados (teclado), mesma função do get. switch(opcao){ // vai pegar o valor que tu mandou através do cin >> opcao; case 1: // se vc digitar 1 cout << "vc escolheu a primeira opcao parabens" << endl; // vai aparecer isso break; case 2: // se digitar 2 cout << "vc escolheu a segunda opcao parabens" << endl; // vai aparecer isso break; default: // se digitar qualquer valor que nao seja 1 ou 2 cout << "vc digitou um valor que nao eh um ou dois" << endl; // vai aparecer isso break; } blz blz, mas iai não entendi ainda...
Você primeiro vai criar uma variável pra poder guardar o valor da opção que você vai escolher... e o nome da nossa variável se chama opcao.
depois disso, o case vai ver o que você digitou é correspondente com as opções existente, no caso se eu digitar o número 1, o case 1 vai ser "executado". Se eu digitar qualquer número que não existe dentro do case, ele vai executar o default... no caso, se eu digitar o número 3, que não existe case pra ele (neste tutorial), vai ser executado o que ta dentro do default assim exibindo a mensagem de erro. O default, age como se fosse um else.
flws...
-
Gabriel Netto recebeu reputação de danieltetet em como criar cliente proprio tibia 10.95?Recomendo que use OTCLIENT.
É totalmente configurável na hora de logar, tu pode escolhe a versão e o ip. (dá pra desabilitar isso e por o ip do teu server, assim criando um cliente próprio. Pesquisa tutoriais sobre no fórum.) Na vdd, tudo nele é facilmente editável, só ter conhecimento.
Download: https://docs.google.com/uc?id=0B77EtBbnvIOhS3dmUWRMRW1wREE&export=download
Se tu for paranóico, scan: https://www.virustotal.com/pt/file/8beed08294446357b44306a5951133ca58c365a0f77a075a8dbb81efec661ec9/analysis/1449933201/
(pode dar erro de dll, aí é só baixar elas no dllfiles)
-
Gabriel Netto deu reputação a NighteyeTV em [PEDIDO] Script AlavacaDependendo do TFS, se usar ele minúsculo da uns erros.
Quanto a parte de re-verificação, foi coisa do meu professor de Análise e projeto de sistemas. Que queria que fizesse algoritmos que não fosse determinado em tamanho ou algo do tipo, e sim em qualidade... Para que qualquer erro, mesmo do mais improvável possível possa ser resolvido.
Ae peguei mania
-
Gabriel Netto recebeu reputação de SomeBody em (Resolvido)Player Spawnar Em Lugares AleatóriosEstranho, eu testei aqui e funcionou
Tenta assim:
function onLogin(cid) --[[se quiser adicionar mais é só ir repetindo essa linha, aumentando no a = math.random(1, aumentaaq) e no elseif a == aumentaaq elseif a == 5 doTeleportThing(cid, {x = , y = , z = }) --põe a posição do quarto local doSendMagicEffect(getCreaturePosition(cid), 11) doPlayerSetTown(cid, POEAIDDACIDADEDOLOCAL) ]]-- if getCreatureName(cid) ~= "Account Manager" then if (getPlayerStorageValue(uid, 2319100816) < 1) then local a = math.random(1, 4) --por último tu põe o número de locais que pode nascer doPlayerPopupFYI(cid, "Põe o texto que vai aparecer ao logar pela primeira vez") if a == 1 then doTeleportThing(cid, {x = , y = , z = }) --põe a posição do primeiro local doSendMagicEffect(getCreaturePosition(cid), 11) doPlayerSetTown(cid, POEAIDDACIDADEDOLOCAL) elseif a == 2 then doTeleportThing(cid, {x = , y = , z = }) --põe a posição do segundo local doSendMagicEffect(getCreaturePosition(cid), 11) doPlayerSetTown(cid, POEAIDDACIDADEDOLOCAL) elseif a == 3 then doTeleportThing(cid, {x = , y = , z = }) --põe a posição do terceiro local doSendMagicEffect(getCreaturePosition(cid), 11) doPlayerSetTown(cid, POEAIDDACIDADEDOLOCAL) elseif a == 4 then doTeleportThing(cid, {x = , y = , z = }) --põe a posição do quarto local doSendMagicEffect(getCreaturePosition(cid), 11) doPlayerSetTown(cid, POEAIDDACIDADEDOLOCAL) end setPlayerStorageValue(cid, 2319100816, 1) end end return true end -
Gabriel Netto deu reputação a igorlabanca em Remover Equip Hotkey TFS 1.2Vai na pasta modules
abre o arquivo modules.xml e deleta a tag que contem o arquivo do sistema de equipar objeto por hotkey, aqui a tag está assim:
<module type="recvbyte" byte="119" delay="1000" script="equipobject/equipobject.lua"/>
-
Gabriel Netto recebeu reputação de SomeBody em (Resolvido)Player Spawnar Em Lugares AleatóriosTava acostumado com outra linguagem que eu to estudando, aí não tem o then dps do if, sorry ehahuehua
Ele serve pro primeiro login do jogador no servidor (nao vale pra jogadores q já existiam antes desse script), e dps da morte ele vai pro templo configurado no id.
O config.lua vai ficar meio inútil, tu não vai usar ele. Nem o id da cidade (que tu configura pelo remeres), nem a posição de spawn. Sempre que tu quiser configurar mais um spawn aleatório vai ter q adicionar nesse script ae
Quanto ao id da cidade, bem, é meio dificil explicar ehauehua basicamente toda cidade tem um id no remeres, se tiver id 1 ele vai nascer no templo id 1 sempre que morrer. No config.lua tu pode ver q ta configurado 1, isso ai tu tem q ver no teu mapa ;p
-
Gabriel Netto deu reputação a Digoshow em Fazer Enchanted small rubie não funcionar no item. [AJUDA]Isso mesmo, valeu obrigado! REP+ pra você!
Agora eu preciso tirar o efeito da Enchanted small rubies "ID:7760" sobre este item Shield Rainbow Shield "ID: 8905", tipo, fazer deste shield não encantavel!
-
Gabriel Netto recebeu reputação de Digoshow em Fazer Enchanted small rubie não funcionar no item. [AJUDA]Não, seria Ammunition o weapontype e o slot seria ammo
-
Gabriel Netto deu reputação a SomeBody em (Resolvido)Comando "Transformar" por StorageObrigado Amigo! Funcionou Certinho Rsrs.
Abraços!
-
Gabriel Netto recebeu reputação de SomeBody em (Resolvido)Comando "Transformar" por Storage@SomeBody,Faz assim, clica em formatar:
Converter para ANSI, e veja se ficou a bolinha preta do lado da Codificação em ANSI:
Aí é só dar ctrl+s pra salvar.
-
Gabriel Netto recebeu reputação de SomeBody em (Resolvido)Comando "Transformar" por StorageQue nada, como eu tô estudando ajudar tá sendo bem útil pra mim heuaheua.
Troca essa parte do código por essa:
local voc2 = porstorage[getPlayerVocation(cid)] if voc2 then if getPlayerStorageValue(cid, voc2[1]) >= 1 then if getPlayerLevel(cid) >= voc2[2] then doCreatureSay(cid, "Akatsuki!", TALKTYPE_MONSTER) doPlayerSetVocation(cid, voc2[3]) doCreatureChangeOutfit(cid, {lookType = voc2[4]}) doSendMagicEffect(getCreaturePosition(cid), voc2[5]) else doPlayerSendCancel(cid, "voce nao tem level para a akatsuki!") end else doPlayerSendCancel(cid, "Voce nao possui a akatsuki!") end else doPlayerSendCancel(cid, "Voce já esta na akatsuki") end return true end Percebi também q tu não poe acentos nos scripts. É porque dá erro qnd é mandada a msg? Se for isso, eu posso te ensinar como arrumar ;p
-
Gabriel Netto recebeu reputação de SomeBody em (Resolvido)Comando "Transformar" por StorageÉ bem simples arrumar isso. Man, eu me lembro que fiquei uma semana quase pesquisando, até um cara postar, é simples d+
Tu usa o notepad++ pra abrir os arquivos .lua?
-
Gabriel Netto deu reputação a L3K0T em Show Off site do meu Harry Potter - Gesior acc tfs 1.0xEae ?
Veja meu projeto: https://www.facebook.com/groups/harrypotterbrasileiro
-
Gabriel Netto recebeu reputação de SomeBody em (Resolvido)Comando "Transformar" por StorageDesculpa não ter te respondido antes, não apareceu a notificação aq pq eu não sigo os tópicos. Da um quote se tiver dúvidas ehuaheua
Troca a linha 33 por:
doCreatureChangeOutfit(cid, {lookType = voc1[3]}) Errinho idiota, esqueci de fechar as chaves. Nao to podendo testar pq tô sem server, aí ja viu ehauehua
-
Gabriel Netto recebeu reputação de samlecter em erro ao passar com o pokemon em cima do piso premiumEntão brother, não sou ele mas acho que posso te ajudar, apesar de ser iniciante ;p
Toda função exerce uma série de comandos qnd é chamada. Junto com isso, ela retorna um valor. Em C++ nós dizemos se o retorno vai ser um número inteiro, um quebrado, um quebrado com vários números após virgula, uma string, e uma variável (desse último não tenho ctz). Isso tmb vale pro que as variáveis vão alocar em C++. Já em lua nós n precisamos declarar o tipo da função antes de chamá-las, ent tu pode por o que quiser dps do return sem nenhum problema, apesar do mais comum ser um booleano. Na maioria das funções não vai mudar muito o return, mas em algumas como onKill (creatureevent). se tu por return false, o target não vai morrer, só vai zerar a vida e vai poder recuperar com qlqr magia de regeneração. Se for uma onLogout com return false o player não vai conseguir deslogar, mas se for uma onLogin não muda nd heauehau.
Pra saber o que cada booleano faz em cada retorno tu vai ter que estudar as funções nas sources ou lib
-
Gabriel Netto recebeu reputação de SomeBody em (Resolvido)Comando "Transformar" por StorageProntinho brother, acordei e fiz teu script. Dá pra ti escolher se quer que a transformação seja por level ou por storage xD
Exclui os dois scripts, tanto o de level qnt o de storage, e apaga as tags no .xml
Cria um .lua com um nome qualquer e adiciona isso:
Só editar conforme as vocs que tu quiser e adicionar as tags no .xml :D