-
Total de itens
750 -
Registro em
-
Última visita
-
Dias Ganhos
8
Tudo que dalvorsn postou
-
poketibia [Encerrado] Dúvida Fishing Poketibia
tópico respondeu ao FelipeCzY de dalvorsn em Tópicos Sem Resposta
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 -
poketibia [Encerrado] Dúvida Fishing Poketibia
tópico respondeu ao FelipeCzY de dalvorsn em Tópicos Sem Resposta
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 -
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
-
deve ser algum pokemon que nao ta configurado man
-
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)
-
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
-
dúvida Como usar um metodo de uma outra classe?
pergunta respondeu ao akira021 de dalvorsn em Resolvidos
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. -
Posta todos os script que tao sendo apontados nos erros, só assim pra te ajudarem.
-
dúvida Como usar um metodo de uma outra classe?
pergunta respondeu ao akira021 de dalvorsn em Resolvidos
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) -
poderia, se não tivesse a palavra 'notas' no comentario
-
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 :>
-
dúvida reduzir daños em OnStatsChange tfs 0.4
pergunta respondeu ao Bennyhappy de dalvorsn em Scripts
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 -
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
-
poketibia [Encerrado] Dúvida Fishing Poketibia
tópico respondeu ao FelipeCzY de dalvorsn em Tópicos Sem Resposta
Tu tem que postar teu sistema para que possamos analisar o codigo e te dizer. -
action [TFS 1.X] Fishing System (PXG)
tópico respondeu ao darkeyren de dalvorsn em Actions e Talkactions
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- 11 respostas
-
- fishing system pxg
- fishing
- (e 2 mais)
-
action [TFS 1.X] Fishing System (PXG)
tópico respondeu ao darkeyren de dalvorsn em Actions e Talkactions
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- 11 respostas
-
- fishing system pxg
- fishing
- (e 2 mais)
-
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
-
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
-
Como tira limitação do nome da criatura no otclient
pergunta respondeu ao izac ximenes de dalvorsn em Clients
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. -
[Encerrado] Ajuda Moves "Paralyze"
tópico respondeu ao zebombinha de dalvorsn em Tópicos Sem Resposta
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 -
Como ta no *.otmod? se não tiver como autoload não vai iniciar. O usual é colocar ele no load-after do game interface
-
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; }
-
dúvida Spells setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
pergunta respondeu ao chateadoagr de dalvorsn em Scripts
No script não tem nada relacionando a ela então, tem que ver nas sources como ta, só pode ser la -
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.