Jump to content
  • Announcements

    • Tierri Lopes

      Introduce yourself   12/20/2017

      Introduce yourself here:  https://tlthings.net/board/index.php?/forum/6-apresentações/  

PACI

Verified Member
  • Content count

    64
  • Joined

  • Last visited

  • Days Won

    2

PACI last won the day on January 10

PACI had the most liked content!

Community Reputation

47 Neutral

1 Follower

About PACI

  • Rank
    Well-Known Member

Recent Profile Visitors

112 profile views
  1. Dúvida - Quest

    Coloca o seguinte na zona dos table.insert() e vê o que te dá. say("debug - pc cant enter: "..pc.get_name())
  2. Dúvida - Quest

    ^this E deixa para aí a quest.
  3. remove as habilidades do skill_proto.
  4. Dungeon quest

    Escrevi isto num instante. Se quiseres aprender a construir dungeons, esta é, a meu ver, uma base simples e facil de entender. quest my_simple_dungeon begin state start begin function setting() return { ["MAP_INDEX"] = 0, ["ENTRY_POS"] = {0, 0}, ["FLOORS"] = { {0, 0}, -- 1 {0, 0}, -- 2 -- etc }, ["TASKS"] = { {101, 20}, {102, 30}, -- etc }, -- etc } end function in_dungeon() local dunMapIdx = my_simple_dungeon.setting().MAP_INDEX return pc.get_map_index() >= dunMapIdx * 10000 and pc.get_map_index() < (dunMapIdx + 1) * 10000 end function join() local setting = my_simple_dungeon.setting() if party.is_party() then d.new_jump_party(setting.MAP_INDEX, setting.ENTRY_POS[1], setting.ENTRY_POS[2]) else d.join(setting.MAP_INDEX) end end when MY_DUNGEON_GUARDIAN.chat."Dungeon" begin say("Entrar?") if select("Y", "N") == 2 then return end my_simple_dungeon.join() end when login with my_simple_dungeon.in_dungeon() begin local setting = my_simple_dungeon.setting() if d.getf("level") == 0 then -- d.regen_file(".../regen_1.txt") -- d.spawn_mob(0, 0, 0) -- vnum, x, y d.notice("Mata "..setting.TASKS[1][2].." "..mob_name(setting.TASKS[1][1])) d.setf("level", 1) end end when kill with not npc.is_pc() and my_simple_dungeon.in_dungeon() begin local level = d.getf("level") local tasks = my_simple_dungeon.setting().TASKS if npc.get_race() ~= tasks[level][1] then return end local killCount = d.getf("kill_count") + 1 if killCount < tasks[level][2] then d.setf("kill_count", killCount) return end d.notice("Nivel "..level.." completo. 5 segundos para subir.") d.setf("kill_count", 0) server_timer("my_simple_dungeon_jump_timer", 5, d.get_map_index()) end when my_simple_dungeon_jump_timer.server_timer with d.select(get_server_timer_arg()) begin local setting = my_simple_dungeon.setting() local nextLevel = d.getf("level") + 1 local task = setting.TASKS[nextLevel] d.setf("level", nextLevel) d.notice("Mata "..task[2].." "..mob_name(task[1])) -- d.regen_file(".../regen_"..nextLevel..".txt") -- d.spawn_mob(0, 0, 0) -- vnum, x, y d.jump_all(setting.FLOORS[nextLevel][1], setting.FLOORS[nextLevel][2]) end end end
  5. RunMain Error

    verifica se o root do client desses jogadores está corrompido (falha no download, erro de extração?), oupede para removerem esse ficheiro e executarem o patcher. por outro lado, se usares cython não tem nada que andar à procura do system.py.
  6. quest

    Aqui, count é uma tabela ou nil, nunca uma string ou número.
  7. Pedido Torre Sakita

    -- Colocar no chat-trigger if not party.is_party() then say("sem grupo") return elseif not party.is_leader() then say("não és o líder") return end local canEnter = true local pids = {party.get_member_pids()} if table.getn(pids) < 4 then say("necessários 4 membros") return end for _, pid in ipairs(pids) do q.begin_other_pc_block(pid) if pc.get_level() < 40 then canEnter = false end q.end_other_pc_block() end if not canEnter then say("existem jogadores com nivel < 40") return end Entretanto, a função d.new_jump_party() cria uma nova dungeon instance do mapa escolhido (pelo index) e transporta todos os membros do grupo do jogador para as posições selecionadas. Dito isto, todas as funções dungeon colocadas depois desta, não irão funcionar. Isto porque nesse momento não existe nenhuma dungeon. Colocá-las num login-trigger (when login ... begin), faz com que corram perfeitamente.
  8. event_drop

    Não possuis a função npc.get_level(). Coloca a seguinte no teu questlua_npc.cpp e adiciona-o ao array de funções. int npc_get_level(lua_State* L){ LPCHARACTER pNPC = CQuestManager::instance().GetCurrentNPCCharacterPtr(); lua_pushnumber(L, pNPC ? pNPC->GetLevel() : 0); return 1; }
  9. event_drop

    number() em vez de math.random(). Mas se preferires o segundo, aconselho-te a utilizares: math.randomseed(os.time()) antes.
  10. event_drop

    Usa syschats("texto") antes de cada condição para saber onde é que a função para.
  11. event_drop

    -- Diferença maior que 10 niveis if math.abs(pc.get_level() - npc.get_level()) > 10 then return end -- Drop aleatório local drop = {itemVnum1, itemVnum2, itemVnum3} game.drop_item_with_ownership(drop[number(1, table.getn(drop))])
  12. Portais bugados

    mob_proto do servidor, procuras pelo vnum do portal, e no nome tens as coordenadas de warp.
  13. quest wtv begin state start begin when MOB_VNUM.kill begin affect.add_collect(apply.ATTBONUS_HUMAN, 1, tempo_em_segundos) end end end
×

Important Information

By using this site, you agree to our Terms of Use.