Histórico de Curtidas
-
Joa1 Grasshopper deu reputação a AQuiLIX em Evolutions ServerAlguém poderia por favor fazer um passo a passo detalhado de como por esse servidor online?
Sei que muitos aqui tem amplo conhecimento e não precisão de ajuda, mas creio que a grande maioria tem um conhecimento relativamente baixo quanto a esses tipos de servidores, pois requer um conhecimento maior.
Gostei bastante das imagens do server e ja ouvir falar muito bem do Alissow, porem estou com muito dificuldade em por o servidor pra rodar e lendo os comentários vejo que faço parte de uma maioria.
Alguém poderia fazer um tutorial ou linkar um aqui?
Tenho certeza que iria chuver cliques no botão GOSTEI.
Desde já, agradeço.
-
Joa1 Grasshopper deu reputação a luanluciano93 em Página de Pagamentos [Depósito, Paypal e PagSeguro]Olá pessoal, nesses ultimos dias fiz uma página simples em HTML para pagamento pelo PagSeguro, porem decidi fazer uma mais completa , com 3 métodos de pagamento.
Como disse no tópico do PagSeguro HTML, esse código é bem completo, e serve para servidores mysqls e tbem sqlites, por ser bem simples de usar, dando para colocar online apenas com o apache, ou podendo apenas deixar como download em, por exemplo, uma fan page no Facebook ou hospedando em algum site (assim os players baixariam, e abririam no browser, assim podendo fazer o pagamento).
Como funciona? Você abre o bloco de notas, cria um arquivo, index.html, coloca o código que vou colocar abaixo, e basta fazer algumas alterações simples ...
Explicação do código:
Qualquer coisa posta aqui que eu ajudo. Se alguém souber melhorar o código de alguma forma, é só falar.
Deixei o arquivo html em download tbem, para editar é só clicar com o botão direito e abrir com bloco de notas.
É isso pessoal, espero ter ajudado, abração e até mais.
index.html
-
Joa1 Grasshopper deu reputação a fidao em Old Brabexia 7.1Galera, olhando alguns fóruns percebi que muita gente está atrás do famigerado brabexia, aquele mesmo do famoso RicarDog. Por fim, após pesquisar muito acabei encontrando um link no 4shared e decidi compartilhar aqui com vocês, afinal se alguém se comprometer a criar um dedicado eu ficaria muito grato.
Créditos ao usuário do 4shared pedroabdalla_77, caso alguém o conheça e saiba se ele é de algum fórum por favor, manifeste-se
link: http://www.4shared.com/rar/oAIiA5pjba/Brabexia.html?
scan: https://www.virustotal.com/pt/file/7e3d922ea90211a2d8b75e69f1153941360eae5d0710a5e7cd9d2e74a8156ac7/analysis/1434741066/
Brabexia.rar
LINK ATUALIZADO 11/02/2020
Caros amigos, após alguns anos ausente resolvi dar uma logada aqui no fórum e reparei que teve uma pequena demanda de pessoas que queriam o OT. Por sorte salvei ele em um HD externo e estou disponibilizando novamente aqui para todos junto do cliente 7.1.
Qualquer dúvida podem me contactar, tentarei ser mais presente no fórum. ?
Brabexia.rar
tibia710.exe
-
Joa1 Grasshopper recebeu reputação de valenca em de mysql para sql me ajudaVocê pode até colocar para poder optar entre os dois, mas vai ser difícil pra caralho. (Eu mesmo não sei fazer isso, precisaria de muita paciência e conhecimento).
-
Joa1 Grasshopper deu reputação a iErrorzz em Hospedagem de Servidor NarutibiaWeblara é Barata mais n tem proteção, ja vi 2 vps deles que Da 1 attack, a Vps reinicia sozinha, Nao recomendo !
-
Joa1 Grasshopper deu reputação a Lyu em Anti Divulgação em LUATestado apenas em TFS 0.4
Em "Data/talkactions", no arquivo talkactions.xml, adicione a tag:
<talkaction default="yes" filter="quotation" logged="no" hidden="yes" event="script" value="antidiv.lua"/> Em "Data/talkactions/scripts", crie um arquivo.LUA e renomeie para antidiv.lua, apague tudo e cole:
local words_, prev = {"org","no-ip","net","com","pl","biz","servegame","br","sytes","info"}, {".",",",";"} function onSay(cid, words) for _, w in ipairs(words_) do for _, p in ipairs(prev) do if(words:lower():find(p..''..w, 1, true)) then return doPlayerSendCancel(cid, 'You can\'t send this message.') end end end end Na tabela prev..
Você pode adicionar na tabela, o que vem antes de "net", "org" e etc..
ex : se eu adicionar um til "~", não vai dá pra divulgar assim : "www.etcetc~org"
{".",",",";"} Já existem 'ponto', 'vírgula' e 'ponto e vírgula' dentro da tabela.
Então é impossível divulgar dos seguintes modos :
entrem aqui otfodao.com
entrem nesse ot baiakzikaofodapakas,com
novo ot lançado hoje, entrem www.otnoob;net
Créditos : EU
-
Joa1 Grasshopper deu reputação a nookia em [Pedido] Quest global, quando ser feito, todos os players ganhar 2x de exp no ot todoPrimeiramente vá em actions.xml e adicione a seguinte tag:
<action uniqueid="5000" event="script" value="questXP.lua"/> Agora vá em actions/scripts e crie um arquivo questXP.lua e adicione dentro:
function onUse(cid, item, fromPosition, itemEx, toPosition) storageInicial = 500008 -- storage que marca a hora que a quest foi feita storageFinal = 500009 -- storage que marca quando a quest acaba if item.uid == 5000 then queststatus = 500010 time = os.time() if(getGlobalStorageValue(queststatus) == 1 and time > getGlobalStorageValue(storageTimeFinal)) then setPlayerStorageValue(queststatus, 0) end if getGlobalStorageValue(queststatus) == 1 and time < getGlobalStorageValue(storageTimeFinal) then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Alguém já alterou a exp do servidor, volte quando acabar.") else setGlobalStorageValue(storageTimeInicial, os.time()) doBroadcastMessage("O jogador "..getPlayerName(cid).." alterou a exp do servidor por 3 dias.") doSendMagicEffect(getPlayerPosition(cid), 65) setGlobalStorageValue(storageTimeFinal, getGlobalStorageValue(storageTimeInicial)+259200) setGlobalStorageValue(queststatus, 1) end end return TRUE end Agora vá em creaturescripts/scripts e abre o arquivo login.lua e encima do ultimo return true adicione:
if getGlobalStorageValue(500008) == 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A xp do servidor foi dobrada porque completaram a quest, aproveite.") doPlayerSetRate(cid, SKILL__LEVEL, 2.0) end Agora vá em globalevents.xml e adicione a seguinte tag:
<globalevent name="questTP" interval="7200000" event="script" value="questTP.lua"/> Agora vá em globalevents/scripts e crie um arquivo questTP.lua e adicione dentro:
function onThink(interval, lastExecution, thinkInterval) local config = { pos = {x=X, y=X, z=7}, -- Posição aonde sera criado o teleport topos = {x=X, y=X, z=X}, -- Posição pra onde o teleport ira levar o player tpid = 1387, -- id do teleport time = 15 -- tempo que o teleport ira sumir em minutos } function DelTp() local t = getTileItemById(config.pos, config.tpid) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(config.pos, CONST_ME_POFF) end end doCreateTeleport(config.tpid, config.topos, config.pos) doBroadcastMessage("Quest para a double XP foi aberto, o teleport que se localiza no templo e se fechara "..config.time.." minutos") addEvent(DelTp, config.time*60*1000) addEvent(doBroadcastMessage, config.time*60*1000, "Quest para a double XP foi fechada.") return true end Para adicionar a quest abre o RME e coloque o uniqueID = 5000 em qualquer lugar que deseja, flw.
-
Joa1 Grasshopper recebeu reputação de SilenceRoot em (Resolvido)[PEDIDO] spell de clonehttp://www.tibiaking.com/forum/topic/57937-spell-kage-bunshin/?hl=%2Bkage+%2Bbunshin
Se esse tutorial te ajudar, dá rep pra mim e pra ele. xD
(Tem que trocar na source tb, mas pode ser que já esteja trocado)
-
Joa1 Grasshopper deu reputação a Garou em Monstros PassivosMonstros Passivos
Sabe, esse é um dos sistemas mais desejados, da família dos sistemas que surgiram com os Pokétibias, depois do TV System.
Aquele sistema que faz com que existam monstros que não atacam você, se você não atacar ou usar magias antes. Não tem nenhum segredo, resolvi fazer o meu em Lua e C++ por puro comodismo.
Então vamos ao passo-a-passo.
No seu arquivo monster.h, procure por isso:
bool isHostile() {return mType->isHostile;} Troque por:
bool isHostile() const { std::string value; if(!getStorage("hostile", value)) return mType->isHostile; return booleanString(value); } No seu monster.cpp, procure por:
Monster::selectTarget Abaixo de:
if(!isTarget(creature)) return false; Adicione:
if(!isHostile()) return false; Crie um arquivo chamado passive_system.lua no diretório creaturescripts/scripts, cole isso:
PASSIVE_BEHAVIOR = {"Deer", "Rabbit"} -- Aqui ficam os monstros que não atacam, mesmo que atacados. function onCombat(cid, target) if isMonster(target) then if not isInArray(PASSIVE_BEHAVIOR, getCreatureName(target)) then doCreatureSetStorage(target, "hostile", 1) end doMonsterSetTarget(target, cid) end return true end No arquivo login.lua:
registerCreatureEvent(cid, "PassiveSystem") No arquivo creaturescripts.xml:
<event type="combat" name="PassiveSystem" event="script" value="passive_system.lua"/> Dê um Rebuild All no seu servidor, ou compile, deletando a pasta obj.
Para usar basta mudar a flag hostile do monstro para 0 no arquivo XML dele.
Boa diversão.
Abraços,
Oneshot
-
Joa1 Grasshopper deu reputação a xWhiteWolf em (Resolvido)Spell para ficar intocavelsó muda a spell e tira a condition invisible:
local config = { storage = 3482101, cooldown = 30, --- tempo entre um uso e outro duration = 5, --- duração effect1 = 29 -- efeito que sai ao falar a spell } function onCastSpell(cid, var) if os.time() - getPlayerStorageValue(cid, 55695) >= config.cooldown then setPlayerStorageValue(cid, 55695, os.time()) doSendMagicEffect(getCreaturePosition(cid), config.effect1) setPlayerStorageValue(cid, config.storage, os.time() + config.duration) doCreatureSay(cid,"UNTOUCHABLE!!!", 19) doPlayerSendTextMessage(cid, 27, "You have now ".. config.duration .." seconds of invulnerability.") else doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55695))).." seconds.") return false end return true end -
Joa1 Grasshopper deu reputação a luanluciano93 em setCreatureName(cid, name, description)Olá pessoal, eu estava ajudando um amigo em um script de Tibia Naruto, e me deparei com a necessidade de usar uma função para trocar o nome de um summon, mas isso teria que ser inGame, e depois de procurar um pouco achei a função setCreatureName, que faz exatamente o que eu precisava.
O que ela faz?
Como eu expliquei acima, ela muda o nome da Creature inGame, podendo ser bastante útil (dependendo da sua criatividade).
Como instalar?
A instalação é feita inteiramente nas sources, então vamos lá ..
1 - No arquivo monster.h encontre esse trecho:
class Monster : public Creature { private: Monster(MonsterType* _mType); public: E adicione isso abaixo de public::
std::string name, nameDescription; 2 - Ainda em monster.h procure por:
virtual const std::string& getName() const {return mType->name;} E substitua por isso:
virtual const std::string& getName() const {return name;} 3 - Ainda em monster.h procure por:
virtual const std::string& getNameDescription() const {return mType->nameDescription;} E substitua por isso:
virtual const std::string& getNameDescription() const {return nameDescription;} 4 - Ainda em monster.h procure por:
virtual std::string getDescription(int32_t) const {return mType->nameDescription + ".";} E substitua por isso:
virtual std::string getDescription(int32_t) const {return nameDescription + ".";} 5 - Agora em monster.cpp procure por:
Monster::Monster(MonsterType* _mType): Nas linhas abaixo tem a linha: raid = NULL; , adicione isso logo abaixo:
name = _mType->name; nameDescription = _mType->nameDescription;
6 - Agora em luascript.h adicione isso perto das linhas semelhantes:
static int32_t luaSetCreatureName(lua_State* L); 7 - Agora em luascript.cpp adicione isso perto das linhas semelhantes:
//setCreatureName(cid, name, description) lua_register(m_luaState, "setCreatureName", LuaInterface::luaSetCreatureName); 8 - Ainda em luascript.cpp adicione isso perto das linhas semelhantes:
int32_t LuaInterface::luaSetCreatureName(lua_State* L) { // setCreatureName(cid, newName, newDescription) std::string newDesc = popString(L); std::string newName = popString(L); ScriptEnviroment* env = getEnv(); Creature* creature; if (creature = env->getCreatureByUID(popNumber(L))) { Monster* monster = (Monster*)creature; monster->name = newName; monster->nameDescription = newDesc; lua_pushboolean(L, true); } else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } Pelo fato de algumas diferenças no modo de escrever a função entre as TFS, pode ocorrer erros, e então substitua as seguintes linhas dos 2 passos anteriores:
Créditos: Scarlet Ayeid
É isso pessoal ... um exemplo de uso dentro de alguma função é assim basicamente:
local pos = {x = 10, y = 10, z = 7} local Teste = doCreateMonster("Rat", pos) setCreatureName(Teste, ""..getCreatureName(cid).."", "a "..getCreatureName(cid).."") Espero ter ajudado pessoal, até mais.
-
Joa1 Grasshopper deu reputação a Fir3element em [9.86] The Forgotten Server 1.1 (x32 & x64)Tem muitas pessoas que ainda usam 9.86, e a engine dele (TFS 0.3.7) ta desatualizada e tem bugs.
Meu objetivo é ir até a versão 7.x com o TFS 1.x, vou liberando algumas versões aos poucos
-
Joa1 Grasshopper deu reputação a Fir3element em [9.86] The Forgotten Server 1.1 (x32 & x64)Apenas peguei a versão atual do TFS 1.1 (10.41) e dei downgrade para 9.86. Utilizei esta rev como base.
Qualquer bug que acontecer poste aqui no tópico.
Imagem
Links
Server: server-1.1_9.86.rar Source: source-1.1_9.86.rar Server (link 2): http://www.mediafire.com/download/el4rwk8p2kdeney/server-1.1_9.86.rar Source (link 2): http://www.mediafire.com/download/bkm6748mwkphcwf/source-1.1_9.86.rar Scan (server): https://www.virustotal.com/pt/file/e439ca648dcab08cae795e43a761a9505ff258c73909a0d34f63d10d4c3df51a/analysis/1427515177/ Scan (source): https://www.virustotal.com/pt/file/ba9f50e7b9eb2d7917d6bc1fdb7b4b7694e62ef1f88db50b9bf33bac665bc8e5/analysis/1427515071/ -
Joa1 Grasshopper deu reputação a Bruno Carvalho em Evolutions Server
Alissow Server
Provavelmente vocês estão pensando "mas que diabo de OT é esse?", afinal, já faz 1 ano desde que a ultima versão foi lançada.
A penúltima versão foi baixada mais de 50 mil vezes e esperamos que essa versão faça o mesmo sucesso.
By
Alissow
Comedinha
XedeguX
Objetivo do projeto:
Criar um servidor com base na versão mais atualizada do tibia com vários sistemas onde o mapa é feito para exploração com um grande nivel de RPG.
Sobre o OT/Mapa:
Principais quests:
-Annihilator
-Inquisition Quest
-Pits of inferno
-Demon Oak
-Solar axe quest
-HOTA
-MPA quest
Monstros:
-Total monstros: 15000+-
Cidades:
-10 Cidades
-220 Houses+-
Raids/Invasões:
-Rat
-Ghazbaran
-Giant spider/The old window
-Ferumbras
-Morgaroth
-Orshabaal
Spells:
-Magias balanceadas parecidas com a do tibia global
Changelog
https://github.com/comedinha/Alissow/wiki/Changelog
Imagens
Download
Servidor: GitHub
Tamanho: ~10 MB
Data Pack
TFS 1.2 (Executavel)
Atenção
- LEIA o tópico antes de postar qualquer coisa ou duvida
- Reportem se houver algum bug
- As estatuas de offline que ficam no templo não funcionam por serem enfeites
- Todos os addons são vendidos
- Para usar os portais você primeiro deve explorar a área indo até ela
- Tem alguns segredinhos e lugares escondidos muito legais para vocês descobrirem
- Se vocês perceberem o Alisson deu retired do mundo otserv e não participou dessa versão
O Servidor está inacabado.
Muitas coisas que foi planejado fazer nele não foram completas. Mas inacabado não quer dizer que não está jogável, quer dizer que faltou detalhar (Ex: x:55 y: 137 z: 9, x: 104 y: 140 z: 7)
E algumas coisinhas que não são tao importantes mas estavam planejadas por nós e no futuro podem ser adicionadas como warzone, quests, mais npcs e outros.
-
Joa1 Grasshopper deu reputação a Bruno Maciell em (Naruto) Naruto Legend 2.0 - Com Tp[8.54] Naruto Legend V2.0 - Com Teleports!
Informações:
- Novo Mapa RPG, com teleports (Com Levels);
- Novas Organizações (Akatsuki, anbu, sannin, shippuden, hokage, etc);
- Novas Transformações;
- 24 Vocações;
- Novos Jutsus;
- Novos Itens;
- Novos Sistemas e comandos;
- Novos Monstros;
- 3 Vilas;
- Ajeitei o servidor para rodar em sqlite (Account Manager já configurado).
- Sistema Premium (Com Premium Zone).
- Servidor 100% estável;
- E mais!
Prints
Download Servidor & Scan:
Download:
http://www.mediafire...1e54136t4b7855m
Scan:
https://www.virustot...sis/1355872674/
Download Client & Scan:
Incluso tibia.spr e tibia.dat!
Download:
http://www.mediafire...9fdj1y9nc4ta1fy
Scan:
https://www.virustot...sis/1355873069/
Créditos:
Tfs Team
Uffox
Wono-CJ
SmoOkeR
-
Joa1 Grasshopper deu reputação a Madarada em [Apostila Sprite Seduction]#1 - IntroduçãoSprite Seduction -INTRODUÇÃO -
Capítulo l Onde tudo começa • A importância da teoria
Você não é bom: Você não ficará bom em 1 semana 1 mês ou 1 ano,assim como qualquer coisa na vida spriting exige dedicação e foco.Busque sempre estar aprendendo e evoluindo de maneira sadia e com humildade,então se você está a 6 meses e acha que já está bom,eu aconselho que pense novamente; Talento x Esforço: você está spriteando à 6 meses e achou seu rendimento baixo,porque seu amigo que está à 1 mês é melhor do que você? Nunca se compare com outras pessoas,cada um tem seu tempo de desenvolvimento porém,não sejamos hipócritas existem sim pessoas talentosas e melhores do que você,se acostume; O olhar crítico: é importante se manter alerta sobre isso pois na maioria dos casos os iniciantes são por muitos bombardeados com elogios e que suas sprites estão magníficas,porque isso acontece?Muitos que fazem esses elogios acreditam que estão ajudando porém não estão pois,elogiando uma arte de nível básico - médio você está dizendo em outras palavras que está pessoa alcançou um nível razoável de spriting o que não é verdade. Dessa maneira você causa o efeito reverso,e faz estes mesmo acharem que alcançaram um nível avançado e pararem de buscar maior conhecimento.Os elogios são importantes porém se foquem nas críticas construtivas que será o seu combustível de desenvolvimento. • Spriteando de maneira efetiva
Não dispersar: quando comecei eu fazia tudo errado,começava uma espada fazia até a metade depois começava uma criatura,voltava para espada dava alguns toques e ia para criatura,depois começava outra criatura até a metade...Ou seja,eu nunca terminava nada,entendam que é de muita importância começar e terminar por completo todas as suas sprites,desse jeito você irá ver um avanço considerável; Esteja bem aparelhado: lembro que no meu início não existia muitos tutoriais,apenas aqueles que todos conhecem de Galiant e etc...porém nem por isso eu desisti,esteja sempre perguntando e pedindo dicas à pessoas mais avançadas e checando tutoriais. Não fique buscando maneiras milagrosas baixando photoshop,gimp,fireworks e toda essa porcaria,se foque em aprender a usar o paint, o Photoshop Cs6 é um dos poucos programas bons de se usar,porém isso eu só aprovo para aqueles de nível avançado; O poder do foco: estar focado é uma das coisas mais importantes,é o que vai fazer suas artes evoluírem,sempre esteja atento a seus erros e saiba reconhecer as criticas sem raiva,mais com sabedoria.Cada sprite é diferente e leva tempo para ficar pefeita por isso eu digo,nenhuma sprite fica perfeita feita em 1 dia,mesmo que feita por alguém experiente alguns erros passam despercebidos aos olhos pois geralmentes estamos cansados depois de 3-4 horas trabalhando de maneira intensa; Sendo mais produtivo: antes de spritear esteja numa cadeira confortável,seu mouse deve ser confortável também assim como ter um computador razoavelmente bom.Faça sem pressa,trabalhe por 2 horas depois vá fazer um lanche volte e faça mais 3 horas,assista um pouco de televisão,converse etc...Acorde no outro dia e abra a mesma sprite e refaça tudo denovo,é importante levar mais de 1 dia pois a capacidade cerebral é diminuída conforme você se estressa com o esforço.Nunca jamais tente fazer nada rápido ou correndo acreditem,vai ficar ó uma bosta. • Entendendo o pixel
O porque de começar do 0: muitos acreditam que usar uma "base" é algo interessante para iniciantes mais não é cada um tem uma ideia determinada de imagem.Por exemplo um mago na minha cabeça é Gandalf e na cabeça de fulano é Dumbledore ou seja,não use bases façam suas próprias bases do 0,vocês verão que as ideias fluiram com mais facilidade; Espelhamento reverso: lembra daquela sprite de ciclano que você viu e achou foda? então tenho uma má notícia você não vai conseguir fazer uma igual,simplesmente porque cada pessoa tem seu próprio estilo e isso é único,não tente copiar a sprite de alguém porque em outras palavras,você esta tentando copiar o estilo também e isso é praticamente impossível. Capítulo ll Perspectiva45º e sua origem • A ordem cronológica Tudo começou com o jogo chamado Ultima Online,foi um dos primeiros MMORPGs lançados,em 1997 pela Origin System.Já foi um dos três MMORPGs mais jogados no mundo e é situado em cenário medieval.O criador do jogo é Richard Garriot,o mesmo criador de Ultima Vll e Lineage ll.
Ainda no mesmo ano,foi lançado nosso tão querido Tibia desenvolvido pela CipSoft. Criado em 1997, é um dos jogos mais antigos do gênero. Nele, os jogadores podem desenvolver as habilidades de seus avatares, buscar tesouros, resolver enigmas e explorar áreas como cidades, masmorras, florestas, desertos, ilhas, praias, minas, etc..Os personagens podem disputar lutas entre si ou com criaturas, tais como: monstros; dragões; demônios; orcs e etc...
• A explosão dos Otservers Algum tempo depois,programadores e jogadores de tibia viram um potencial no jogo e com seu esforço conseguiram trazer o Otservers,que seriam servidores alternativos de Tibia hosteados por uma empresa ou pelo próprios donos em suas residências,onde experiência,loot,monstros e cenários eram totalmente configuráveis. Com a ascensão dos Otservers Tibia Global perdeu um pouco de seu espaço,uma vez que os Otservers eram servidores totalmente surreais entretanto,faltava algo mais,algo que estaria por vir... • Brasileiros na perspectiva45 e a nova ordem Com a popularidade dos otservers muitos viram uma maneira de lucrar,dessa maneira os otserver não apresentavam somente nova jogabilidade mais também novos gráficos,eis que surge um tsunami de servidores derivados de diferentes temas,dentre eles tibia gta,tibia harry potter,narutibia,resident tibia,tibia digimon,poketibia entre outros...
Com a inovação de temas e possibilidades muitos viram um grande interesse na perspectiva45,em meados de 2009 a comunidade brasileira estava a todo vapor em busca de conhecimento.A evolução dos spriters brasileiros era consideravelmente boa e em fóruns os tópicos eram abarrotados de membros buscando por tutoriais,um membro muito importante para comunidade e conhecido como pai da comunidade foi Galiant,entretanto algo mudaria tudo no cenário brasileiro... Capítulo lll A Evolução da perspectiva45 e a era top down • O gráfico se aprimorando Precisamente em 07-07-2010 Galiant deu ínicio ao que seria o porto seguro de spriters profissionais,o perspective 45 era um fórum destinado à spriters profissionais e de lá sairiam grandes artistas. Durante o tempo muitos artistas ganharam destaque por serem chamados para trabalhar em projetos notórios como Zezenia Online e Phobos.
• Top down e seu sucesso aparente
Passado tempo o interesse pela perspectiva45 veio diminuindo e o nível de spriters no Brasil caiu bastante,uma vez que os antigos mestres agora tinham suas obrigações,trabalho e uma vida agitada como pessoas normais. A comunidade de spriters brasileiros começou a declinar gradativamente,outrora o que era a sensação dos otservers a p45 deu espaço para seu algoz que seria a perspectiva Top down. A perspectiva top down surgiu em meados de 2012 (se não me engano) quando jogadores e programadores decidiram exportar sprites de game boy advanced e game boy color para dentro de seus otservers,aparentemente uma ideia estúpida porém,a comunidade brasileira e também polonesa adorou a ideia eis que a famosa PXG se tornou febre entre os poketibias. Mês após mês derivados surgiram,buscando a mesma consagração da PXG uma vez que misturava p45 com top down.Apesar de causar uma rude incongruência gráfica os jogadores não se importaram,uma vez que poderiam reviver suas lembraçans de quando jogavam gameboy color em uma fita porém com muito mais qualidade (ou não).
• Fim da perspectiva45 ? Com os interesses de lucrar à todo custo foi deixado de lado a perspectiva45,uma vez que sprites top down eram deveras mais simples e mais fáceis de se fazer,dessa maneira os jogadores foram se acostumando com gráficos de péssima qualidade assim caindo nas graças do conformismo.Existiram alguns projetos de qualidade na perspectiva que resistiram ao maligno top down ,como por exemplo Shinobi Online entre outros...
Desde então alguns spriters simplesmente pararam seus projetos,pois não há perspectiva de se competir com grandes empresas como estas citadas,e com o fim do ex-maior fórum de Otserver o tibiaking,tantos os veteranos quanto os amadores ficaram sem um rumo certo.
Próximo tutorial em breve...
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tutorial feito por:
Madarada
Crédito de Imagens:
Tibiabrfóruns
Perspective45
André Galiant
Iven miller
Erick Etchebeur
Lucas Melo
Wikipédia
-
Joa1 Grasshopper deu reputação a Madarada em [TUTORIAL] Humanóide BásicoOlá Tibianos,meu nick é Madarada e hoje venho lhes trazer um tutorial básico de spriting,espero que gostem.
Antes de começarmos quero deixar claro que :
Este tutorial foi feito com base em meus conhecimentos em spriting,ele não é uma verdade absoluta apenas um material desenvolvido e voltado para todos os membros iniciantes em nesta área.
Este tutorial é minuciosamente detalhado e foi desenvolvido para leigos e iniciantes em spriting
Neste primeiro tutorial iremos abordar um assunto muito importante que se chama outline.Futuramente virão tutorias de outline de monstros,armas,cenários mais por enquanto apenas humanóide.
1. Outline (humanóide)
# Outline o que é ?
Outline do inglês (linha de fora) é o contorno do sprite
l - Criando uma base
- Primeiramente devemos localizar e abrir o Ms paint do windows,ele será nossa ferramente principal e nós ajudará em nossa jornada.
- Antes de começar devemos habilitar nosso abiguinho "miniatura" ele fica no canto superior como na imagem abaixo:
- Em seguida selecione um sprite para usar como base,eu uso o citizen por ser bem simples contudo,algumas pessoas preferem fazer uma outline do zero o que eu acho que para um iniciante um tanto avançado.Seguindo o exemplo do citizen pinte o todo de vermelho (por ser uma cor bem saturada) porém sem atingir as linhas principais que separam as pernas,cabeça,braço e olhos como no exemplo:
- Feito isso contorne as linhas as principais de preto (são as linhas contornadas de verde) para limpar o sprite todo.Pinte a parte interna da arte de branco como no exemplo para começarmos.
ll - Aprimorando sua base
- Pronto agora temos nossa base,porém ela ainda é um citizen então iremos criar o nosso próprio personagem.Para isso precisamos nos basear em alguma imagem (se você tem o dom de desenhar pode criar uma roupa para sua base e pular esta parte).Vamos nos fixar em fazer os detalhes mais básicos,por isso eu peguei está de um camponês medieval bem simples:
- Como próximo passo iremos analisar a roupa do campones e tentar reproduzi-la em nossa base.Para facilitar iremos copiar a imagem do campones para dentro do paint e coloca-lo de canto,dessa maneira podemos observar a todo instante se a reprodução da imagem está correta:
- Iremos começar pelo cabelo,essa parte pode ser fácil falando,mais deve ser feita com atenção para um bom resultado mais tarde.Primeiramente iremos selecionar a cor azul e fazer um rabiscado de cabelo caindo sobre os ombros,aos poucos vamos adaptando ele á cabeça e criando forma.
- Na sequência,devemos tirar a margem de erro melhorando o cabelo e arredondando-o de uma maneira coerente à nossa imagem.Os pixels vermelhos devem ser removidos e pintados de branco,e os pixels verdes devem ser adicionados e pintado de azul.Segue abaixo um ilustrativo:
- Após feito isso devemos colorir a margem de preto para tornar o cabelo parte da outline.Em rosa estáo os pontos aonde devem ser adicionado pixels preto:
- Com o cabelo terminado agora iremos direto para a cota de malha e mangás da roupa.De início iremos fazer uma blusa na parte superior do corpo.
- Com a primeira parte da cota de malha pronta seguiremos para a segunda parte.Vamos começar fazendo pequenas alças nos extremos da blusa,cor cinza para podermos diferir as duas blusas.Aos poucos vamos prenchendo e seguindo com uma gola V.
- Finalizando iremos terminar a calça e a bota.Fazendo a traçado curvado vamos dando forma á bota.
lll - Acabamento Final
- Por fim adicionamos detalhes na bota dando um pouco de volume e melhorando sua aparência
- Depois vamos usar o conta gotas e pegar as cores da roupa do campones
- Tcharaam está pronto nossa primeira outline de humanóide
Espero que tenham gostado do tutorial, agradeço à todos que tiveram paciência de ler até o fim rsrs
Próximo tutorial em breve...Quem gostou deixa aquele REP+
- ABRAÇOS -
-
Joa1 Grasshopper deu reputação a Nechros em Free for use!Tutorialzinho pra fazer folhagens,
Usei essa técnica pra fazer a arvore de cima. Pode ajudar alguém
C achar q vale a pena pode dar REP++ ai, n sei pra q serve, mas pelo jeito ajuda ja q tanta gente pede haha
-
Joa1 Grasshopper deu reputação a Avuenja em [Dúvida] Sources Editar?Olá a todos gostaria de saber como mudar as sources pq eu quero criar um server com novas vocations, magias, tipo uma nova história!
Se alguem puder me ajudar agradeço!
-
Joa1 Grasshopper deu reputação a esnio12 em [Ajuda] NaruTibia 7.81 PromotionBom, para criar um servidor do zero, já que no caso você quer de naruto, teria que ter as soucers para adicionar novos comandos, pois essa versão é muito limitada, É possivel transformar um 8.54 em um 7.81 sim, mas só com programação e um pouco de scripts, eu mesmo já tentei fazer isso, só que não entedia muito das áreas e dessisti
-
Joa1 Grasshopper deu reputação a esnio12 em [Ajuda] NaruTibia 7.81 PromotionA diferença é a limitação da versão 7.81, a versão 7.81 não tem muito a oferecer, já a versão 8.54 possui mais funções, sistemas e soucers atualizadas, acho que as soucers 7.81 estão extintas, principalmente a do DNO normal, o própio servidor DNO tem muitos bugs integrados nele mesmo nos quais é possivel derruba-lo, já fui dono de servidor de naruto 7.81, retirei a maioria dos bugs deles, mas tem uns que só são possiveis ser retirados se tiver as soucers em mãos e uma noção médiana sobre programação daquela versão .
Bom, aqui vão os npcs, Anbu Medinin e akatsuki itachi, lembrando não testei nenhum, ambos fiz de cabeça
Para akatsuki
Para anbu
-
Joa1 Grasshopper deu reputação a Slaake em [Tutorial] Criando novas Vocations (e o npc)Eae galerinha do TK, como vocês estão ? Bom, eu resolvi criar um tutorial aki, bom, ja há um tutorial aki, mas achei mal organizado e talz, e vou explicar coisas a mais aki tmbm.
Nesse tutorial, vou ensinar voces a como adicionar novas vocations, e, como recebe-las por um npc de promotion.
Vamos la ?
1º Vá em data/xml/vocations.xml e provavelmente estará assim:
<?xml version="1.0" encoding="UTF-8"?> <vocations> <vocation id="0" name="None" description="none" needpremium="0" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="10" gainmanaticks="6" gainmanaamount="10" manamultiplier="4.0" attackspeed="1000" soulmax="100" gainsoulticks="120" fromvoc="0" attackable="no"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="2.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="15" gainmanaticks="2.5" gainmanaamount="45" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="1"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="2" name="Druid" description="a druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="15" gainmanaticks="2.5" gainmanaamount="45" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="2"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="3" name="Paladin" description="a paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2.5" gainhpamount="35" gainmanaticks="3" gainmanaamount="35" manamultiplier="1.4" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="3"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="4" name="Knight" description="a knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="3" gainhpamount="50" gainmanaticks="3" gainmanaamount="25" manamultiplier="3.0" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="4"> <formula meleeDamage="1.1" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="5" name="Master Sorcerer" description="a master sorcerer" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="3" gainhpamount="30" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="1" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="6" name="Elder Druid" description="an elder druid" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="3" gainhpamount="30" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="2" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="7" name="Royal Paladin" description="a royal paladin" needpremium="1" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2.5" gainhpamount="40" gainmanaticks="2.5" gainmanaamount="50" manamultiplier="1.4" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="3" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="8" name="Elite Knight" description="an elite knight" needpremium="1" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="50" gainmanaticks="3" gainmanaamount="40" manamultiplier="3.0" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="4" lessloss="30"> <formula meleeDamage="1.1" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="9" name="Epic Master Sorcerer" description="an master sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="40" gainmanaticks="2" gainmanaamount="70" manamultiplier="1.1" attackspeed="1900" soulmax="299" gainsoulticks="15" fromvoc="5" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="2.0" magDamage="1.2" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="10" name="Epic Elder Druid" description="an elder druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="40" gainmanaticks="2" gainmanaamount="70" manamultiplier="1.1" attackspeed="1900" soulmax="299" gainsoulticks="15" fromvoc="6" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="2.0" magDamage="1.2" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="11" name="Epic Royal Paladin" description="an royal paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="3" gainhpamount="60" gainmanaticks="3" gainmanaamount="60" manamultiplier="1.4" attackspeed="1900" soulmax="299" gainsoulticks="15" fromvoc="7" lessloss="30"> <formula meleeDamage="1.1" distDamage="1.1" wandDamage="1.0" magDamage="1.1" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="12" name="Epic Elite Knight" description="an elite knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="8" gainhpamount="70" gainmanaticks="4" gainmanaamount="50" manamultiplier="3.0" attackspeed="1900" soulmax="299" gainsoulticks="15" fromvoc="8" lessloss="30"> <formula meleeDamage="1.2" distDamage="1.0" wandDamage="1.0" magDamage="1.1" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> </vocations> <?xml version="1.0" encoding="UTF-8"?> <npc name="Second Promotion" script="data/npc/scripts/second.lua" walkinterval="2000" floorchange="0"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="133" head="114" body="119" legs="132" feet="114"/> </npc> local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local node1 = keywordHandler:addKeyword({'promot'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can promote you for 20000 gold coins. Do you want me to promote you?'}) node1:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 20000, level = 20, promotion = 2, text = 'Congratulations! You are now promoted.'}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) --[[ local node2 = keywordHandler:addKeyword({'epic'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can epicize you for 200000 gold coins. Do you want me to epicize you?'}) node2:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 200000, level = 120, promotion = 2, text = 'Congratulations! You are now epicized.'}) node2:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) ]]-- npcHandler:addModule(FocusModule:new()) cost = 20000, level = 20, promotion = 2, text = 'Congratulations! You are now promoted.'})
cost= é o preço que a promotion irá custar.
level= é o level necessário para adquirir a promotion.
promotion= foi a promotion adicionada (2=9;10;11;12)
text= é a mensagem que vai aparecer quando o Player receber a promotion.
Bom, é isso galera, espero ter ajudado vocês
, até a proxima
Créditos:
Slaake (por ter criado o tutorial)
2º: Agora para voce adicionar, basta colocar esta linha (lembrando, caso voce queira por para npc, voce tem que sempre adicionar 4 (sorc,druid,pala e kina) se nao pode bugar o server. Adicione esta parte: Pronto! Sua vocation está criada, agora, vamos criar um NPC que venda essa promotion. 1º Vá em data/npc copie qualquer arquivo .xml renomeio para second promotion, abra-o, apague tudo que estiver la, e coloque isto: 2º Vá em data/npc/script , copie qualquer arquivo .lua renomeio para second, abra-o,apague tudo que estiver la, e coloque isto: Explicações de oque e onde mudou: -
Joa1 Grasshopper deu reputação a MonsterOt em [Tutorial] Criando novas Vocations (e o npc)bom, isso qualquer ot tem... muito simples... sei lah
tenta explica oq cada um faz tipo:
<vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="15" gainmanaticks="2.5" gainmanaamount="45" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="1">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/>
name="Sorcerer" (NOME DA VOC)
description="a sorcerer" (QUANDO ALGUEM FOR DA LOOK VAI LER ISSO
needpremium="0" (PRECISA DE PREMIUM PRA VOC?)
gaincap="10" (QUANTO DE CAP GANHA AO PASSAR 1 LV)
gainhp="5" (QUANTO GANHA DE HP AO PASSAR 1 LV)
gainmana="30" (QUANTO GANHA DE MANA AO PASSAR 1 LV
gainhpticks="4" (QUANTOS SEGUNDOS VAI DEMORAR PARA O PLAYER RECOPERAR VIDA QUANDO COME FOOD)
gainhpticks="4" (QUANTO DE VIDA VAI GANHAR AO COME FOOD ALI EM CIMA OS SEGUNDOS Q VAI DEMORAR...)
E ASSIM POR DIANTE...
Chuck Don't Aprove