Ir para conteúdo

Vodkart

Herói
  • Total de itens

    3406
  • Registro em

  • Última visita

  • Dias Ganhos

    113

Tudo que Vodkart postou

  1. vc deletou o buypremium_command.xml na pasta mods e deu /reload mods e /reload talkactions?
  2. Vodkart

    Npc De Recompensa

    especifique melhor seu pedido, serão quais leveis por exemplo? serão items? ou só exp? detalhes.
  3. Vodkart

    Npc

    pqp velho, que script chato de fazer, ele não é difícil, só é bem chatinho msm ¬¬ Mods: <?xml version="1.0" encoding="UTF-8"?> <mod name="Kung Task" version="1.0" author="Vodkart" contact="xtibia.com" enabled="yes"> <config name="kung_func"><![CDATA[ kungtask = { ["dragon"] = {storages = {620001,630001}, count = 1500,exp = 1000}, ["dragon lord"] = {storages = {620002,630002}, count = 600, exp = 2000}, ["hydra"] = {storages = {620003,630003}, count = 240, exp = 3000}, ["frost dragon"] = {storages = {620004,630004} ,count = 600, exp = 4000}, ["dragon guardian"] = {storages = {620005,630005} ,count = 1000, exp = 5000}, ["demondras"] = {storages = {620006,630006} ,count = 600, exp = 6000}, ["thunder dragon"] = {storages = {620007,630007} ,count = 1000, exp = 7000} } function ZerarTask(cid) for var, ret in pairs(kungtask) do if getPlayerStorageValue(cid, ret.storages[2]) ~= -1 and getPlayerStorageValue(cid,ret.storages[1]) <= os.time() then setPlayerStorageValue(cid, ret.storages[2], -1) setPlayerStorageValue(cid, ret.storages[1], -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You not have completed the task of "..var.." in the request time and it was zeroed") end end end ]]></config> <event type="login" name="KungRegister" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "KillingKung") return true end]]></event> <event type="kill" name="KillingKung" event="script"><![CDATA[ domodlib('kung_func') function onKill(cid, target) if(isMonster(target) == TRUE) then local n = getCreatureName(target) local name_monster = kungtask[string.lower(n)] if(name_monster and getPlayerStorageValue(cid,name_monster.storages[1]) >= os.time()) then local contagem = getPlayerStorageValue(cid, name_monster.storages[2]) if contagem > name_monster.count then return true end setPlayerStorageValue(cid, name_monster.storages[2], contagem+1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, ""..((contagem+1) < name_monster.count and "["..n.." Task] "..(contagem+1).."/"..name_monster.count or "["..n.." Task] Finaliza")..".") end end return true end]]></event> <globalevent name="ZerarTask" interval="60" event="script"><![CDATA[ domodlib('kung_func') function onThink(interval, lastExecution) local on = getPlayersOnline() if #on > 0 then for i = 1, #on do ZerarTask(on[i]) end end return true end]]></globalevent> </mod> Npc: domodlib('kung_func') 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 msg = string.lower(msg) local days = 7 if isInArray({"task","mission", "missão"}, msg) then npcHandler:say("Me diga o nome do monstro que você deseja fazer a task!", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if kungtask[msg] then if getPlayerStorageValue(cid, kungtask[msg].storages[1]) == -1 then stor,name,count,stor2 = kungtask[msg].storages[1],msg,kungtask[msg].count,kungtask[msg].storages[2] npcHandler:say("Ótimo! Você precisa matar pelo menos "..count.." "..name.." em um prazo de "..days.." dias para te dar recompensa. Aceita? {yes}", cid) talkState[talkUser] = 2 else npcHandler:say("Você já está participando desta task.", cid) talkState[talkUser] = 1 end else npcHandler:say("digite o nome certo do monstro.", cid) talkState[talkUser] = 1 end elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 2) then setPlayerStorageValue(cid, stor, os.time()+days*86400) setPlayerStorageValue(cid, stor2, 0) npcHandler:say("Você já pode começar a matar "..name..". Volte aqui quando matar "..count.." "..name.." para ser recompensado. O prazo é até "..os.date("%d %B %Y %X", getPlayerStorageValue(cid,stor))..".", cid) talkState[talkUser] = 0 elseif isInArray({"entregar","receber", "recompensa"}, msg) then for var, ret in pairs(kungtask) do if getPlayerStorageValue(cid,ret.storages[1]) >= os.time() and getPlayerStorageValue(cid,ret.storages[2]) >= ret.count then doPlayerAddExp(cid, ret.exp) setPlayerStorageValue(cid, ret.storages[2], -1) setPlayerStorageValue(cid, ret.storages[1], -1) return npcHandler:say("Obrigado! você recebeu "..ret.exp.." de experience por ter terminado a task do "..var, cid) else return npcHandler:say("Desculpe, mas você não terminou nenhuma missão.", cid) end end elseif isInArray({"no","nao"}, msg) then selfSay("tudo bem então.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) no npc vc fala: hi task NOME DA TASK e pra receber a recompensa vc fala hi entregar e o npc vai entregar a recompensa da task que ele TERMINOU para o player
  4. então diz qual é o seu servidor, baiak, alissow, real server?
  5. <?xml version="1.0" encoding="UTF-8"?> <creaturescripts> <!-- XTibia.com --> <event type="login" name="Save" event="script" value="save.lua"/> <!--event type="advance" name="PlayerAdvance" event="script" value="playeradvance.lua"/--> <event type="login" name="PlayerLogin" event="script" value="login.lua"/> <event type="joinchannel" name="GuildMotd" event="script" value="guildmotd.lua"/> <event type="receivemail" name="Mail" event="script" value="mail.lua"/> <event type="reportbug" name="SaveReportBug" script="reportbug.lua"/> <event type="advance" name="AdvanceSave" event="script" value="advancesave.lua"/> <event type="think" name="Idle" event="script" value="idle.lua"/> <event type="think" name="SkullCheck" event="script" value="skullcheck.lua"/> <event type="death" name="PythiusDead" script="pythius_the_rotten.lua" /> <event type="death" name="monster2" event="script" value="monster2.lua"/> <event type="death" name="inquisitionPortals" script="teleports_inquisition.lua"/> <event type="death" name="ASGARD_DIE" script="asgard_die.lua"/> <event type="login" name="300" event="script" value="300.lua"/> <event type="statschange" name="zombieevent" event="script" value="zombie event.lua"/> <event type="death" name="Reward" event="script" value="hearts.lua"/> <event type="statschange" name="ExpStats" event="script" value="exphit.lua"/> <event type="combat" name="ExpGain" event="script" value="exphit.lua"/> <event type="statschange" name="HitMessage" event="script" value="hitmsg.lua"/> <event type="combat" name="Hitmsg" event="script" value="hitmsg.lua"/> <!-- Custom systems --> <event type="login" name="FirstItems" event="script" value="firstitems.lua"/> <event type="kill" name="PlayerKill" event="script" value="arenakill.lua"/> <event type="death" name="inquisitionPortals" event="script" value="inquisitionPortals.lua"/> <event type="death" name="bluelegs" event="script" value="bluelegs.lua"/> <event type="death" name="PlayerDeath" event="script" value="playerdeath.lua"/> <event type="attack" name="AttackGuild" script="attackguild.lua"/> <event type="login" name="FimVip" event="script" value="vip.lua"/> <event type="logout" name="demonOakLogout" event="script" value="demonOakLogout.lua"/> <event type="death" name="demonOakDeath" event="script" value="demonOakDeath.lua"/> <event type="death" name="Azerus" event="script" value="azerus.lua"/> <event type="kill" name="KillingInTheNameOf" event="script" value="killinginthenameof.lua"/> </creaturescripts>
  6. Você não tem nenhum tile que só vip passa? ou porta? tanto faz... se vc tiver coloca o script dele aqui
  7. e qual seu sistema vip cara? outra coisa, posta em lugar certo pelo amor de deus...
  8. creaturescript/script nome do seu script.lua rateExp = 50 -- 0 a 20 rateExp1 = 20 -- 21 a 50 rateExp2 = 15 -- 51 a 100 rateExp3 = 10 -- 101 a 200 rateExp4 = 5 -- 201 a 300 rateExp5 = 4 -- 301 a 350 rateExp6 = 3 -- 351 em diante bonus = 1 -- Bonus por estar com exp ring expringid = 1000 -- Id do exp ring ------------------------------ function CalculeExp(monsterhp, exptotal, hit) local x = hit <= monsterhp and math.ceil(exptotal * hit / monsterhp) or 0 local x2 = x - 20 + math.random(20) return x2 > 0 and x2 or 0 end function isSummon(uid) return uid ~= getCreatureMaster(uid) or false end function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS then if isMonster(cid) then if isCreature(attacker) then local sid = isSummon(attacker) == true and getCreatureMaster(attacker) or attacker if isPlayer(sid) and getPlayerLevel(sid) <= 20 then local expg = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg.." exp.") doPlayerAddExp(sid, expg) elseif isPlayer(sid) and getPlayerLevel(sid) > 21 and getPlayerLevel(sid) <= 50 then local expg1 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp1, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg1.." exp.") doPlayerAddExp(sid, expg1) elseif isPlayer(sid) and getPlayerLevel(sid) > 51 and getPlayerLevel(sid) <= 100 then local expg2 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp2, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg2.." exp.") doPlayerAddExp(sid, expg2) elseif isPlayer(sid) and getPlayerLevel(sid) > 101 and getPlayerLevel(sid) <= 200 then local expg3 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp3, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg3.." exp.") doPlayerAddExp(sid, expg3) elseif isPlayer(sid) and getPlayerLevel(sid) > 201 and getPlayerLevel(sid) <= 300 then local expg4 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp4, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg4.." exp.") doPlayerAddExp(sid, expg4) elseif isPlayer(sid) and getPlayerLevel(sid) > 301 and getPlayerLevel(sid) <= 350 then local expg5 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp5, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg5.." exp.") doPlayerAddExp(sid, expg5) elseif isPlayer(sid) and getPlayerLevel(sid) > 351 then local expg6 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp6, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg6.." exp.") doPlayerAddExp(sid, expg6) elseif isPlayer(sid) and item.itemid == expringid then local expbonus = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * bonus, value) doPlayerSendTextMessage(sid, 23, "You gain "..expbonus.." bonus exp.") doPlayerAddExp(sid, expbonus) end end end elseif type == STATSCHANGE_HEALTHGAIN then return false end return true end function onCombat(cid, target) if isMonster(target) and not isSummon(target) and not isPlayer(target) then registerCreatureEvent(target, "ExpGain") end return true end creaturescript.xml <event type="statschange" name="ExpStats" event="script" value="nome do seu script.lua"/> <event type="combat" name="ExpGain" event="script" value="nome do seu script.lua"> login.lua adc: registerCreatureEvent(cid, "ExpStats") registerCreatureEvent(cid, "ExpGain")
  9. acho que assim funciona: ExpVipTable = { [{1, 8}] = 5, [{9, 19}] = 4, [{20, 39}] = 3, [{40, 59}] = 2, [{60, 79}] = 1.5, [{80, 99}] = 1, [{100, 9999}] = 0.5 } for var, ret in pairs(ExpVipTable) do if getPlayerLevel(cid) >= var[1] and getPlayerLevel(cid) <= var[2] then setPlayerStorageValue(cid, 8567, ret) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You status of rate this changed for "..ret.."%.") end end
  10. porque no meu serve não tem essa função! aproveita que você entende da função e posta como ficaria usando getSpectators. @leo Não entendi seu script, está muito confuso, no caso teria que clicar na alavanca novamente para checar se tem os monstro na área, é isso? Mas se o jogador puxasse a alavanca iria criar mais monstros, ou sejá, ele ficaria infinitamente na sala! teria que fazer de outro jeito, me explica oque a alavanca tem que fazer...
  11. ai tem que aumentar o tempo do evento: events[getPlayerGUID(cid)] = addEvent(WalkEffect, 100, cid, c, frompos) o 100 é o tempo, tenta colocar 500, e vai vendo qual fica melhor pra vc
  12. deve ser para alguma quest, não sei....
  13. blz, posta como ficou o seu script pra mim ver o erro.
  14. function onStepIn(cid, item, position, fromPosition) local tiles = { [18001] = {{x=159, y=52, z=7},{x=160, y=52, z=7},{x=161, y=52, z=7}}, [18002] = {{x=190, y=54, z=7},{x=191, y=54, z=7}}, [18003] = {{x=180, y=54, z=7}}, [18004] = {{x=200, y=54, z=7}} } return doTeleportThing(cid, tiles[item.actionid][math.random(#tiles[item.actionid])]) end
  15. custa ler o tópico? local effect = { [136] = 3, [128] = 3, -- citizen [270] = 27,[273] = 27, -- jester [156] = 61,[152] = 61, -- assassin [147] = 44,[143] = 44, -- barbarian [148] = 45,[144] = 45, -- druid [157] = 68,[153] = 68, -- beggar [149] = 36,[145] = 36, -- wizard [279] = 17,[278] = 17, -- brotherwood [137] = 39,[129] = 39, -- hunter [141] = 66,[133] = 66, -- summoner [142] = 34,[134] = 34, -- warrior [155] = 31,[151] = 31, -- pirate [158] = 46,[154] = 46, -- shaman [288] = 6,[289] = 6 -- demonhunter } [iD DA OUTFIT] = N° DO EFEITO exemplo citizen: [136] = 3, [128] = 3, -- citizen 3 é o número do efeito, alterar ali
  16. Vodkart

    Npc

    cara, não que eu vá fazer seu pedido mas você tem que explicar melhor seus pedidos, com o máximo de detalhes possível, porque imagina alguém te entrega um pedido e depois ter que ficar fazendo alterações? vai ficar chato tanto para quem teve o trabalho de atender quanto para quem pede, os dois irão perder tempo. Exemplo, depois de terminar a task ele vai poder voltar a fazer de novo? se ele não conseguir fazer a task naquele prazo a sua contagem é zerada? entendeu zé.
  17. http://www.xtibia.com/forum/topic/152827-vocation-oufit/
  18. então, me manda o que vc alterou ai pra eu ver como ficou
  19. você trocou as pos e a storage no script que eu te mandei? posta aqui o script que vc alterou
  20. tenta assim: storage,x = 875487, true local toPosition,fromPosition = {x = 33, y = 98, z = 8},{x = 46, y = 107, z = 8} -- começo e final da area for x = toPosition.x, fromPosition.x do for y = toPosition.y, fromPosition.y do local m = getTopCreature({x=x, y=y, z=fromPosition.z}).uid if m ~= 0 and isMonster(m) then x = false end if x == true and m ~= 0 and isPlayer(m) then setPlayerStorageValue(m,storage,1) end end end
  21. acho que teria que fazer um loop na área
  22. Vodkart

    Bless Com Aol

    ai é só fazer o script... DropBless.lua function onDeath(cid, corpse, deathList) function HaveBless(cid) for i = 1,5 do if getPlayerBlessing(cid, i) then return true end end return false end if isPlayer(cid) and HaveBless(cid) and getPlayerSkullType(cid) < SKULL_RED then doCreatureSetDropLoot(cid, false) end return true end creaturescript.xml <event type="death" name="BlessDrop" event="script" value="DropBless.lua"/> creaturescript/script/login.lua registerCreatureEvent(cid, "BlessDrop")
  • Quem Está Navegando   0 membros estão online

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