-
Total de itens
509 -
Registro em
-
Última visita
-
Dias Ganhos
25
Tudo que lSainty postou
-
Também me perguntei isso, afinal são servidores totalmente diferentes kkkkkk -- Edit Ao retirar o mount system vocês não pensaram que seria um bom sistema que se o player tivesse por exemplo um Venusaur ele pode simpleste apertar Ctrl+R (se não me engano) e dar ride nele? O mesmo vale para o fly '-'
-
Pode me dizer mais ou menos como funciona isso? Não achei nada parecido no meu exp.lua ;-; Porque ao invés de pedir você mesmo não cria? O cara ja fez MUITO ao colocar até a 4ª geração, se fosse eu colocava apenas a 1ª e mesmo assim vem os ot-admin da vida pedindo para colocar mais, e ainda tem coragem de colocar que é scripter -.-
-
O PField by SmiX? O Nick System la não funciona :s
-
Mas é a mesma coisa do que quando se abre um 8.54/8.60 e etc... se você não conseguiu logar é porque fez algo errado.
-
O único jeito seria salvando cada nick em um txt igual nos primeiros Nick System... Falei com o Cristofer sobre como uma função desse tipo poderia ser feita ja que o client "salva" o nome do monstro e ele disse que a unica explicação para o doCreatureSetNick do brun123 é que quando você solta o monstro, ele é teleportado para algum lugar e volta rapidamente, assim o nome dele mudaria kkk, tentei de varias formas criar essa função nas sources mas não consegui, ou da algum erro ou o nome não muda, o jeito era se o brun123 liberasse o código mesmo... A maioria quer mas não sabe nem o que as sources fazem hasuhashuas -- Edit @Gabrieltxu O melhor a se fazer no momento é aprimorar os sistemas ja feitos (catch, goback e afins), ja que Nick System nem é tão util assim kkk, o ideal se tivesse as sources era colocar onSpawn, para colocar Gender System e quem sabe até Level System para quem gosta :b
-
Sem a função doCreatureSetNick? Boa sorte fazendo gambiarra de salvar o nick do pokemon em um arquivo .txt =3 @Topic Ótimo servidor para usar como base, mas sem as sources se tornou um PDA nº 2 kkk, whatever, rep+
-
Essa folha é muito estranha cara, antes colocar uma folha de marijuana ._.
-
por que [Encerrado] pq PDA n tem source?
tópico respondeu ao t0gexdarki de lSainty em Tópicos Sem Resposta
Sinto seu drama da mesma forma. Tentei até refazer um server com base nas sources do DASH, mas elas são muito 'primitivas', e, como não sei nada de C++ e fui procurando tudo no google (xd), a não ser que tenha conhecimento de C++, é muito difícil conseguir fazer uma jogavel, compativel de certa forma com o PDA. Faltam muitas funções de fly, move, camera, ispokeball e etc. Pouquissimas eu consegui achar, que foram a onSpawn e alguns outros detalhes. Cara, basta estudar um pouco que você faz essa funções facilmente... Sobre o fly, você pode fazer seu próprio order, sobre os moves, comigo não deu nenhum erro, TV/Cam system é inútil, e a função isPokeball só é necessária no PDA (consegui usar o catch do PDA em outro servidor sem a função isPokeball). -
poketibia Função onSpawn(cid) para TFS 0.3.6
tópico respondeu ao lSainty de lSainty em Linguagens de Programação
-
poketibia Função onSpawn(cid) para TFS 0.3.6
tópico respondeu ao lSainty de lSainty em Linguagens de Programação
Essa função é executada sempre que o monstro da respawn, em um poketibia por exemplo ela pode ser usada para ter uma chanse de o pokemon nascer shiny, ou até mesmo mandar uma mensagem quando o monstro nascer: function onSpawn(cid) doBroadcastMessage("Monster ".. getCreatureName(cid).." was created.") return true end Entendeu? Corrigido, eu tinha esquecido uma parte do código -
poketibia Função onSpawn(cid) para TFS 0.3.6
um tópico no fórum postou lSainty Linguagens de Programação
Eae galera, estava passando aqui por essa seção e vi que só havia a função onSpawn para TFS 0.4, então resolvi trazer para 0.3.6 Primeiramente, va em Creatureevent.h e procure por: uint32_t executePrepareDeath(Creature* creature, DeathList deathList); E cole embaixo: uint32_t executeOnSpawn(Creature* creature); Procure por: CREATURE_EVENT_DEATH, E cole isso por cima da linha de baixo: CREATURE_EVENT_PREPAREDEATH, CREATURE_EVENT_SPAWN Agora va em creatureevent.cpp e procure por: else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; E cole embaixo: else if(tmpStr == "spawn") m_type = CREATURE_EVENT_SPAWN; Procure por: case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath"; E cole embaixo: case CREATURE_EVENT_SPAWN: return "onSpawn"; Procure por: case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList"; E cole embaixo: case CREATURE_EVENT_SPAWN: return "cid"; Va ao fim do arquivo e cole isso: uint32_t CreatureEvent::executeOnSpawn(Creature* creature) { //onSpawn(cid) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ std::stringstream desc; desc << creature->getName(); env->setEvent(desc.str()); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); bool result = m_interface->callFunction(1); m_interface->releaseEnv(); return result; } } else { std::clog << "[Error - CreatureEvent::executeCast] Call stack overflow." << std::endl; return 0; } } Va em monster.cpp e procure por: 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()) isMasterInRange = canSee(master->getPosition()); Embaixo pressione enter 2x e cole: CreatureEventList spawn = getCreatureEvents(CREATURE_EVENT_SPAWN); for(CreatureEventList::iterator it = spawn.begin(); it != spawn.end(); ++it) (*it)->executeOnSpawn(this); E pronto, basta compilar agora Exemplos de como usar essa função: -- EDIT -- Para fazer com que o evento seja iniciado junto com o servidor ao invés de somente quando o monstro der RESPAWN, va em spawn.cpp e procure por: bool Spawn::spawnMonster(uint32_t spawnId, MonsterType* mType, const Position& pos, Direction dir, bool startup /*= false*/) { Monster* monster = Monster::createMonster(mType); if(!monster) return false; if(startup) { //No need to send out events to the surrounding since there is no one out there to listen! if(!g_game.internalPlaceCreature(monster, pos, false, true)) { delete monster; return false; } } else { if(!g_game.placeCreature(monster, pos, false, true)) { delete monster; return false; } } monster->setSpawn(this); monster->addRef(); monster->setMasterPosition(pos, radius); monster->setDirection(dir); spawnedMap.insert(SpawnedPair(spawnId, monster)); spawnMap[spawnId].lastSpawn = OTSYS_TIME(); return true; } e apague essa parte: { //No need to send out events to the surrounding since there is no one out there to listen! if(!g_game.internalPlaceCreature(monster, pos, false, true)) { delete monster; return false; } } else Pronto, agora a função é executada assim que o servidor inicia Se os monstros pararem de dar respawn, ao invés de apagarem a parte que citei acima, troquem isso: bool Spawn::spawnMonster(uint32_t spawnId, MonsterType* mType, const Position& pos, Direction dir, bool startup /*= false*/) { Monster* monster = Monster::createMonster(mType); if(!monster) return false; if(startup) { //No need to send out events to the surrounding since there is no one out there to listen! if(!g_game.internalPlaceCreature(monster, pos, false, true)) { delete monster; return false; } } else { if(!g_game.placeCreature(monster, pos, false, true)) { delete monster; return false; } } monster->setSpawn(this); monster->addRef(); monster->setMasterPosition(pos, radius); monster->setDirection(dir); spawnedMap.insert(SpawnedPair(spawnId, monster)); spawnMap[spawnId].lastSpawn = OTSYS_TIME(); return true; } Por isso: bool Spawn::spawnMonster(uint32_t spawnId, MonsterType* mType, const Position& pos, Direction dir, bool startup /*= false*/) { Monster* monster = Monster::createMonster(mType); if(!monster) return false; if(startup) { //No need to send out events to the surrounding since there is no one out there to listen! if(!g_game.internalPlaceCreature(monster, pos, false, true)) { delete monster; return false; } else { monster->onCreatureAppear(monster); } } else { if(!g_game.placeCreature(monster, pos, false, true)) { delete monster; return false; } } monster->setSpawn(this); monster->addRef(); monster->setMasterPosition(pos, radius); monster->setDirection(dir); spawnedMap.insert(SpawnedPair(spawnId, monster)); spawnMap[spawnId].lastSpawn = OTSYS_TIME(); return true; } Créditos: Doggynub por fazer a função (OTIlha) ArkSeyonet por adaptar para 0.3.6 (OTIlha) Eu por pequenas edições :3 Slicer -
pedido [Encerrado] Bike que fica no Slot
tópico respondeu ao HenrikDiamond de lSainty em Tópicos Sem Resposta
Para poder usar pokémons enquanto esta na bike é só tirar o storage dela no goback. Para fazer com que ela tenha um slot fixo no lugar do Cassino Coins basta trocar o id do Cassino Coins pelo id da bike no firstitems.xml, lembrando que ela tem que ser Not Moveable para ficar parada no slot :b -
No Dat Editor marque as stone como Amountable, simples xD
-
PDA é impossivel, mas não compenssa usar PDA como base, use outro, de preferencia com sources... Ai é só adicionar os pokémons que você quiser
-
Como não esta bem explicado? Esta super bem explicado
-
Você pode criar um poketibia em qualquer versão do tibia, basta adicionar novas funções e races nas sources... E porque diabos ele não suportaria novas sprites? -.- Muitas funções mudam de uma versão para a outra... Maioria dos scripts tem que ser refeitos para funcionarem (se você copia de um poketibia para o tibia), mas se você pegar um sistema gambiarra de invocar o pokemon funciona sim
-
Nurse Joy não cura pokémons com Icon System ativo
tópico respondeu ao lSainty de lSainty em Lixeira Pública
Malz, jurava que era em Pedidos e dúvidas - Scripting... Na próxima vou prestar atenção ;-; @Up -
Fala galera o/, estou usando um server do SmiX (PField, não é PDA não ._.) e estou com o seguinte problema: quando o icon system esta desativado posso curar os pokémons normalmente, mas quando esta ativado a nurse não cura eles, pois ela funciona de acordo com o id da pokeball, e como cada icon é um id diferente daria muito trabalho fazer 1 por 1 Script da nurse: Se alguém puder me ajudar dou Rep+ ;-;
-
Na verdade isso é simples, basta ter as funçoes certas xD
-
PokeB - A revolução do Pokémon Tibia
tópico respondeu ao Daniel Bighouse de lSainty em OTServer Alternativo (ATS)
E quem não ajuda vai é mesmo ficar aguardando, e muito! E o projeto contará só com scripts básicos de poketibia. Depois será parado de ser postado as versões com os scripts mais avançados - motivo: a pouca ajuda, pois só querem pronto e não querem ajudar- que ficarão estas versões melhores só com quem esta ajudando regularmente. Eu tentei ajudar na v2, mas o tópico tava morto e eu ficava no vacuo -.- -
@Slicer Você é do mal cara ;-; @Alexclusive Sdds =/
-
[Encerrado] Problema! Como tirar exausted da pot paladin?
tópico respondeu ao llucas75 de lSainty em Tópicos Sem Resposta
Vai em data/XML/vocations.xml, procura o pally e edita: Só editar o attackspeed, tipo, attackspeed="100" -
PokeB - A revolução do Pokémon Tibia
tópico respondeu ao Daniel Bighouse de lSainty em OTServer Alternativo (ATS)
Achei que o projeto tinha é acabado, desde o ano passado esperando a v2 ;-; -
PDA Sem lvl 1.9 (Editado Por Bolz)
tópico respondeu ao SamueLGuedes de lSainty em OTServer Alternativo (ATS)
Que porcaria hein? =X,prevejo ot-admins em depressão e_e- 763 respostas
-
- minha primeira edição de poke
- otserv
- (e 2 mais)
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.