Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''função''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

Encontrado 18 registros

  1. Boa noite a todos do xTibia, gostaria de uma ajuda pra adicionar uma funçao chamada GetSpectators Base que uso : PDA {Base PokexTibiano desse forúm} agradeco a ajuda
  2. 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
  3. Olá galera, estou desenvolvendo pro meu servidor um sistema o qual não faz diferença dizer qual é, onde engalhei numa parte e gostaria de ver se alguém poderia me ajudar.Preciso de uma função que checa na minha database, se existe algum player que tenha o valor X na storage Y.Por exemplo: function verificar(10023, 54) -- storage, valorif existe alguém com o valor 54 na storage 10023 thenreturn trueelsereturn falseendend Como sou péssimo quando se fala de query, não consegui fazer essa função, alguém poderia por favor me ajudar? Se possível, retornar o nome do jogador que possui tal valor na storage. Obs: Servidor SQlite Já resolvi com ajuda de um membro de outro fórum, moderação por favor pode fechar o tópico.
  4. Olá xTibianos, eu tenho uma dúvida pequena, queria saber se existe alguma função onde o player fica parado quando executa a spell/talkaction, e que esse tempo seja configurável, existe algo assim?
  5. Galera, tudo suave? como eu faço para aumentar a lootRate de um único monstro? Exemplo, quando o nego matar o Demon X ele vai ganhar 2x mais loot do que se tivesse matado o Demon. Existe uma função para isso? porque serão vários monstros e não quero ficar criando um por um.. obg
  6. Oi pessoal eu sou o Muniz, e esto uaqui hoje para pedir a ajuda de vocês, estou com essa função aqui, e quero que ela faça retornar a um valor true se o monstro for summon e um valor false se ele não for, tfs 0.3.6 pokémon 8.54, espero a ajuda de vocês xD int32_t LuaScriptInterface::luaIsSummonn(lua_State* L) { //isSummon(cid) ScriptEnviroment* env = getEnv(); Creature* creature = env->getCreatureByUID(popNumber(L)); Monster* monster = creature->getMonster(); if (monster->isSummon()) { lua_pushboolean(L, true); } else { lua_pushboolean(L, false); } return 1; }
  7. Bom galera, vejo que muita gente pede ajuda para adicionar condowl em magias, runas, actions, etc.. entao vim aqui ensianr como adicionar o tao procurado condowl Primeiramente abra seu script, e procure onde ele faz a funçao como: Na linha a baixo da funçao, adicione isto : 23006 é o storage do exaust, coloque diferente em cada magia/action/talkaction para nao interferir umas nas outras. 20 é o tempo em segundos para poder usar a magia/action/talkaction/ novamente. Após adicionar isto, e configura-lo, pule uma linha e pronto Espero ter ajudado!
  8. galera alguem tem essa funçao pra me passar doSetCreatureName(clone, nome a funçao para eu por em minha source agradeço mt rep++ agradeço desde ja ! atodos
  9. Existe uma função já que retorna o lastlogin, porém o player tem que estar online e tudo, que é a getPlayerLastLoginSaved(cid) Enfim, vamos a função: function getLastLogin(id) local result = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = "..id) if result:getID() ~= -1 then return result:getDataInt("lastlogin") else return -1 end result:free() end Está meio obvio, mas enfim, o ID é o ID do player rs. Créditos: Mortini
  10. Server usado: The Forgotten Server, version 0.3.6 Função usada: doCreateCustomMonster(name, pos, outfit, health, spells, corpse, distance, experience ) Autor: MeNi (OTLand) Fala ai amigos do XTibia, vim aqui hoje pra trazer uma função muito maneira que é a: doCreateCustomMonster, ela é muito usada para fazer clones do proprio player (Que eu saiba). Foto como exemplo: Bom vamos lá: Abra o arquivo: luascript.cpp E abaixo do código: Adicione: No mesmo arquivo, abaixo do código: //doCreateMonster(name, pos) lua_register(m_luaState, "doCreateMonster", LuaScriptInterface::luaDoCreateMonster); Adicione: //doCreateCustomMonster(name, pos, outfit, health, spells, corpse, distance, experience ) lua_register(m_luaState, "doCreateCustomMonster", LuaScriptInterface::luaDoCreateCustomMonster); Agora abra o arquivo: luascript.h Nesse aquivo, abaixo da linha: static int32_t luaDoCreateMonster(lua_State* L); Adicione: static int32_t luaDoCreateCustomMonster(lua_State* L); E pra finalizar, abra o arquivo: monsters.h E procure a palavra: private E coloque ela para: public ATENÇÃO: Não exclua NENHUM código já existente, só adiciona como ja explicado acima. OBS: A cada modificação nos arquivos que você editou, você devera salva, se não você corre o risco de perde o que você adicionou. PS: Qualquer ERRO na hora de compilar, podem ser dos seguinte motivos: - Você excluiu algo. - Você copio e colo errado. - Não soube compilar direito. - Ou seu server não é compativel com o código. Exemplo de uso: 1º Crie um arquivo na pasta talkactions/scripts com o nome de clone.lua e coloque em seu conteúdo: Explicando: doCreateCustomMonster(nome, posição, outfit, health, attacks, corpo quando morto, distancia do player, experiencia) 2º Abra o arquivo talkactions.xml e adicione em qualquer lugar: <talkaction words="!clone" event="script" value="clone.lua"/> Créditos: MeNi (OTLand) 95%, pelo script C++. NogareD 2% (XTibia) pela talkaction. Eu o Flaah 3% (XTibia) pela pesquisa na net pelo sistema. Bom é isso ai pessoal, tomara que vocês tenham gostado. AJUDEI?! +REP
  11. Alguêm consegue adaptar essa script para ter função ondeath invés de onkill(tenho um ot e ele nao tem a função onkill, so tem a ondeath) se alguem conseguir adaptar rep+ do dia Script Obs: ou alguém me diga como adicionar função onkill no ot!! @Up @up Edited2:Problema resolvido, pode remover topico para duvidas sanadas!!
  12. Bem , nesta função o dano eh baseado no level e no magic level do usuario, eu gsotaria de saber se existe uma variação dela para que cause dano se baseando no level e no fishing; Isto seria possivel? E se fosse possivel como ficaria? function Damage(cid, level, maglevel) return (11+level*0.2+maglevel*2)*-1,(12+level*0.3+maglevel*2)*-1 end
  13. Galera, minha duvida é a seguinte... eu to querendo criar um Autospell, ou seja o player escreve !autospell "magia e fica soltando a magia até a mana acabar, mas o problema é o seguinte me falaram q eu preciso ter na minha source essa funçao doCastSpell(cid, spellname) eu uso o TFS 0.4 , e nao tenho essa funçao, como eu faço pra consegui-la? eu ja procurei em tudo q é lugar e nao achei nada
  14. Author: MaXwEllDeN[Maxwell Alcantara(Eu)] Galera, eu estava vasculhando aqui e achei essa função que eu fiz a um tempão, esse código tá bem "POGGADO". function getInAOrder(tabl) local dat = {} local tab = {} local tab2 = {["A"] = 1, ["Ä"] = 1, ["Ã"] = 1, ["Â"] = 1, ["À"] = 1, ["Á"] = 1, ["B"] = 2, ["C"] = 3, ["D"] = 4, ["E"] = 5, ["Ë"] = 5, ["Ê"] = 5, ["À"] = 5, ["F"] = 6, ["G"] = 7, ["H"] = 8, ["I"] = 9, ["Ï"] = 9, ["Ì"] = 9, ["Í"] = 9, ["Î"] = 9,["J"] = 10, ["K"] = 11, ["L"] = 12, ["M"] = 13, ["N"] = 14, ["Ñ"] = 14, ["O"] = 15, ["Ö"] = 15, ["Ó"] = 15, ["Ò"] = 15, ["Ô"] = 15, ["Õ"] = 15,["P"] = 16, ["Q"] = 17, ["R"] = 18, ["S"] = 19, ["T"] = 20, ["U"] = 21, ["V"] = 22, ["W"] = 23, ["X"] = 24, ["Y"] = 25, ["Z"] = 26 } for a = 1,26 do table.insert(tab, {}) end for a, b in pairs(tabl) do if (tab2[b:sub(1, 1):upper()]) then table.insert(tab[tab2[b:sub(1, 1):upper()]], b) else table.insert(tab[#tab2], b) end end for a, b in ipairs(tab) do for c, d in ipairs(b) do table.insert(dat, d) end end return dat end O que a função faz é organizar uma tabela em ordem alfabética. Se você rodar isso: local t = {"Socket", "Lua", "C++", "Linux", "windows", "ubuntu", "C", "Delphi", "Mint" "Alfa", "Ômega", "PHP", "HTML"} for a, b in pairs(getInAOrder(t)) do print(b) end irá ser retornado isso: Alfa C++ C Delphi HTML Lua Linux Mint Ômega PHP Socket ubuntu windows Não liguem pra gambiarra, faz muito tempo que eu fiz ela .-.
  15. Olá, galerinha do Xtibia essa é minha primeira função *-* function getNumeroInAlfabeto(letra) local T = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"} for x, i in ipairs(T) do if tostring(i) == tostring(letra) then return x end end end Exemplo de print: Exemplo de uso: É isso até mais. Créditos: Eu Vodkart( arrumou a talk e uma parte da função )
  16. Boa Tarde amigos do XTIBIA, tenho um probleminha, eu queria fazer uma spell que summona um monstro, mais com o mesmo nome do player... Maaaaiis.. não consegui porq esta faltando essa função no meu source: doCreateCustomMonster Alguem saberia como eu coloca essa função no source do meu server? PORFAVOR AJDUA, VALENDO +REP
  17. Sofft

    Função Npcs

    Xtibia, mais uma vez recorro a vocês, alguém poderia me passar as seguintes funções para NPC: NPC falar uma frase apos a outra.(Um script onde as frases ficam da seguinte forma: 'frase1','frase2') Função para o NPC parar de conversar com o player.(Ex:O player pega a missão e automaticamente o NPC para de conversar com o player e continua andando.) Se alguém tiver mais alguma função legal, é bem vindo.
  18. Xtibianos, queria saber se há uma função que me retorne a cor do char, e se houver qual a sua sintaxe. Ex: getPlayerColor(cid,detail) desde já, Obrigado!
×
×
  • Criar Novo...