Ir para conteúdo

Lordfire

Lenda
  • Total de itens

    2605
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Posts postados por Lordfire

  1. Acho que você se perdeu na configuração. Não precisa de 2 tabelas pra ter valores da configuração, simplifique em uma só. Também mudei outras coisinhas para limpar e deixar mais eficiente (note o string.format):

    local config = {
    	exhaustion = 120,
    	health = 1000,
    	mana = 1000,
    	level = 5,
    	pos = {x = 1024, y = 1025, z = 7},
    	storage = 3870,
    }
    
    function onUse(cid, item, fromPos, itemEx, topos)
    	local storage = getPlayerStorageValue(cid, config.storage)
    	if storage > os.time() and storage < 100 + os.time() then
    		doPlayerSendTextMessage(cid, 24, string.format("The stone is charging, please wait %d second%s", storage - os.time(), storage - os.time() == 1 and "" or "s"))
    		return true
    	elseif getPlayerLevel(cid) < config.level then
    		doPlayerSendCancel(cid, string.format("You need to be at least level %d.", config.level))
    		return true
    	end
    	doTeleportThing(cid, config.pos)
    	doCreatureAddHealth(cid, config.health)
    	doCreatureAddMana(cid, config.mana)
    	doRemoveItem(item.uid, 1)
    	doSendMagicEffect(getCreaturePosition(cid), 15)
    	setPlayerStorageValue(cid, config.storage, os.time() + config.exhausted)
    	return true
    end
  2. Nessa parte, Bruno:

    for i=1, sep do
    	tsep = tsep.."-"
    end
    Troque por

    tsep = tsep .. string.rep("-", sep)
    Menos gambiarra e mais organização :D

     

    Aliás, nessa mesma função, tem uma porrada de concatenações. Acho que fica mais bonitinho e organizado se você usar variáveis e um string.format

  3. Meu deus, que script gigante e mal otimizado. Tem umas variáveis que eu não descobri de onde surgiram. Também você usou um while quando podia usar um for.

     

    local raids = {
        {name = "Monstros de fogo", monsters = {"Demon", "Dragon Lord", "Fire Devil"}, boss = "Orshabaal", fromPos = {x=150, y=37, z=7}, toPos = {x=157, y=42, z=7}, dates = {"Thursday-15:00", "Saturday-22:12"}, maxMonsters = 15, timeBoss = 60},
        {name = "Dragons", monsters = {"Dragon", "Dragon Lord", "Dragon Hatchling"}, boss = "Demodras", fromPos = {x=1, y=1, z=1}, toPos = {x=1, y=1, z=1}, dates = {"Monday-12:01", "Sunday-20:10"}, maxMonsters = 20, timeBoss = 120},
    }
    
    -- http://stackoverflow.com/questions/18093728/is-there-any-performance-value-in-creating-local-copies-of-lua-functions
    local r = math.random
    
    function doCreateMonsterIfWalkable(monster, pos)
        (getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 or getTopCreature(pos).uid > 0 or isCreature(getTopCreature(pos).uid) or getTileInfo(pos).protection or hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7)) and doCreateMonster(raid.monsters[monster], pos)
    end
     
    function onThink(interval, lastExecution, thinkInterval)
        for _, raid in pairs(raids) do
            if table.find(raid.dates, os.date("%A-%H:%M")) then
                local spawn_time = 60000, spawn_boss = raid.maxMonsters + (raid.timeBoss << 1)) * 500
                addEvent(doBroadcastMessage, 60000, "A invasao de " .. raid.name .. " teve inicio!")
                addEvent(doBroadcastMessage, spawn_boss, "O boss " .. raid.boss .. " chegou na invasao!")
                for i = 1, raid.maxMonsters do
                    addEvent(doCreateMonsterIfWalkable(raid.monsters[r(1, #raid.monsters)], {x = r(raid.fromPos.x, raid.toPos.x), y = r(raid.fromPos.y, raid.toPos.y), z = r(raid.fromPos.z, raid.toPos.z)}), spawn_time)
                    spawn_time = spawn_time + 500
                end
                addEvent(doCreateMonsterIfWalkable(raid.boss, {x = r(raid.fromPos.x, raid.toPos.x), y = r(raid.fromPos.y, raid.toPos.y), z = r(raid.fromPos.z, raid.toPos.z)}, spawn_boss)
            end
        end
        return true
    end
    Mudei umas coisas de cabeça, se não der me avisa.
  4. Coloca o nome desses arquivos, então, salva e dá um F5 pro mapa recarregar. Depois confere os spawns e houses, se estiverem na posição certa, tá pronto.

     

    Se não, vais ter que procurar isso, aí não posso ajudar.

  5. Se é através do seu site, só com sua senha.

     

    Se não, abra seu VPS e use:

    alias reboot="date > reboots.txt"
    Depois com

    cat reboots.txt
    Você vai ver quando alguém tentou dar "reboot" no seu VPS.
  6. Eu manjava vários glitches e técnicas pra subir skills, tipo aquele de subir Speech em Riven (é isso?) e o de subir smithing+enchanting com adagas e ganhar uma grana foda.

     

    Parei de jogar porque virou mais do mesmo depois do level 30, mas é um caralhudo jogo. Quero voltar a jogar quando acabar todos os que comprei e não joguei.

  7. Pessoal, pesquisem antes pra ver se não existe já. Nomes supracitados como "Null" ou "Sync" são comuns e provavelmente já existem.

    Do mais, se o usuário não entra desde, tipo, 2007, não vejo porque o Alex não possa mudar também. Eu mesmo fiz isso com o moderador "HisashiItYamaguti" que virou "Hisashi".

     

    Aliás, Alex, você bem que podia liberar espaço em branco nos nomes né? Quem quer colocar nome+sobrenome junto fica ruim.

     

    Obs: Lordfire ia mudar meu nome quando fui para coordenaçao de webs e ateh hoje nao mudou, tando que meu email xtibia é piabeta@xtibia.com

    Seu viado.
  • Quem Está Navegando   0 membros estão online

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