-
Total de itens
2553 -
Registro em
-
Última visita
-
Dias Ganhos
72
Tudo que zipter98 postou
-
Não. <event type="statschange" name="nome_do_evento" event="script" value="nome_do_arquivo.lua"/>
-
@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.
-
As informações que você deu são muito vagas. Qual a base usada? Como o pokémon seria obtido?
-
function onSay(cid) return doPlayerSendTextMessage(cid, 27, #getPlayersOnline().." player(s) online no servidor.") end
-
Tópico trancado a pedido do autor.
-
Erros na compilação?
-
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);
-
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
-
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.
-
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.
-
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.
-
pedido Item que add 50% de life e mana
tópico respondeu ao williamserravalle de zipter98 em Lixeira Pública
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 -
Este erro começou do nada ou após alguma modificação?
-
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.
-
Ao ter a vida zerada, o clone morre ou continua de pé, porém com HP 0?
-
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.
-
Algum erro na distro?
-
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
-
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()
-
Que erro?
-
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.
-
Tem algum código com o callback onStartup?
-
Uhum, pode ser. Editei meu comentário anterior com uma pequena modificação que você precisa fazer. Se possível, releia-o.
-
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"/>
-
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
- 166 respostas
-
- mega stone
- megevolution
-
(e 1 mais)
Tags:
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.