Ir para conteúdo

dalvorsn

Conde
  • Total de itens

    750
  • Registro em

  • Última visita

  • Dias Ganhos

    8

Tudo que dalvorsn postou

  1. Le o que eu postei que vai ver que eu disse isso, a questão é que parar alterar pelos pokemons individualmente exige uma configuração extra na tabela, isso é trabalhoso pra caramba. Alem do fato de ter que modificar o codigo e balancear
  2. Nessa linha: local chance = 5.2 + getPlayerSkillLevel(cid, 6) / 9.5 Porem creio que o que voce quer nao seja isso né? porque isso ai é uma chance generica, ela se baseia na skill do player . Mas se quiser aumentar/diminuir a chance como um todo, e so alterar ai e ir testando qual tu acha melhor
  3. eu apaguei, mas ja fiz uma cado de gambiarra, principalmente em lua quando aprendi a função loadstring kkkkkkkk caralho, ali foi foda kkkkk vou tentar achar ela aqui depois tipo isso: http://pastebin.com/gADsQaBQ kkkkk
  4. deve ser algum pokemon que nao ta configurado man
  5. É assim mesmo, tfs é cheio de maluquisse kk xD Flws brother, precisar tamo ai
  6. Entao, a linha que ta dando erro é essa aqui: local index = math.random(#randomPosis) A tabela randomPosis ta chegando vazia, dai a função math.random ta recebendo parametro nil. Dai o erro interval is empty O que eu posso fazer por hora e impedir o erro de acontecer, mas não sei como isso vai afetar a execução da função em si, da uma testada ai: elseif spell == "Flash Fire Kik" then local config = { times = 6, --Vezes que o pokémon irá se teleportar. appearEffect = 101, --Efeito que vai aparecer no pokémon ao aparecer. effect = 111, --Efeito de corte de garras. combat = STEELDAMAGE, --Elemento. disappearInterval = 200, --Tempo para, depois de reaparecer, o pokémon desaparecer novamente. (em milésimos de segundo) teleportInterval = 800 --Intervalo de tempo entre cada teleporte do pokémon. (em milésimos de segundo) } local pos = getPosfromArea(cid, spell_area) local randomPosis = {} for i = 1, config.times do randomPosis[i] = pos[math.random(#pos)] if not isWalkable(randomPosis[i]) or getTileInfo(randomPosis[i]).protection then while not isWalkable(randomPosis[i]) do randomPosis[i] = pos[math.random(#pos)] end end end local function doTeleport(cid, time, randomPosis) if not isCreature(cid) then return true end if not isCreature(target) or time <= 0 then doAppear(cid) doCreatureSetNoMove(cid, false) doRegainSpeed(cid) end if #randomPosis < 1 then return end local index = math.random(#randomPosis) doTeleportThing(cid, randomPosis[index]) for i = index, #randomPosis do randomPosis[i] = randomPosis[i + 1] or nil end doAppear(cid) doSendMagicEffect(getThingPos(cid), config.appearEffect) doDanoWithProtect(cid, config.combat, getThingPos(target), 0, -min, -max, config.effect) addEvent(doDisapear, config.disappearInterval, cid) addEvent(doTeleport, config.teleportInterval, cid, time - 1, randomPosis) end doDisapear(cid) doCreatureSetNoMove(cid, true) doChangeSpeed(cid, -getCreatureSpeed(cid)) addEvent(doTeleport, config.teleportInterval, cid, config.times, randomPosis)
  7. elseif spell == "Absorb" then if isCreature(target) then local life = getCreatureHealth(target) doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 14) local newlife = life - getCreatureHealth(target) doSendMagicEffect(getThingPosWithDebug(cid), 14) if newlife >= 1 then doCreatureAddHealth(cid, newlife) doSendAnimatedText(getThingPosWithDebug(cid), "+"..newlife.."", 32) end end ---------------------------------------------------------------------------------------------------------- function onEquip (cid, item, slot) if not cid then return true end if item.uid <= 0 then return true end if not getItemAttribute(item.uid, "poke") then return true end for i, x in pairs(fotos) do if string.lower(getItemAttribute(item.uid, "poke")) == string.lower(i) then doTransformItem(getPlayerSlotItem(cid, 7).uid, fotos[i]) return true end end end function onDeEquip(cid, item, slot) if not cid then return true end if item.uid <= 0 then return true end if not getItemAttribute(item.uid, "poke") then return true end local feet = getPlayerSlotItem(cid, CONST_SLOT_LEGS) if feet.uid > 0 then doTransformItem(feet.uid, 2395) end end Esse outro bagulho gigante vou ler nao, preguiça :3
  8. Hm, vi aqui, me parece ser no momento que seta vocação ele inicia uma condition no player. Lembrando que como tu ta dentro da classe, tu nao usa o "player->" é so chamar direto pelo nome dela 'getSkill(skilltype, skill_level)'. Cuidado com a tipagem.
  9. Posta todos os script que tao sendo apontados nos erros, só assim pra te ajudarem.
  10. Tu ta alterando dentro de vocations querendo chamar a classe player? ta doido cara, a classe vocations vai alterar pra todos os players, e teoricamente no load do xml da vocação o server nem ligou, nao existe player, mesmo que quisesse instanciar nao ia dar certo Tu nao tem que alterar isso ai, tem que alterar é na classe player, dai por la tu faz um if pelo id da vocação e etc e faz os calculos que quiser é na função void Player::addExperience(uint64_t exp)
  11. poderia, se não tivesse a palavra 'notas' no comentario
  12. Falta uma lib ai né, mas tudo bem. O que deu pra entender é que é um evento controlado por uma global storage, onde apenas um player pode jogar por vez, provavelmente alguma especie de puzzle. É criada uma serie de ondas, reguladas pela tabela dif que seria a largura da tela. Tem algum sistema de pontos tambem por acerto. Logo pressumo que seja algum jogo no estilo guitar hero, onde as notas vão descendo e tu tem que acertar quando ela chegar na posição correta :>
  13. tu tem uma opção de fazer por script a redução do dano e dar return false, dai é cancelado o que seria feito pelas sources e vale apenas o que tu fez no script
  14. Da uma lida no manual de referencia para saber mais sobre funções que usam o tempo do sistema, é simples. A ideia é basicamente tu contar os segundos desde 1970 e de acordo com o numero de segundos o sistema operacional te diz informações como hora, data, dia da semana e etc. http://www.lua.org/manual/5.1/pt/manual.html#5.8 E tem também o lua-users, que aborda o tema e da diversos exemplos de uso http://lua-users.org/wiki/OsLibraryTutorial
  15. Tu tem que postar teu sistema para que possamos analisar o codigo e te dizer.
  16. Pode ter mudado entao, faz um tempo bom que eu nao jogo kk, lembro quando implantaram o sistema la, era assim, se tu andasse ele parava de pescar e trocava o outfit xD
  17. Parece ta bacana, só uma coisa, em relação ao uso de storage, tu pode substituir isso por uma condition outfit. E tem mais uma coisa, quando anda no pxg ele para a pesca, tu pode fazer isso pelo onThink mesmo que tu ja usou ai, so verificar se ele andou mesmo e tals. não me lembro agora se tem alguma callback pra onMove no tfs 1.x, vou dar uma olhada. Uma coisa bacana seria tambem fazer uma relação entre fishing level e quantidade de pokes que podem vir, algo como: local num = math.min(math.max(1, math.floor((playerSkill - fishIsca.skill) /10)), 4) Tu disse que programa em c++, math.min e max são a mesma do c++ std::min std::max , dai isso vai fazer vir o maximo de 4 pokes, e a cada 10 skills que tu exceder a skill da isca tu adiciona mais um pokemon pra poder vir dai é só math.random(num) e pronto xD
  18. Considerando que tudo que tu disse é verdade, e que esta usando o binario correto gerado pela compilação, a unica coisa que poderia explicar isso é que em alguma lib esta setando a variavel setPokemonLevel como nil. Dê um find in files nos arquivos do servidor e veja se acha algo semelhante
  19. Eu participaria, mas tem que ter um tema definido, esse negocio de tema livre sempre da merda. E acho bacana ter requisitos, por exemplo, se eu quiser fazer um sistema pra tfs 1.1 e otclient eu terei muiiito mais recursos que um sistema feito num tfs 0.3.6 para cliente tibia(estou supondo que quando se refere a scripts está se referindo a script dentro do opentibia, e não algo generico em lua puro) Quanto a premiação acho valido algo simbolico como uma medalha
  20. Não existe limitação alguma no otc, inclusive dentro da classe Creature existe a função setName void Creature::setName(const std::string& name) { m_nameCache.setText(name); m_name = name; } Porém a questao é nos pacotes, quando uma criatura ja é conhecida, o server nao envia novamente diversos dados, não te aconselho a mecher nessa parte. Meu conselho é o seguinte, crie um opcode para enviar o nome da creature, dai no cliente tu só vai precisar receber o opcode, com algum parametro que lhe permita identificar a criatura. Porem tem que lembra de uma coisa, voce precisa enviar esse opcode pra todos os spectators da creature para que atualize em todos.
  21. sem postar o script é impossivel pra que alguem te ajude tu tem que mostrar o script, em alguns casos ate nas sources tem que verificar
  22. Como ta no *.otmod? se não tiver como autoload não vai iniciar. O usual é colocar ele no load-after do game interface
  23. Precisa disso não vei, é so acessar o nome do monsterType, que é o que carrega quando da load no monster int32_t LuaScriptInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid) ScriptEnviroment* env = getEnv(); if(Creature* creature = env->getCreatureByUID(popNumber(L))) { if(Monster* monster = creature->getMonster()) lua_pushstring(L, monster->getMonsterType()->name.c_str() ); else lua_pushstring(L, creature->getName().c_str()); } else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; }
  24. No script não tem nada relacionando a ela então, tem que ver nas sources como ta, só pode ser la
  25. Mas isso não formata o codigo não né?
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...