Ir para conteúdo

bepokemon

Visconde
  • Total de itens

    273
  • Registro em

  • Última visita

  • Dias Ganhos

    4

Tudo que bepokemon postou

  1. O problema é que você está igualando a vocation do player com varios coisas. Isso não é possível. Vou refazer o script todo para você. function onUse(cid, item, frompos, item2, topos) local voc, n, msg = getPlayerVocation(cid), 0, "You have found a: " local prizes = { [1] = {{7424,1}}, [2] = {{7438,1},{2352,1}}, [3] = {{2408,1,true},{2415,1},{2453}}} if getPlayerStorageValue(cid,19000) ~= -1 then doPlayerSendTextMessage(cid,22,"It's empty.") return true end if isInArray({1,2,5,6,9,10}, voc) then n = 1 elseif isInArray({3,7,11}, voc) then n = 2 else n = 3 end for _,item in ipairs(prizes[n]) do if item[3] then local i = doPlayerAddItem(cid,2408,1) doItemSetAttribute(i, "attack", 87) doItemSetAttribute(i,"description","Refinado(Atk): +22\nEsse item foi obtido por "..getCreatureName(cid)..".") else doPlayerAddItem(cid, item[1], item[2]) end msg = msg .. getItemArticleById(item[1]).." "..getItemNameById(item[1]).."," end setPlayerStorageValue(cid,19000,1) doPlayerAddItem(cid,2160,10) doPlayerSendTextMessage(cid, 22, string.gsub(msg, -1) .. ".") return true end
  2. Algum servidores deixaram de usar o global.lua e no caso ele não existe mais. Agora a única forma de criar uma quarta moeda é editando o arquivo changegold.lua nos actions.
  3. Ajudinha antes de dormir: if getPlayerSlotItem(cid CONST_SLOT_HEAD).itemid == getItemIdByName('helmet of the deep') then Amanhã posto o código completo. Abraços.
  4. @Topic Você pode fazer uma creaturescript onThink que verifica: Vocation LookType Addons Se for Knight, Mage, Addon (do ML) você tira dois MLs do player .. deve dar.
  5. Testa os 2 auhauhaa Isso explica MUITA coisa. =) Obrigado.
  6. Não cara, comprei uma bola de cristal no mercado ali e adivinhei. Se ele quiser usar ele pode pegar o script ali de volta. Relaxa aí.
  7. function onAdvance(cid, oldLevel, newLevel) if skill == SKILL__LEVEL then if newLevel == 150 then doTeleportThing(cid, {x=,y=,z=}, false) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You\'ve been teleported somewhere.") end end return true end Oque é skill? (Aonde está isso? ¬¬')
  8. Esta aqui não é a seção se pedidos. Seu pedido deve ser feito na seção correta.
  9. bepokemon

    Dano Magia

    COMBAT_FORMULA_LEVELMAGIC, ML_MIN, MIN, ML_MAX, MAX -Total = math.random(ML_MIN * algo, ML_MAX * algo) + math.random(MIN, MAX) Ex: COMBAT_FORMULA_LEVELMAGIC, 0, -60, 0, -60 O dano será 60. Sobre o dano com LVL e ML você deverá fazer "manualmente". A spell vai ficar BEM diferente.
  10. Ah sim, então ele só "têm a certeza" de que estará rodando os valores .. Saquei =) Obrigado o/
  11. Na verdade era exatamente assim. Era pra uma merda boba que eu to tentando fazer. (Um "update" no NPC System pra colocar Quests "automaticas".) Não briguem T.T Não quero ter que escolher quem eu vou ser fã nos fim de semanas o/ @Mkalo Só não entendi uma coisa: function executeArray(array) local func = array[1] local parameters = {} for i,x in pairs(array) do table.insert(parameters, x) end return func(unpack(parameters)) end Eu não poderia usar: unpack(array) Ou: parameters = array unpack(parameters) ? @Demonbholder Tipo assim? .-. local rewards = {{doPlayerAddItem,cid,2160,1},{doPlayerAddItem,cid,2152,50}} for _,v in pairs(rewards) do executeArray(v) end
  12. local config = { seconds = 10, storage = 47112120, msg = "Voc\ê preci\sa aguardar 10 segundos para acumular o esp\írito.", mana = 2400, semMana = "Voc\ê n\ão t\êm mana suficiente." } local function useAgain(cid) setPlayerStorageValue(cid, config.storage, 2) return TRUE end local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 52) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -2.3, -250, -2.4, -260) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 52) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -2.3, -250, -2.4, -260) arr1 = { {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function spell(parameters) if getTilePzInfo(getThingPos(cid)) then return false end doCombat(parameters.cid, parameters.combat2, parameters.var) end function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) == 1 then doPlayerSendCancel(cid, config.msg) return TRUE end if getPlayerStorageValue(cid, config.storage) ~= 1 then if getPlayerMana(cid) >= config.mana then doPlayerAddMana(cid, -config.mana) setPlayerStorageValue(cid, config.storage, 1) addEvent(useAgain, config.seconds*1000, cid) local parameters = { cid = cid, var = var, combat2 = combat2 } addEvent(spell, 500, parameters) return doCombat(cid, combat1, var) else doPlayerSendCancel(cid, config.semMana) end end return TRUE end
  13. Sério? Ok, muda a velocidade pra speed atual * 1 depois tira speed / 1. Dá no mesmo ¬¬' E a mana tá 0. Não faz diferença ._.' Além de que, se o player não estiver online em time * 1000 (24 horas depois) vai dar erro no console.
  14. A parte que tira/suga mana: local mana = getPlayerLevel(cid) if isPlayer(getCreatureTarget(cid)) then doPlayerAddMana(getCreatureTarget(cid), -(mana*2)) doPlayerAddMana(cid, mana) else doPlayerAddMana(cid, mana*2) end
  15. Como é uma quest não vou colocar a parte de storage (só poderá ir uma vez). Assim quem morrer na quest pode voltar para lá. function onAdvance(cid, oldLevel, newLevel) if getPlayerLevel(cid) == 150 then doTeleportThing(cid, {x=,y=,z=}) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You\'ve been teleported somewhere.") end return TRUE end Instalação:
  16. O de cima conseguiu fazer, mas esse script tem coisa desnescessária DEMAIS. Aqui uma parte mais resumida e arrumada: function onSay(cid, words, param) if getPlayerStorageValue(cid,storage) == -1 then doPlayerSendCancel(cid, "Sorry, not possible.") doSendMagicEffect(getThingPos(cid), 2) else doSetCreatureOutfit(cid, {lookType = 5}, 86400 * 1000) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN) end return true end Só mudar Storage para o storage que você quer.
  17. bepokemon

    Account Manager

    Limitar Account Managers. local maxAccMngr = 5 -- Número máximo de account managers function onLogin(cid) local count = 0 if getCreatureName(cid) ~= 'Account Manager' then return true end for _,pid in ipairs(getPlayersOnline()) do if getCreatureName(pid) == 'Account Manager' then count = count+1 end end if count >= maxAccMngr then return doRemoveCreature(cid), false end return true end
  18. Demonb, será que você pode me fazer um favor? Não sei se é possível (deve ser), mas eu queria uma função execArray(array). Ela executaria um array parecido com esse: {doPlayerSendCancel,cid,'Demonbholder'} Não consegui fazer
  19. Para o comando /addskill tente adicionar esta tag no talkactions.xml: <talkaction log="yes" words="/addskill" access="5" event="function" value="addSkill"/> Já para o comando buy premium você deve ir para mods (na mesma pasta que a pasta data) e adiciona um script.xml contendo este code: buypremium_command.xml: <?xml version="1.0" encoding="UTF-8"?> <mod name="Buy premium command" version="1.0" author="The Forgotten Server" contact="otland.net" enabled="yes"> <config name="buypremium_config"><![CDATA[ config = { days = 90, cost = 10000, maxDays = 360 } ]]></config> <talkaction words="!buypremium; !pacc" event="buffer"><![CDATA[ domodlib('buypremium_config') if(getPlayerPremiumDays(cid) > config.maxDays) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You can not buy more than " .. config.days + config.maxDays .. " days of Premium Account.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return end if(not doPlayerRemoveMoney(cid, config.cost)) then doPlayerSendCancel(cid, "You don't have enough money, " .. config.days .. " days premium account costs " .. config.cost .. " gold coins.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return end doPlayerAddPremiumDays(cid, config.days) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have bought " .. config.days .. " days of premium account.") ]]></talkaction> </mod>
  20. Se eu não fiz merda deu pra reduzir o script.
  21. bepokemon

    Script De Treno

    effPos = getThingPos(cid) effPos.y = effPos.y+1 doSendDistanceShoot(getThingPos(cid), effPos, 40)
  • Quem Está Navegando   0 membros estão online

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