Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    72

Tudo que zipter98 postou

  1. zipter98

    Alguns scripts

    Não. <event type="statschange" name="nome_do_evento" event="script" value="nome_do_arquivo.lua"/>
  2. @brendoonh No seu código, o grupo 4 não receberá o pagamento mensal devido às duas travessões colocadas. Use esta tabela: local salary = { [4] = 150000000, [5] = 200000000, [6] = 250000000, } E, se possível, teste com mais de um personagem. @Farathor Simplesmente mude o "1" do globalevent pelo dia de hoje e o horário (na tag) pelo desejado. Entretanto, a database só será atualizada quando o personagem deslogar.
  3. As informações que você deu são muito vagas. Qual a base usada? Como o pokémon seria obtido?
  4. zipter98

    Comando !online

    function onSay(cid) return doPlayerSendTextMessage(cid, 27, #getPlayersOnline().." player(s) online no servidor.") end
  5. Pelo fato da função não estar sendo encontrada no código Lua, significa que sua instalação não foi bem sucedida. Talvez você tenha esquecido de colocar alguma coisa em luascript.cpp/luascript.h, ou um erro tenha aparecido durante a compilação. Em luascript.cpp, além dessa parte mostrada, você também deve colocar, em logicamente outra parte do arquivo, isso: //setPokemonLevel(cid, level) lua_register(m_luaState, "setPokemonLevel", LuaScriptInterface::luaSetPokemonLevel); E em luascript.h, isso: static int32_t luaSetPokemonLevel(lua_State* L);
  6. zipter98

    Alguns scripts

    Spell: local config = { itemId = 7171, --Outfit (item) que o target irá assumir. time = 10, --Duração do debuff. distance_effect = xxx --Distance effect. Se não quiser, basta colocar false. } function onCastSpell(cid, var) local target = variantToNumber(var) if not isCreature(target) then return doPlayerSendCancel(cid, "You need a target to cast this spell.") end if config.distance_effect then doSendDistanceShoot(getThingPos(cid), getThingPos(target), config.distance_effect) end doSetCreatureOutfit(cid, {lookTypeEx = config.itemId}, config.time * 1000) setPlayerStorageValue(cid, 9182, os.time() + config.time) doCreatureSetNoMove(cid, true) addEvent(function() if not isPlayer(cid) then return true end doCreatureSetNoMove(cid, false) end, config.time * 1000) return true end Creatureevent (não se esqueça de registrá-lo em login.lua): function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHGAIN and isPlayer(cid) and getPlayerStorageValue(cid, 9182) > os.time() then return false end return true end
  7. Todos os comentários participantes da discussão foram deletados. Quando virem algum post desagradável, ao invés de rebaterem-no, reportem à moderação. Continuando o conflito, a situação só tende a piorar, além dos envolvidos estarem sujeitos a alertas ou quem sabe punições mais severas. Não só reforçando, mas também complementando o comentário do nosso amigo Lumus: tais posts não só são mal-vindos neste tópico, como também em qualquer outro. Estabeleçam discussões saudáveis para o bem da comunidade. Não alertei ninguém desta vez. Entretanto, da próxima, não serei tão sutil.
  8. A mudança neste código (init.lua) passou a ser desnecessária depois da atualização do globalevent que enviei. Sobre o servidor crashar, lamento, mas não vejo motivo algum para que isso aconteça. Talvez seja problema da sua distro.
  9. Talvez seja algum problema em um creaturescript. Se você puder postar seu goback.lua (data/creaturescripts/scripts) e informar o ID deste item que está sendo criado, posso tentar uma coisa.
  10. local exhaust_time = 2 --Tempo, em minutos, para usar o item novamente. function onUse(cid) if getPlayerStorageValue(cid, 3932) > os.time() then return doPlayerSendCancel(cid, "Sorry, you need wait more "..getPlayerStorageValue(cid, 3932) - os.time().." second(s) to use this item again.") end doPlayerSendTextMessage(cid, 27, "You restored 50% of your health and mana.") doCreatureAddHealth(cid, getCreatureMaxHealth(cid) * 0.5) doCreatureAddMana(cid, getCreatureMaxMana(cid) * 0.5) setPlayerStorageValue(cid, 3932, os.time() + exhaust_time * 60) return true end
  11. Este erro começou do nada ou após alguma modificação?
  12. Você tem certeza absoluta que não aparece erro algum na distro? Talvez algo tenha passado despercebido. A tag está instalada corretamente, bem como o evento correspondente existe no seu servidor.
  13. Ao ter a vida zerada, o clone morre ou continua de pé, porém com HP 0?
  14. Sim, você deve tirar aquela linha do código init.lua. Se o problema for na tag, então, por favor, poste seu globalevents.xml.
  15. zipter98

    Alguns scripts

    3º pedido: local config = { distance_effect = xxx, --Distance effect. Se não quiser, basta colocar false. effect = xxx, --Efeito que aparecerá no alvo. times = 10, --Quantos hits, no total. interval = 1000 --Intervalo de tempo entre as absorções. } function leech_seed(cid, target, times) local damage_formula = {min = getPlayerLevel(cid) * 3, max = getPlayerLevel(cid) * 6} --Fórmula de dano. if not isCreature(cid) or not isCreature(target) or times <= 0 then return true end local damage = math.random(damage_formula.min, damage_formula.max) doSendMagicEffect(getThingPos(target), config.effect) doSendAnimatedText(getThingPos(target), "-"..damage, 144) doCreatureAddHealth(target, -damage) doCreatureAddHealth(cid, damage) addEvent(leech_seed, config.interval, cid, target, times - 1) end function onCastSpell(cid, var) local target = variantToNumber(var) if not isCreature(target) then return doPlayerSendCancel(cid, "You need a target to cast this spell.") end if config.distance_effect then doSendDistanceShoot(getThingPos(cid), getThingPos(target), config.distance_effect) end leech_seed(cid, target, config.times) return true end
  16. Acabo de corrigir os erros restantes do sistema e testá-lo. Pelo menos no meu servidor está funcionando perfeitamente. Se apresentar algum erro no globalevent, troque: function onTime() por: function onTimer()
  17. Abaixo de: function onStartup() coloque: db.query("UPDATE player_storage SET value = 0 WHERE key = "..STAFF_VAULT.." AND value < 0") E, por gentileza, atualize o globalevent que passei anteriormente pelo novo.
  18. Tem algum código com o callback onStartup?
  19. Uhum, pode ser. Editei meu comentário anterior com uma pequena modificação que você precisa fazer. Se possível, releia-o.
  20. Primeiramente, em 000-constant.lua (data/lib), coloque as seguintes variáveis: STAFF_VAULT = 49391 STAFF_VAULT_LIMITS = 49392 Depois, em data/globalevents/scripts: local salary = { --[group_id] = money, } local func = db.executeQuery or db.query function onTime() if os.date("%d") == "1" then for group_id, money in pairs(salary) do local query = db.getResult("SELECT id, online FROM players WHERE group_id = "..group_id) if query:getID() ~= -1 then repeat if query:getDataInt("online") > 0 then local pid = getPlayerByName(getPlayerNameByGUID(query:getDataInt("id"))) setPlayerStorageValue(pid, STAFF_VAULT, (getPlayerStorageValue(pid, STAFF_VAULT) < 0 and 0 or getPlayerStorageValue(pid, STAFF_VAULT)) + money) setPlayerStorageValue(pid, STAFF_VAULT_LIMITS, 0) else local verify_query = db.getResult("SELECT * FROM player_storage WHERE player_id = "..query:getDataInt("id").." AND key = "..STAFF_VAULT) if verify_query:getID() ~= -1 then func("UPDATE player_storage SET value = value + "..money.." WHERE player_id = "..query:getDataInt("id").." AND key = "..STAFF_VAULT) func("UPDATE player_storage SET value = 0 WHERE player_id = "..query:getDataInt("id").." AND key = "..STAFF_VAULT_LIMITS) verify_query:free() else func("INSERT INTO player_storage VALUES ("..query:getDataInt("id")..", "..STAFF_VAULT..", "..money..")") func("INSERT INTO player_storage VALUES ("..query:getDataInt("id")..", "..STAFF_VAULT_LIMITS..", 0)") end end until not query:next() query:free() end end end return true end Tag: <globalevent name="staff_salary" time="00:00" event="script" value="nome_do_arquivo.lua"/> data/talkactions/scripts: function onSay(cid, words, param) local balance, wasted_this_month = getPlayerStorageValue(cid, STAFF_VAULT) < 0 and 0 or getPlayerStorageValue(cid, STAFF_VAULT), getPlayerStorageValue(cid, STAFF_VAULT_LIMITS) < 0 and 0 or getPlayerStorageValue(cid, STAFF_VAULT_LIMITS) if words == "/cofreLimits" then local popup_message = [[ *** Informations about your personal vault *** You wasted this month: %d gold. At the moment, you have %d gold in your personal vault.]] doPlayerPopupFYI(cid, popup_message:format(wasted_this_month, balance)) else if param == "" then return doPlayerSendCancel(cid, "Please, specify the player name and the money you want transfer.") end local info = param:explode(",") local player, money = getPlayerByName(info[1]), tonumber(info[2]) if not isPlayer(player) then return doPlayerSendCancel(cid, "This player doesn't exist or is offline.") elseif not money then return doPlayerSendCancel(cid, "Please, write a valid number.") elseif money > balance then return doPlayerSendCancel(cid, "You can't transfer this quantity of money.") end local player_balance = getPlayerBalance(player) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You successfully transfered "..money.." gold from your personal vault to "..(player == cid and "yourself" or info[1])..".") if player ~= cid then doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE, "You received "..money.." gold from "..getCreatureName(cid)..". The money was sent to your bank.") end doPlayerSetBalance(player, player_balance + money) setPlayerStorageValue(cid, STAFF_VAULT, balance - money) setPlayerStorageValue(cid, STAFF_VAULT_LIMITS, wasted_this_month + money) end return true end Tag: <talkaction words="/cofreLimits;/cofreTransfer" access="4" event="script" value="nome_do_arquivo.lua"/>
  21. No creaturescript, abaixo de: local ballName = getItemAttribute(thisball.uid, "poke") coloque: if ballName:find("Mega") then ballName = megaEvolutions[getItemAttribute(thisball.uid, "megaStone")][1] doItemSetAttribute(thisball.uid, "poke", ballName) end Na action, remova: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end Depois, abaixo de: if cd > 0 then setCD(item.uid, "blink", 0) end coloque: if getItemAttribute(item.uid, "poke"):find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) end end
  • Quem Está Navegando   0 membros estão online

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