Ir para conteúdo

Demonbholder

Infante
  • Total de itens

    1551
  • Registro em

  • Última visita

  • Dias Ganhos

    24

Tudo que Demonbholder postou

  1. Demonbholder

    Firewalker Boss

    SCRIPTS ABAIXO. Em creatureScripts.xml <event type="kill" name="Rotten" script="NomeDoArquivo.lua"/> Em login.lua registerCreatureEvent(cid, "Rotten") Até mais.
  2. Editei o script, pode tentar agora.
  3. Valeu, em breve adicionarei a versão 1.2, vou fazer o id das gemas editável, e fazer com que possa se refinar a arma mais de uma vez.
  4. Simples e útil, valeu ae cara. OBS: Fiz a função também, entra no msn.
  5. Não precisa colocar id de vocação no script, ele vai promover os jogadores que são kina, sorc, druid e paly para suas devidas promoções. Caso esteja se referindo ao vocations.xml, deve se editar o fromvoc="" da vocação promotion, e colocar o id da vocação que sucede a promoção.
  6. e você acabou de reviver um tópico, evite reviver tópicos ou te reportarei.
  7. ahhhh, mal pessoal, tinha um pequeno erro na função getName() mas acabo de corrigi-lo; agora, esta perfeito.
  8. tenta function onKill(cid, target) if isPlayer(target) and isPlayer(cid) then if getPlayerLevel(target) >= 1000 and getPlayerLevel(target) < 2000 then local item = doPlayerAddItem(cid, id, 1) -- mudar doItemSetAttribute(item, "description", "You killed "..getCreatureName(target)..". He was at level "..getPlayerLevel(target)..".") elseif getPlayerLevel(target) >= 2000 and getPlayerLevel(target) < 3000 then local item = doPlayerAddItem(cid, id2, 1) -- mudar doItemSetAttribute(item, "description", "You killed "..getCreatureName(target)..". He was at level "..getPlayerLevel(target)..".") elseif getPlayerLevel(target) >= 3000 and getPlayerLevel(target) < 4000 then local item = doPlayerAddItem(cid, id3, 1) -- mudar doItemSetAttribute(item, "description", "You killed "..getCreatureName(target)..". He was at level "..getPlayerLevel(target)..".") elseif getPlayerLevel(target) >= 4000 then local item = doPlayerAddItem(cid, id4, 1) -- mudar doItemSetAttribute(item, "description", "You killed "..getCreatureName(target)..". He was at level "..getPlayerLevel(target)..".") end return TRUE end return TRUE end só trocar o id dos itens ali em cima.
  9. Como o lordfire falou, coloque um actionid no item desejado e use esta tag: <action actionid="AID" event="script" value="NomeDoArquivo.lua"/> Onde está AID você coloca o mesmo actionid que você colocou no item pelo map editor. Em NomeDoArquivo tu coloca o nome do arquivo que tu criou para colar o script.
  10. é, o eskylo fez do mesmo jeito que eu fiz... aliás, é double topic, mas eu não sei se ainda pode-se usar a tag "charges" nas novas versões. Se fosse por quantidade seria fácil.
  11. pow cara, se já tem as funções é mole, até vc faz. function onUse(cid, item) doPlayerUnlearnInstantSpell(cid, "exura") doPlayerLearnInstantSpell(cid, "exura gran") end
  12. Vai no arquivo do trainer, e edita isso: <attack name="melee" interval="2000" skill="20" attack="16"/> Diminui o interval.
  13. function onUse(cid, item) local pos = {x=, y=, z=} local mon1 = 'Ice Golem' local mon2 = 'Frost Dragon' local mon3 = 'Water Elemental' local tempo1 = ?? local tempo2 = ?? local tempo3 = ?? doCreateMonster('Demon', pos) addEvent(doCreateMonster, tempo1*1000, mon1, pos) addEvent(doCreateMonster, tempo1*1000, mon2, pos) addEvent(doCreateMonster, tempo1*1000, mon3, pos) addEvent(doCreateMonster, tempo2*1000, mon1, pos) addEvent(doCreateMonster, tempo2*1000, mon2, pos) addEvent(doCreateMonster, tempo2*1000, mon3, pos) addEvent(doCreateMonster, tempo3*1000, mon1, pos) addEvent(doCreateMonster, tempo3*1000, mon2, pos) addEvent(doCreateMonster, tempo3*1000, mon3, pos) end Edita a posição e os tempos. Os tempos são em segundos e começam a contar assim que der use no item.
  14. Você não entendeu... usa esse script para a talkaction: function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 30 -- dias que serão adicionados local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") addEvent(doRemoveCreature, 3000, cid) if (config.removeOnUse == "yes") then doRemoveItem(item.uid, 1) end return TRUE end Feito isso, você vai em creatureScripts e põe esse script lá: function onLogin(cid) local id = getPlayerGUID(cid) local ne = getCreatureName(cid) local nome = string.sub(ne, 7) if getPlayerStorageValue(cid, 13540) - os.time() > 0 then if string.match(ne, "%p%a+%p") ~= '[VIP]' then doPlayerSendTextMessage(cid, 22, "Você vai ser kikado em 10 segundos.") addEvent(doRemoveCreature, 10000, cid) db.executeQuery("UPDATE `players` SET `name` = `[VIP] "..ne.."` WHERE `id` = "..id) end return TRUE end if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then if string.match(ne, "%p%a+%p") == '[VIP]' then doPlayerSendTextMessage(cid, 22, "Você vai ser kikado em 10 segundos.") addEvent(doRemoveCreature, 10000, cid) db.executeQuery("UPDATE `players` SET `name` = `"..nome.."` WHERE `id` = "..id) end return TRUE end end Depois vá em creaturescripts.xml e cole esta tag: <event type="login" name="VIPName" event="script" value="NomeDoArquivo.lua"/> Onde esta NomeDoArquivo você coloca o nome do arquivo .lua que você criou para colar o script acima.
  15. Para ficar tirando de tanto a tanto tu poderia usar condition.
  16. function onLogin(cid) local id = getPlayerGUID(cid) local ne = getCreatureName(cid) local nome = string.sub(ne, 7) if getPlayerStorageValue(cid, 13540) - os.time() > 0 then if string.match(ne, "%p%a+%p") ~= '[VIP]' then doPlayerSendTextMessage(cid, 22, "Você vai ser kikado em 10 segundos.") addEvent(doRemoveCreature, 10000, cid) db.executeQuery("UPDATE `players` SET `name` = `[VIP] "..ne.."` WHERE `id` = "..id) end return TRUE end if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then if string.match(ne, "%p%a+%p") == '[VIP]' then doPlayerSendTextMessage(cid, 22, "Você vai ser kikado em 10 segundos.") addEvent(doRemoveCreature, 10000, cid) db.executeQuery("UPDATE `players` SET `name` = `"..nome.."` WHERE `id` = "..id) end return TRUE end end Hmm, pedido que vale a pena, até.
  17. function onLogin(cid) if getPlayerVocation(cid) > 5 then doEffect(cid) return TRUE end return TRUE end function doEffect(cid) local efeito = 3 local delay = 5 if isCreature(cid) == TRUE then doSendMagicEffect(getCreaturePosition(cid), efeito) addEvent(doEffect, delay*1000, cid) end return TRUE end tenta ai, só quem tive vocação 6 pra cima vai ter raio.
  18. então tranquilo, reportando aqui.
  19. Tenta agora: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local vip = ID_DO_ITEM_VIP if(msgcontains(msg, 'promote') or msgcontains(msg, 'promotion')) then selfSay('Voce gostaria de ser promovido a essa vocaçao por 3 vip orbs?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerLevel(cid) >= 20 and getPlayerVocation(cid) < 5) then if(doPlayerRemoveItem(cid, vip, 3) == TRUE) then setPlayerPromotionLevel(cid, 1) selfSay('Voce foi promovido.', cid) else selfSay('Voce nao tem 3 vips orbs.', cid) end else selfSay('Descupe, voce ja foi promovido ou nao tem o nivel necessario.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('ate mais.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) tinha esquecido de fechar um parênteses antes.
  20. Faala galera; eu tinha um problema em um outro script que era uma função retornar o maior valor de uma tabela, mas ai eu consegui fazer e terminei o script. Bom, eu achei que seria útil posta-la aqui, então eu dei uma editada para que possam aplica-la em qualquer script. Vamos logo ao script: function getTabHighValue(tab, value) for y, x in ipairs(tab) do if isNumber(x) and x > value then value = x change = 1 end end change = change == nil and error("No High Value in table") or nil return value end Como funciona: Nos parâmetros você coloca primeiro a tabela onde estão os valores, e no segundo você coloca o valor inicial, ou seja, o valor mínimo para que retorne o maior valor. Talkaction: function onSay(cid, words, param) t = {} for h, pid in ipairs(getPlayersOnline()) do t[h] = getPlayerLevel(pid) end val = getTabHighValue(t, 0) doPlayerSendTextMessage(cid, 4, val) end Manda uma mensagem dizendo o maior level dos jogadores online. Bom, é isso, essa função pode lhe ser útil algum dia, até.
  • Quem Está Navegando   0 membros estão online

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