Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 09/25/16 em todas áreas
-
[C ] Level System in monster [0.3.6]
Raskgames e 7 outros reagiu a Deadpool por um tópico no fórum
Boa tarde, venho compartilhar o código feito por @Oneshot, com adaptação para tfs 0.3.6 (854). Bem, ele postou para tfs 0.4 (860), dai eu só mexi em umas linhas parar funcionar no tfs 0.3.6(854), dai vou compartilhar com vocês. Com o monster level system, o monstro passa a ter level e ganha mais HP, dá mais dano, tem mais defesa, dependendo dele. monsters.h procure por: bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth; Substitua por: bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth, hideLevel; Procure por: int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance; Substitua por: int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance, levelMin, levelMax; monsters.cpp Procure por: canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false; Substitua por: canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = hideLevel = false; Procure por: baseSpeed = 200; Logo abaixo, adicione: levelMin = levelMax = 1; Localize: if(readXMLInteger(p, "max", intValue)) mType->healthMax = intValue; else { SHOW_XML_ERROR("Missing health.max"); monsterLoad = false; } } abaixo adicione: else if(!xmlStrcmp(p->name, (const xmlChar*)"level")) { if(!readXMLInteger(p, "max", intValue)) mType->levelMax = 1; else mType->levelMax = intValue; if(!readXMLInteger(p, "min", intValue)) mType->levelMin = mType->levelMax; else mType->levelMin = intValue; } procure por: if(readXMLString(tmpNode, "shield", strValue)) mType->partyShield = getPartyShield(strValue); logo baixo adicione: if(readXMLString(tmpNode, "hidelevel", strValue)) mType->hideLevel = booleanString(strValue); Monster.h Procure: virtual ~Monster(); std::string name, nameDescription; abaixo adicione: std::string name, nameDescription;int32_t level;double bonusAttack, bonusDefense; Procure: virtual const std::string& getName() const {return mType->name;}virtual const std::string& getNameDescription() const {return mType->nameDescription;}virtual std::string getDescription(int32_t) const {return mType->nameDescription + ".";} Substitua por: virtual const std::string& getName() const {return name;}virtual const std::string& getNameDescription() const {return nameDescription;}virtual std::string getDescription(int32_t) const {return nameDescription + ".";} Monster.cpp Logo abaixo de: isIdle = true; Adicione: name = _mType->name;nameDescription = _mType->nameDescription;level = (int32_t)random_range(_mType->levelMin, _mType->levelMax, DISTRO_NORMAL);bonusAttack = 1.0;bonusDefense = 1.0; Procure por está função: Monster::onCreatureAppear Apague e coloque está função: void Monster::onCreatureAppear(const Creature* creature){ Creature::onCreatureAppear(creature); if(creature == this) { //We just spawned lets look around to see who is there. if(isSummon()) { std::string value;// this->master->getStorage((uint32_t)"1996", value); this->master->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; isMasterInRange = canSee(master->getPosition()); } if(g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { this->healthMax = std::floor(this->getMaxHealth() * (1. + (0.1 * (level - 1)))); this->health = this->healthMax; this->bonusAttack += (0.01 * (level - 1)); this->bonusDefense += (0.005 * (level - 1)); } updateTargetList(); updateIdleStatus(); } else onCreatureEnter(const_cast<Creature*>(creature));} Substitua todos: g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) Por: g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) * bonusDefense Substitua todos: g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) Por: g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) * bonusAttack Map.cpp Procure por: #include "game.h" Adicione em baixo: #include "configmanager.h" Procure por: extern Game g_game; Adicione em baixo: extern ConfigManager g_config; Procure por está função: bool Map::placeCreature(const Position& centerPos, Creature* creature, bool extendedPos /*= false*/, bool forced /*= false*/){ Abaixo do " { " adicione: Monster* monster = creature->getMonster(); if(monster && g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { uint8_t level; if(!monster->getMonsterType()->hideLevel) { if(monster->isSummon()) { std::string value;// monster->getMaster()->getStorage((uint32_t)"1996", value); monster->getMaster()->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; } else level = monster->level; char buffer [10]; monster->name = monster->getName() + " [" + itoa(level, buffer, 10) + "]"; } } configmanager.h Procure por: ADDONS_PREMIUM, e abaixo adicione logo em baixo: MONSTER_HAS_LEVEL, configmanager.cpp procure por: m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true); e logo em baixo adicione: m_confBool[MONSTER_HAS_LEVEL] = getGlobalBool("monsterHasLevel", true); no Config.lua adicione: monsterHasLevel = true -- true para monstros nascerem com level, false para não nascerem com level São muitas modificações para fazer, mas o resultado é garantido e é uma funcionalidade a mais para seu servidor. Como está programado, a cada level, monstros ganham 10% de HP, 1% de dano e 0.5% de defesa. Para configurar level mínimo e máximo, é só adicionar no XML do monstro: <level min="1" max="10"/> -- level minimo, level maximo E alterar a seu gosto. Se você fizer certo irá ficar assim: Créditos: @Oneshot8 pontos -
PokeCamp - Client
steelpzeza e 3 outros reagiu a LionM por um tópico no fórum
4 pontos -
Isso pode ser feito por c++, caso eu chegue a 550 rep, posto um tutorial :33 pontos
-
ModernAcc - DarkXpoke
BrunooMaciell e um outro reagiu a Deadpool por um tópico no fórum
Fala galera, este website que eu por fim editei quando pretendia deixar meu servidor online, como não vou mais usa-lo, pois estou usando Gesior com um novo projeto, irei liberar para vocês. O site contem: Escolha de pokémon inicial no site; Cidades; Está 100% adptado para o DarkXpoke, então, só baixem, e coloquem seu IP e fim, está pronto para uso! Aaaah, eu não fiz o design. Mas está bem simples, do jeito que eu gosto. Vejam algumas imagens: Conta Logada no Site: Conta não Logada: Informações dos Personagens: Guildas ft Status do Server: Criação de Contas: Bem, unica coisa que eu não adicionei, foi o SHOP! Mas isso é facil! Qualquer duvida/erro, só postar. Se eu não estiver ausente, ajudarei!! DOWNLOAD DO SITE: htdocs5.rar USEM ESSA DB: sekaidbrpg.rar Cliente do meu servidor que talvez, eu irei postar. Com a interface SUPER LIMPA, sem warnings, com a pokedex já instalada, sem erro algum: Creditos: Criador do Layout/Site; Adptação pokémon(Eu) htdocs5.rar2 pontos -
Este sistema de HM é o seguinte, o pokémon só poderá usar suas habilidades após um HM ser aplicado nele, como no GBA. Vai em data/actions/action.xml e cole <action itemid="ID DO HM" script="HMs/HMFly.lua"/> <action itemid="ID DO HM" script="HMs/HMCut.lua"/> <action itemid="ID DO HM" script="HMs/HMSurf.lua"/> <action itemid="ID DO HM" script="HMs/HMRide.lua"/> <action itemid="ID DO HM" script="HMs/HMFlash.lua"/> <action itemid="ID DO HM" script="HMs/HMRock Smash.lua"/> Agora crie uma pasta dentro de data/actions/scripts chamada HM's dentro da pasta cole os seguintes arquivos: Sprites dos HM's Créditos Bluester HMCut.lua HMFlash.lua HMFly.lua HMRide.lua HMRock Smash.lua HMSurf.lua2 pontos
-
[DLL] Extende seu OLD CLIENT
antiguerwar e um outro reagiu a Deadpool por um tópico no fórum
Boa noite galera. Não sei bem se está é a área correta, mas bora lá. Apresento-lhes a famosa dll, que burla o limite de sprites de seu old cliente (cliente antigo, cliente da cipsoft), bem, me passaram e deu vontade de postar para vocês, testei no cliente 8.54 e funcionou de boas. Em outras palavras, ela extende o seu cliente, assim como o otcliente. Pra quem ainda não entendeu, ela aumenta o limite de sprites suportado pelo seu cliente. Download DLL: extended.rar Tutorial de uns gringo ensinado a Rookar e usar no .exe. Créditos: Pokémon Master extended.rar2 pontos -
ajudem a alterar esse script
wevertonvrb e um outro reagiu a Poccnn por uma questão
getCreatureName(cid):find("shiny")2 pontos -
[DLL] Extende seu OLD CLIENT
leozinpbb e um outro reagiu a Deadpool por um tópico no fórum
Haha, qualquer coisa tamo ai! Eu só testei em 8.54, porque estou com um projeto e to sem tempo, se alguém quiser ficar a vontade e tentar rookar para outras versões.. a vontade2 pontos -
[DLL] Extende seu OLD CLIENT
leozinpbb e um outro reagiu a Deadpool por um tópico no fórum
Você vai pegar essa DLL hookar ela em um .exe, Vocês vão estender a spr e o dat de vocês. Vocês vão pegar o dat e renomear para dat2.dat e vão pegar a Tibia.dat sem estender e vão jogar no cliente (A Tibia.dat será mais uma ponte para puxar a dat2.dat estendida)2 pontos -
Tibia Full (Mapa Global Igual Ao Global Original)
danielpires reagiu a Kurobisu por um tópico no fórum
Tibia Server Mapa Global Eae pessoal, venho trazer a vocês um servidor de Tibia com mapa igualzissimo ao do Tibia Original. Com Rookgard e muito mais, claro não fui eu quem fiz este servidor magnifico. Mais venho traze-lo para vocês fazerem dele sua base e ter um servidor muito melhor de Tibia. Como nós sabemos nenhum servidor vem sem bugs, então é issu vo postar algumas imagems e espero que gostem. Muitas coisas ainda vocês terão de configurar como onde o player ínicial irá nascer e etc.. Este servidor estava sendo utilizado com site então você terá de fazer suas auterações. Cidades Newbie Island (Rookgaard) + Island of Destiny Ankrahmun Ab'Dendriel Carlin Darashia Edron Yalahar Kazordoon Liberty Bay Port Hope Svargrond Thais Venore Farmine Zao Cormaya Algumas imagems: Como eu ja disse este servidor não foi eu em que fui, mais venho pelo o menos trazer a vocês. Créditos Dener Diegoli Team e ao Membro Shekys do xtibia por contribuições enorme no projeto. Kurobisu (Por Trazer aqui pro Xtibia) Downloads OTServer Completo: >>( Kurobisu Download Otserv )<< Download Client Normal de Tibia 8.6: >>( Kurobisu Download Client )<< Download do SqliteStudio para quem for usar via account manager: >>(Kurobisu Download SqliteStudio)<< O 4Shared ja tem seu proprio ( Scanner ) então pelo visto não precisa. Estou também abrindo este tópico para caso alguém tenha alguma dúvida ou ache algum bug possa reporta-lo para mim, e eu concerteza tentarei ajuda-lo. Então como muitos sabem o tópico deve ter regras, e aqui não será diferente. Regras Poste suas dúvida aqui caso tenha alguma, caso acho algum bug poste aqui também. Tentarei ajudar o maximo possivel. Gosto do tópico? Lhe ajudei?Rep+ Não ajudei? Tentarei melhorar1 ponto -
Salve galera! Como estou parando com pokétibia vou liberar a base do PokeCamp para vocês, a source que contém nela é a source mais próxima da original do PDA, então façam bom proveito. Uma base muito boa para começar um projeto, pelo fato de ser PDA e uma source limpa e organizada. Changelog 0.1 Prints:1 ponto
-
Boa tarde galera. Ideia inicial: Bem, eu sou muito fã de Anime/Mangá de Naruto. Então, já que tinha por ai, um spr e dat com um gráfico, eu resolvi fazer um servidor basado no mundo de Naruto. Mas com ideias e plataforma diferente(não é tão diferente, porque existem 2 servidores atualmente com uma grande equipe, que podem fazer um ótimo game.) que os servidores de hoje em dia oferecem. Sobre o nome do projeto ser Shinobi Online, irei explicar o motivo. Bem, minha ideia inicial para o servidor é: O jogador, será um Shinobi/Ninja normal, e não um dos protagonistas do anime. Mas calma lá. O jogador poderá escolher seus pais e aldeia.(lembrado que cada pais tem sua aldeia, e toda aldeia possui seu clã.) entrando no clã escolhido por o jogador, ele poderá aprender os jutsus que quiser, de acordo com o elemento/kekkei genkai que ele vai herdar ao entrar no clã escolhido, E bem, sobre o nome Shinobi Online, eu não pensei em outro. O jogador será um Shinobi, e o jogo será um MMORPG. Então, eu deixei o mais obvio, Shinobi Online, e sim, eu posso usar, a menos que alguém registre essa marca. Não é uma copia, e também não tem nada a ver com o antigo Shinobi Online, a não ser a logo, que eu gostei, e mandei um amigo refazer para mim. Sobre o Game: Graduações: Missões: Jutsus: Imagens: Bem galera, eu tenho varias coisas listadas para que o Shinobi Online possa cumprir seu papel como um Game diferenciado! Podem comentar suas duvidas, criticas, e até sugestões. Fã page: https://www.facebook.com/ShinobiOnline/?fref=ts1 ponto
-
[Rides/Fly] de lendários e megas
Josegvb reagiu a KarlKalvin por um tópico no fórum
1 ponto -
PokeCamp - Remakes
Silveira Crtba reagiu a LionM por um tópico no fórum
Disponibilizarei os remakes do PokeCamp, junto a sua SPR inteira. Print: Créditos a Lulampo e Edilsonfs1 ponto -
Otserv, O que mudou?
Alexclusive reagiu a Administrador por um tópico no fórum
• OTSERV, O QUE MUDOU? Salve Xtibianos e "anas"! Como sabemos, nos últimos tempos o cenário Open Tibia tem se modificado drasticamente. Quando conversamos sobre esse assunto, sobre mudanças, é muito comum os mesmos argumentos, seja sobre o comércio ilegal, seja sobre a atuação do poketibia, alguns arriscam dizer que o fracasso da cipsoft está envolvido. Mas na verdade, muitos defendem a ideia de que se viu um contraste formado pela transição de gerações que atuaram/atuam em Open Tibia. Muitos desenvolvedores de antes, respeitados em nossa comunidade e nas outras, assumiram novos compromissos para a vida; Enquanto os novos entrariam em um meio onde se teria tudo na mão e pouco daria importância ao conhecimento deixado pelos de antes. Isso contribuiria, segundo a ideia, para que se triplicassem o número de CÓPIAS, ao mesmo tempo que diminuía o número de "GAMES Originais". O que pode ou não ter feito com que menos pessoas tivessem interesse em desenvolver coisas novas, pelo contrário, passaram a ter interesse em baixar coisas prontas e manter a ideia de "game pirata", não "game". Isso também mudou a forma como o público reage à estes games. Porque um Otserv X faz mais sucesso que um Otserv Y, sendo que ambos são absolutamente iguais? Um exemplo disso é o recente servidor lançado por um youtuber, chegam ao nosso cenário menosprezando outros games, quando na verdade o servidor é mais uma cópia indiferente de outros otservers, que só focam em se manter as custas do público roubado, visivelmente ilegal, da Cipsoft. Ora, assim é fácil demais. Sabemos que nos últimos tempos alguns projetos tem se destacado por ter mais conhecimento e experiência, enquanto outros apenas se destacaram por ter popularidade. Afinal, vemos esta mesma história se repetir todos os dias. Mas também Sabemos que muitos games incríveis foram formados em nossas comunidades: Xtibia, Tibia King e Otland. E de fato, conseguiram chegar longe, com esforço, dedicação, originalidade e muita responsabilidade. Modificando o game para criar uma identidade nova: novos gráficos, novos sistemas, novo client, ou seja, fugir da mesmice do Tibia. E não podemos descartar como um exemplo, o game Necronia (não brasileiro). (Biblioteca de sistemas do NECRONIA.COM, veja mais informações no site) Estamos DISSIPADOS. Parece o velho ditado brasileiro, cada um por si, estamos fracos de coisas novas. Nós podemos fazer melhor. Nós Brasileiros já tivemos e presenciamos grandes feitos pelas nossas comunidades. Vimos muitas ideias serem desenvolvidas, mesmo que não finalizadas, e devemos nos orgulhar por isso. Vamos MELHORAR? Você pode ou não concordar com as minhas ideias nesse texto, afinal eu não sou a pessoa mais experiente nisso. Então exponha abaixo suas ideias, as nossas ideias. Deixo meus pensamentos aqui, enquanto agradeço pela atenção dispensada. Grande abraço e uma ótima semana para você!1 ponto -
CONTEÚDO REMOVIDO: AGORA VOCÊ VAI TER QUE TER CRIATIVIDADE OU SE PENDURAR-SE NAS COSTA DE ALGUÉM, MENOS NA MINHA - BOA SORTE! error 404 - I do not serve the forum I retired.1 ponto
-
Erro em pokemon ao sair da pokebola
Luga03 reagiu a luciocleci por uma questão
Sim quando eu coloco o pokemon em /m mega absol ele funciona mais quando ele esta na ball não sai de forma algunha Sou novo no site eu não sei muito sobre as coisas mil perdoes desculpa mesmo1 ponto -
Amigo a função AddPokeToPlayer funciona da seguinte forma. function addPokeToPlayer(cid, pokemon, boost, gender, ball, unique) entao isso seria uma adição de pokemon unique. addPokeToPlayer(cid, pokemon, 0, nil, btype, true)1 ponto
-
Falha na otserv-list.com
Administrador reagiu a Wo11ven por uma questão
Não é necessário nada elaborado, o próprio PHP já tem a função gethostbyname() que faz o trabalho. O problema é que eles devem estar armazenando todos os servidores só pelo hostname e vão precisar rodar um script para obter o ip de todos e verificar as duplicidades. Do jeito que ta qualquer um pode pegar o topo da lista a hora que quiser, sem precisar fazer spoof no servidor.1 ponto -
aqui ta normal.. tenta reiniciar seu roteador ou pc..1 ponto
-
Erro em pokemon ao sair da pokebola
luciocleci reagiu a wevertonvrb por uma questão
se você estiver usando aquele que volta a ser um pokemon normal quando chama de volta é simples voce tem que usar a mega stone na ball (icone) do pokemon normal ou seja, vc pega o absol usa a mega stone dele na pokeball (icon) e depois chama ele, em seguida use o mega evoluir que ele vai sair da ball se voce fizer /cb mega absol ele n vai sair pois vc n usou a mega stone no absol teste se ajudei ta um rep + aee rsrsrs1 ponto -
1 ponto
-
Hm's System
Administrador reagiu a Deadpool por um tópico no fórum
Faltou adicionar na lib, acho que em cooldownbar.lua, adicionar os atributos na Ball Lion, ta meio incompleto seu sistema e.e falta a parte de bloquear todas as habilidades e só usar com hm's, vê seu goback ai u.u1 ponto -
Otserv, O que mudou?
Poccnn reagiu a wevertonvrb por um tópico no fórum
na minha opinião apos o 8.1 o tibia não fez update mas sim decaiu, claro eu não parei de jogar no 8.1 continuei jogando mas em uma coisa que eles chamaram de update fez eu e mais uns 20% dos jogadores totais do tibia parar de jogar de uma só vez, uns 10 amigos pararam comigo mas porque? existe um mundo chamado silvera eu e meus amigos odiávamos XP isso mesmo não pegávamos xp, nossa xp era apenas para pegar soul e ponto um amigo meu era o top 2 de skill em silvera, eu era top 3 e tinha outros com skills ótimos, treinamos cerca de 1 ano e meio todos os dias com algumas exceções ele era skill 98/80 e poko no lvl 40 eu skill 96/80 e poko no lvl +- 35 antigamente alcançar esse skill no tibia era dificil d+ tinhamos q pagar nego pra sumonar monk uma coisa q eu lembro é que no lvl 20 um kina lvl 100 me deu PK e eu sozinho botei ele pra correr foi mt top aee fizeram um maldito update os premium acc ganhavam skill ficando off com umas malditas estatúas, em menos de 2 meses perdemos nossas posições no rank o jogo perdeu a graça, foi quase 2 anos de jogo jogado no lixo. e paramos de jogar, sinto saudades to tibia antes dessas estatuas, ate tentei voltar a jogar esse ano qd me deparei nem tinha mais rookguard peguei lvl 8 em menos de 1h upar ficou fácil parece otserve skill com 2 dias off ja pega skill 60, tibia ja foi um otimo game mas facilitaram d+ e quem teve que ralar pra ter as coisas simplesmente desistiu do jogo1 ponto -
Cria um arquivo chamado namer.xml em data/npc e cole isso <?xml version="1.0" encoding="UTF-8"?><npc name="Namer" script="nick.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2"> <health now="150" max="150"/> <look type="614" head="115" body="122" legs="0" feet="76"/> <parameters> </parameters></npc> Agora, cria outro arquivo chamado Nick.lua em data/npc/scripts e cole isso local focus = 0local talk_start = 0local conv = 0local target = 0local following = falselocal attacking = falselocal talkState = {}local finalname = ""function onThingMove(creature, thing, oldpos, oldstackpos)endfunction onCreatureAppear(creature)endfunction onCreatureDisappear(cid, pos)if focus == cid thenselfSay('Good bye sir!')focus = 0talk_start = 0endendfunction onCreatureTurn(creature)endfunction msgcontains(txt, str)return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))endfunction onCreatureSay(cid, type, msge)local msg = string.lower(msge)local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if focus == cid then talk_start = os.clock() endlocal auras = {"red aura", "blue aura", "green aura", "yellow aura", "white aura", "gray aura", "cyan aura", "purple aura", "orange aura"}if (msgcontains(msg, 'hi') and (focus == 0) and (getDistanceToCreature(cid) <= 4)) then focus = cid conv = 1 talk_start = os.clock() selfSay("Ola, "..getCreatureName(cid).."! Eu posso dar apelido ao seu pokemonou uma aura elementar se tiver pelo menos com boost 50+.")elseif (msgcontains(msg, "no") or msgcontains(msg, "bye")) and focus == cid and conv ~= 3 then selfSay("Sem problema entao senhor, volte quando estiver disposto!") focus = 0elseif (msgcontains(msg, "apelido") or msgcontains(msg, "nickname")) and focus == cid and conv == 1 then if getPlayerSlotItem(cid, 8).uid <= 0 then selfSay("Desculpe, voce nao tem um pokemon no slot principal!") focus = 0 return true end selfSay("Coloque o pokemon que ira receber um apelido no slot principal e me diga, qual sera seu apelido?") conv = 3 elseif msgcontains(msg, "aura") and focus == cid and conv == 1 then if getPlayerSlotItem(cid, 8).uid <= 0 then selfSay("Desculpe, mas voce nao tem um pokemon no slot principal!") focus = 0 return true end local pb = getPlayerSlotItem(cid, 8).uid if not getItemAttribute(pb, "boost") or getItemAttribute(pb, "boost") < 50 then selfSay("Desculpe mas seu pokemon nao possui boost +50!") focus = 0 return true end if getItemAttribute(pb, "aura") and getItemAttribute(pb, "aura") ~= "" then selfSay("Desculpe, mas seu pokemon ja possui uma aura elementar.") focus = 0 return true end if #getCreatureSummons(cid) >= 1 then selfSay("Retorne seu pokemon para a pokebola!") focus = 0 return true end selfSay("Escolha uma destas auras: red aura, blue aura, green aura, yellow aura, white aura, gray aura, cyan aura, purple aura, orange aura. Which one do you prefer?") conv = 9 elseif isInArray(auras, msg) and focus == cid and conv == 9 then selfSay("Are you sure that you want to put a "..msg.." in your pokemon?") conv = 11 local d, e = msg:find('(.-) aura') auraFinal = string.sub(msg, d -1, e - 5) elseif msgcontains(msg, "yes") and focus == cid and conv == 11 then if getPlayerSlotItem(cid, 8).uid <= 0 then selfSay("Me perdoe mas voce nao tem um pokemon no slot principal!") focus = 0 return true end local pb = getPlayerSlotItem(cid, 8).uid if not getItemAttribute(pb, "boost") or getItemAttribute(pb, "boost") < 50 then selfSay("Desculpe mas seu pokemon nao possui boost +50!") focus = 0 return true end if #getCreatureSummons(cid) >= 1 then selfSay("Retorne seu pokemon para a pokebola!") focus = 0 return true end doItemSetAttribute(pb, "aura", auraFinal) selfSay("Pronto! Agora seu pokemon possui uma nova aura elementar. Aproveite") focus = 0 conv = 0 elseif conv == 3 and focus == cid then local tablee = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "x", "w", "y", "z", ".", ":", "'", '"', "~", "^", "@", "#", "$", "%", "&", "*", "(", ")", "-", "+", "_", "?", ">", "<", "•", ";", "°", "¹", "²", "³", "£", "¢", "¬", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"} local table = {"'", '"', "!", "ã", "õ", "ç", "´", "`", "á", "à", "ó", "ò", "é", "è", "í", "ì", "ú", "ù", "¹", "²", "³", "£", "¢", "¬", "§", "°", "º", "ª", "•", "|"} for a = 1, #table do if string.find(msg, table[a]) then selfSay("Lamento, este apelido tem simbolos invaidos.") return true end end if string.len(msg) <= 1 or string.len(msg) >= 19 then selfSay("Lamento, este apelido e muito longo ou muito curto!") return true end local pokename = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke") selfSay("Voce tem certeza que quer alterar o nome de seu pokemon de "..pokename.." para \""..msge.."\"? isto vai custar 10 hundred dollars.") conv = 5 finalname = msgeelseif msgcontains(msg, "yes") and focus == cid and conv == 5 then if getPlayerSlotItem(cid, 8).uid <= 0 then selfSay("Onde esta seu pokemon?! Coloque ele no slot principal!") focus = 0 return true end if doPlayerRemoveMoney(cid, 100000) == false then selfSay("Voce nao tenho dinheiro suficiente para me pagar pelos meus serviços, volte mais tarde.") focus = 0 conv = 0 return true end local nick = ""..finalname.."" local description = "Contem um "..getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke").."." selfSay("Pronto! Agora seu pokemon tem um novo apelido, aproveite!") doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "nick", nick) local newdes = description.."\nIt's nickname is: "..finalname.."." doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "description", newdes) local hp = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "happy") doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "happy", hp + 25) if #getCreatureSummons(cid) >= 1 then adjustStatus(getCreatureSummons(cid)[1], getPlayerSlotItem(cid, 8).uid) end focus = 0 conv = 0 endend local intervalmin = 38local intervalmax = 70local delay = 25local number = 1local messages = {"Quer dar apelido ao seu pokemon? Fale comigo!", "Voce sabia que seu pokemon fica mais feliz quando voce o da um apelido?", "Todos seus pokemons querem ter um apelido, converse comigo", "Pokemons amam apelidos, voce deve dar os seus um.", }function onThink() if focus == 0 then selfTurn(1) delay = delay - 0.5 if delay <= 0 then selfSay(messages[number]) number = number + 1 if number > #messages then number = 1 end delay = math.random(intervalmin, intervalmax) end return true else if not isCreature(focus) then focus = 0 return true end local npcpos = getThingPos(getThis()) local focpos = getThingPos(focus) if npcpos.z ~= focpos.z then focus = 0 return true end if (os.clock() - talk_start) > 45 then focus = 0 selfSay("Volte outra hora!") end if getDistanceToCreature(focus) > 3 then selfSay("Enjoy!") focus = 0 return true end local dir = doDirectPos(npcpos, focpos) selfTurn(dir) endreturn trueend Prints: Créditos Bluester1 ponto
-
Tudo bem, vou editar créditos já estão.1 ponto
-
WebDav Todos estão acostumados com a ideia de que servidores de Tibia não são vulneráveis, e não podem ser invadidos, mas é bem pelo contrário... O que é? WebDav é um sistema padrão de upload de arquivos pelo Xampp, que fica ativo no servidor, geralmente sem o host ter conhecimento dele. Como é utilizado pelos invasores? Como já vem ativo no Xampp, requer uma conta que já vem por padrão da seguinte maneira: Login: wampp Senha: xampp Assim, os invasores podem abrir uma conexão com o WebDav do seu Xampp, e dar upload em um arquivo malicioso, que dá controle sobre sua máquina para ele. Como prevenir seu servidor? Abra a raíz do seu Xampp, procure pela pasta "webdav" e a delete, assim não poderá haver nenhuma nova conexão com ele, e ninguém terá a possibilidade de efetuar a invasão.1 ponto
-
1 ponto
-
É /cb tudo minúsculo1 ponto
-
Não, possui alguns bug's pequenos, e algum sistemas faltando mas postei mesmo pela source1 ponto
-
Está tudo no changelog1 ponto
-
Dá pra compilar o OTClient com OpenGLES pra rodar em smartphone1 ponto
-
1 ponto
-
Sinceramente, nunca tive vontade de jogar nenhum derivado que não fosse de Poketibia até conhecer esse projeto1 ponto
-
Obrigado, é muito gratificante recebe um elogio como este, principalmente vindo de você. haha, Sou teu admirador, desde da epoca dos PDA. Estou preparando mais uns sistemas, para fazer um video, e colocar algo novo no topico. Comecei a mexer nessa parte de som no otcliente hoje, então por isto está super básico. Mas em breve, irei fazer um 10x melhor.. Vejam aqui, não consegui colocar vídeo no tópico.. Vídeo1 ponto
-
Bom saber que não optou por pegar tudo pronto e decidiu desenvolver e aprimorar... Não sei se os antigos "Shinobi Online" vão ligar por estar usando o nome "deles", mas desejo sorte para o projeto. Aliás, ultimamente o setor de derivados anda um tanto quanto chato e sem movimento... seria bom para variar ter um novo servidor sendo lançado com novidades e pessoas novas. Forte abraço.1 ponto
-
Na verdade, estou usando apenas o cliente, mapa e itens, porque vai ser muito difícil achar um mapper bom, ou um sprite.. isso me ajuda bastante. Estou usando um tfs 0.3.6, e algumas funções do antigo servidor! Obrigado..1 ponto
-
Perai, esse servidor não era do "Ramza & cia"? Ou esse é a cópia (feito pelo Thalia) que está usando o nome do antigo servidor deles (que foi vendido)? wtf? O servidor obviamente é perfeito, no beta que participei a tempos atrás chegaram a 500 online em menos de 24 horas... Até o OTPokemon "comprar" a cópia do servidor e abrir com um outro nome ai... De toda forma... parabéns e boa sorte.1 ponto
-
Prevejo uma perda de players nos servidores top down. xD1 ponto
-
Tamo aí hahaha Obrigado Daniel. Estarei atualizando todos os dias.1 ponto
-
Shinobi Online - 忍 オン ラ イ ン
Shisui reagiu a Administrador por um tópico no fórum
Belo tópico, o projeto tem maturidade, acompanharei.1 ponto -
1 ponto
-
Você basicamente cria uma cópia do seu .exe caso de bug. Você abre o .exe cópia, no programa e depois a .dll que disponibilizei1 ponto
-
[DLL] Extende seu OLD CLIENT
Developer Berg reagiu a Deadpool por um tópico no fórum
Deve ter sido uma ex-membro da equipe do meu amigo :v kkk não sei. Só frequento o Xtibia.1 ponto -
Pokemon Origins Beta, garanta sua beta key!
notle2012 reagiu a Administrador por um tópico no fórum
- • - MAIS UM PROJETO DE POKETIBIA? Sim, mais um projeto de poketibia... Mas calma ai joe! Este não é mais um daqueles servidores incompletos, bugados ou com péssima administração que estamos acostumados a ver por ai. O projeto tem como base a cultura Pokemon do Anime/GBA, tentando manter o mais próximo de tudo que já conhecemos. Embora jamais anunciado antes, o PokéMon Origins veio divulgar oficialmente seu BETA, após anos de trabalho intenso e muito investimento. Há apenas algumas beta keys disponíveis, e elas estão se esgotando rápido, então não da pra saber a quantidade exata de beta keys disponíveis nesse exato momento em que você está lendo. Mas não tem problema, acesse o site oficial do Pokémon Origins e veja se há beta keys disponíveis. COMO FUNCIONA O CLOSED BETA? O CLOSED BETA oficial para testes será iniciado nesta sexta-feira, conforme cronometrado no site oficial (aquiii). Todos os players com beta keys poderão logar e testar. Esta é a fase de testes finais, será bem empolgante então Controle suas emoções Dumbo!. Não tem uma beta key? , é facil conseguir uma, veja: COMO CONSEGUIR UMA BETA KEY? 1) Curta e Compartilhe nossa página. 2) Marque seus amigos nos comentários principais. 3) Peça que eles curtam a página também. 4) Envie-nos uma mensagem privada para receber sua Beta Key. MAIS INFORMAÇÕES SOBRE O PROJETO (Área de tutoriais, no site) (Downloads, também no site) (Contatar projeto)1 ponto -
Sim, irá bugar os pokes iniciais no site.1 ponto
-
os 2 sao dxp! o da dex, não estava com a nova interface que coloquei do meu antigo cliente(pdub).1 ponto
-
1 ponto
-
Template PokémonLay
gabrielfernandi reagiu a Deadpool por um tópico no fórum
Achei esse template aqui de pokémon.. Acho que é pra Gesior. Fiquem a vontade para desfrutar, eu achei legalzin. Download1 ponto -
Exatamente. Eu adptei um Gesior para o dxp. To pensando em usar essa template, e postar só o site gesior com a template completa!1 ponto