Ir para conteúdo

bepokemon

Visconde
  • Total de itens

    273
  • Registro em

  • Última visita

  • Dias Ganhos

    4

Tudo que bepokemon postou

  1. bepokemon

    Bug Heal

    Não vou ensinar como usar mas aqui está um script que faz isso function onStatsChange(cid, attacker, type, combat, value) local color = 100 if(type == 0) then doSendAnimatedText(getThingPos(cid), "+" .. value, color) end return true end Só mudar a color pra cor que voce preferir. Lembre-se de registrar no login.lua e no creaturescripts.xml.
  2. Se for para task, nao existe o porque colocar uma tabela com a storage, voce pode fazer assim: function onKill(cid, target) local monster = {"Dragon", "Orc", "Orc Berserker"} local tid = table.find(monster, getCreatureName(target)) if tid then setPlayerStorageValue(cid, 1010 + tid, getPlayerStorageValue(cid, 1010 + tid) < 1 and 1 or getPlayerStorageValue(cid, 1010 + tid)+1) doPlayerSendTextMessage(cid, 18, "You have killed ".. getPlayerStorageValue(cid, 1010 + tid) .." "..getCreatureName(target).."s.") end return true end Para terminar o script de task voce pode fazer alguma coisa para determinar o número maximo de monstros, exemplo: setPlayerStorageValue(cid, 2010 + tid, valor_maximo) Sendo 2010 o valor base e tid o valor de acordo com o monstro (seguindo a tabela monster) Assim o script ficaria: function onKill(cid, target) local monster = {"Dragon", "Orc", "Orc Berserker"} local tid = table.find(monster, getCreatureName(target)) if tid then setPlayerStorageValue(cid, 1010 + tid, getPlayerStorageValue(cid, 1010 + tid) < 1 and 1 or getPlayerStorageValue(cid, 1010 + tid)+1) if getPlayerStorageValue(cid, 1010+tid) == getPlayerStorageValue(cid, 2010+tid) then doPlayerSendTextMessage(cid, 18, "Congratulations, you have killed all the ".. getCreatureName(target).."s you needed to complete the task.") else doPlayerSendTextMessage(cid, 18, "You have killed ".. getPlayerStorageValue(cid, 1010 + tid) .." / ".. getPlayerStorageValue(cid, 2010 + tid) .." "..getCreatureName(target).."s.") end end return true end
  3. bepokemon

    Show Off

    *Ao se deparar com um ROMBO enorme dentro de uma cachoeira...* O que é aquilo? Parece um caminho entre a cachoeira! <3 Ficou lindo demais esse mapa, quero jogar!
  4. Cade o RPG em fazer items por um comando?
  5. Este fragmento do doors.lua mostra o funcionamento das chaves. if(isInArray(keys, item.itemid)) then if(itemEx.actionid > 0) then if(item.actionid == itemEx.actionid and doors[itemEx.itemid] ~= nil) then doTransformItem(itemEx.uid, doors[itemEx.itemid]) return true end doPlayerSendCancel(cid, "The key does not match.") return true end return false end
  6. Galere, na minha época a key numer era de acordo com o ActionID da mesma. Se colocar action ID 666 ela vai ser Key: 666 e vai abrir portas com o actionid 666 ou 1666 (Não lembro.). Boa sorte.
  7. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} SAQUES = SAQUES or {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function doCleanSaques(cid) if SAQUES[cid] ~= nil then SAQUES[cid] = nil return true end return false end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid SAQUES[cid] = SAQUES[cid] or 0 --------------------MESSAGES------------------------------------------------------------------------------ if (msgcontains(msg, 'deposit') or msgcontains(msg, 'depositar')) then selfSay('Digite quanto deseja depositar.', cid) talkState[talkUser] = 1 elseif (msgcontains(msg, 'withdraw') or msgcontains(msg, 'sacar')) then selfSay('Digite quanto deseja sacar.', cid) talkState[talkUser] = 3 elseif (msgcontains(msg, 'help') or msgcontains(msg, 'ajuda')) then selfSay('Digite {balance} ou {extrato} para ver seu saldo em conta.', cid) selfSay('Digite {deposit} ou {depositar} para depositar dinheiro a sua conta.', cid) selfSay('Digite {withdraw} ou {sacar} para sacar dinheiro de sua conta (Limite de 100 reais a cada 15 minutos).', cid) selfSay('Para {transferir}, {trocar notas},{trocar moedas} ou {sacar} sem limite de valor, precisara de um Cartao de Debito.', cid) talkState[talkUser] = 15 elseif (msgcontains(msg, 'balance') or msgcontains(msg, 'extrato')) then n = getPlayerBalance(cid) selfSay('Voce possui '..n..' centavos em sua conta.', cid) talkState[talkUser] = 0 ----------------------DEPOSIT------------------------------------------------------- elseif talkState[talkUser] == 1 then if (msgcontains(msg, 'all') or msgcontains(msg, 'tudo')) then n = getPlayerMoney(cid) selfSay('Tem certeza que deseja depositar '..n..' centavos?', cid) talkState[talkUser] = 2 else n = getNumber(msg) selfSay('Tem certeza que deseja depositar '..n..' centavos?', cid) talkState[talkUser] = 2 end elseif talkState[talkUser] == 2 then if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then if getPlayerMoney(cid) &--#62;= n then doPlayerDepositMoney(cid,n) selfSay('Deposito efetuado com sucesso.', cid) selfSay('EXTRATO BANCARIO: Sua conta possui ' ..getPlayerBalance(cid)..' centavos disponiveis.', cid) talkState[talkUser] = 0 else selfSay('Voce nao tem esta quantidade de dinheiro.', cid) end else selfSay('Volte sempre.', cid) end ----------------------WITHDRAW------------------------------------------------------------------------------------- elseif talkState[talkUser] == 3 then if SAQUES[cid] >= 10000 then selfSay('Voce nao pode mais sacar nada, espere ate sua conta ser liberada novamente', cid) return true end if (msgcontains(msg, 'all') or msgcontains(msg, 'tudo')) then n = math.max(10000 - SAQUES[cid], getPlayerBalance(cid)) selfSay('Tem certeza que deseja sacar '..n..' centavos?', cid) talkState[talkUser] = 4 else n = math.max(10000 - SAQUES[cid], getNumber(msg)) selfSay('Tem certeza que deseja sacar '..n..' centavos?', cid) talkState[talkUser] = 4 end elseif talkState[talkUser] == 4 then if (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) then if getPlayerBalance(cid) &--#62;= n then doPlayerWithdrawMoney(cid, n) SAQUES[cid] = SAQUES[cid] and SAQUES[cid] + n or n if SAQUES[cid] == 10000 then selfSay('Voce exedeu seu limite de saque, aguarde 15 minutos para poder sacar novamente.', cid) addEvent(doCleanSaques, 15 * 60 * 1000, cid) end selfSay(''..n..' centavos sacados com sucesso.', cid) selfSay('EXTRATO BANCARIO: Sua conta possui ' ..getPlayerBalance(cid)..' centavos disponiveis.', cid) talkState[talkUser] = 0 else selfSay('Saldo insuficiente.', cid) end else selfSay('Volte sempre.', cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) -- function maded by Gesior-- function getNumber(txt) --return number if its number and is &--#62; 0, else return 0 x = string.gsub(txt,"%a","") x = tonumber(x) if x ~= nill and x &--#62; 0 then return x else return 0 end end Nao testei.
  8. Esse sistema só fica bom em versoes que proibem o uso direto de items pela janela do Battle. Isso é editando source ou utilizando versoes como 7.6. Não aconselho colocar em nenhum servidor diferente desses.
  9. bepokemon

    Certo?

    local items = {1,2,3,4,5,6,7,8} function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, 98765) == 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a ".. getItemNameById(items[getPlayerVocation(cid)]) ..".") doPlayerAddItem(cid, items[getPlayerVocation(cid)], 1) setPlayerStorageValue(cid, 98765, 1) end return true end Em items = {} voce coloca os ids de acordo com vocation. {sorcerer, druid, paladin, knight, MS, ED, RP, EK}
  10. Troca isso: table.maxn(outfits) Por isso: table.maxn(config.outfits)
  11. Na verdade tem que editar a posicao que ele está pela database ...
  12. eu acho que você errou a variável ali na query. HAHAHA É. E também v sempre seria nul ._.
  13. function onSay(cid,words,params) local vocations, level, v, info = {['sorcerer'], ['druid'], ['paladin'], ['knight']}, getPlayerLevel(cid), vocations[string.lower(param)], getVocationInfo(v) if not v then doPlayerSendCancel(cid, "This vocation does not exists.") return true end doPlayerSetVocation(cid, v) playerid = getPlayerGUID(cid) db.executeQuery("UPDATE `players` SET `healthmax` = ".. 150 + (level * info.gainhealth) ..", `health` = ".. 150 + (level * info.gainhealth) ..", manamax = ".. 150 + (level * info.gainmana) ..", mana = ".. 150 + (level * info.gainmana) ..", cap = ".. level * info.gaincap .." WHERE `id` = "..playerid..";") doRemoveCreature(cid) return true end Serve pra todas as vocations sem precisar configurar.
  14. [ironic]Ótimo cara, garanto que contribuiu muito para a comunidade que nunca jamais saberia fazer isso. [/ironic] Quando fizer algo inovador avisa que a gente elogia. OBS: São críticas construtivas, deixa de ser infantil e aceita
  15. bepokemon

    Global Event

    To sem tempo pra postar, desculpa, mas é: os.time("%X") == "11:00" and isInArray(dias, os.time("%a")) then Sendo os dias os dias da semana abreviados em inglês em uma array: local dias = {"Wed", "Sat", "Sun"}
  16. Nossa, ele falou besteira, ignora. Eu não mecho com spell faz tempo. Mas é só colocar um: if not isPlayer(creature) then return true end Para o evento se terminar caso o player não esteja online ou não existe. (tente param.cid, cid ou var.cid)
  17. bepokemon

    Global Event

    Essa "funcao 10:10" vem junto ao basico do LUA ... Entao voce tem ela sim .-. os.time()
  18. Coloca isso dentro do seu data/globalevents/scripts/start.lua: heal = {} function onBaseHeal() for _,pid in ipairs(getPlayersOnline()) do if not heal[pid] then heal[pid] = {os.time(), os.time()} end end for pid,time in pairs(heal) do if not isPlayer(pid) then table.remove(heal, pid) end local voc = getVocationInfo(getPlayerVocation(pid)) if (os.time() - time[1]) >= voc.gainhpticks then if doCreatureAddHealth(pid, voc.gainhpamount) then heal[pid].time[1] = os.time() end end if (os.time() - time[2]) >= voc.gainmanaticks then if doCreatureAddMana(pid, voc.gainmanaamount) then heal[pid].time[2] = os.time() end end end return addEvent(function () onBaseHeal() end, 500) end function onStartup() db.executeQuery("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";") onBaseHeal() return true end
  19. Sobre o script, acho que ele está errado porque o comando é: doChangeSpeed(cid, delta) E como sabem, delta é variacão. O certo seria assim: local speed = getCreatureSpeed(cid) local newspeed = (speed - 300) function onLogin(cid) if speed ~= 300 then doChangeSpeed(cid, newspeed) end return true end
  20. eu gosto, queria saber se tem como alterar por exemplo o item que usa pra pescar e os que seram pescados. Para alterar o item que utiliza para pescar muda na tag das actions, lembrando de deixar faruse ... Para mudar os items pescaveis siga o exemplo na tabela fishes: [id do item] = {pt=quantos pontos dá, ch={numero minimo de vir, numero maximo de vir}, sp=tempo em segudos que some} Lembrando quem em ch ele segue um random de 1 a 100.
  21. Porque ninguém gosta desse tipo de script? B
  22. Posta o code em C++ pra gente tentar fazer alguma coisa ...
  • Quem Está Navegando   0 membros estão online

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