Postado Novembro 21, 2016 8 anos Opah galera.. Tranquilo ?!.. Então, eu criei esse evento para meu WODBO, mas resolvi compartilhar com vocês.. Então, sem mais enrolação, como funciona: 1• O evento é iniciado por um administrador manualmente. 2• O DoubleExp dura X tempo (Determinado pelo administrador) 3• O DoubleExp irá continuar durante o tempo que o player estiver offline, ou seja, irá acabar no tempo determinado pelo administrador. Sem exceções. 4• O administrador irá determinar a quantia de exp dobrada. 5• O evento pode ser cancelado em qualquer momento pelo administrador. 6• O DoubleExp só se aplica aos jogadores online 7• O Ganho de Exp Padrão é alterado para 0.5 8• O Double Exp acaba ao deslogar.AVISO: Eu criei o sistema já faz um bom tempo, então seria comum eu ter esquecido de comentar algo. Então, para começar, crie doubleexpevent.lua em data/creaturescripts/scripts e dentro dele: function onLogin(cid) if getPlayerStorageValue(cid, 100002) == 1 then doPlayerSendTextMessage(cid, 18, "Você perdeu o seu Double Exp!") setPlayerStorageValue(cid, 100002, -1) end end function onLogout(cid) if getPlayerStorageValue(cid, 100001) > 1 then setPlayerStorageValue(cid, 100001, -getPlayerStorageValue(cid, 100001)) if getPlayerStorageValue(cid, 223291) < 1 then doPlayerSetExperienceRate(cid, 1) else doPlayerSetExperienceRate(cid, 0.5) end setPlayerStorageValue(cid, 100002, 1) end end function onThink(cid, interval) interval = 50 --Intervalo do efeito do double exp if getPlayerStorageValue(cid, 100001) >= 1 then local pos = getThingPos(cid) local interval2 = 100 local poseff1 = {x=pos.x, y=pos.y, z=pos.z} --Posição do efeito addEvent(doSendMagicEffect, interval, poseff1, 116) --116 É o número do efeito addEvent(doSendAnimatedText, interval2, getCreaturePosition(cid), 'DoubleExp!', 144) end if getPlayerStorageValue(cid, 223291) >= 1 then if getPlayerStorageValue(cid, 223492) < 1 then doPlayerSetExperienceRate(cid, 0.5) setPlayerStorageValue(cid, 223492, 1) end local pos = getThingPos(cid) local poseff1 = {x=pos.x, y=pos.y-1, z=pos.z} -- posição do efeito addEvent(doSendMagicEffect, interval, poseff1, 1) -- 1 é o número do efeito end return true end Agora, adicione as tags em creaturescripts.xml: <event type="login" name="DoubleLogin" event="script" value="doubleexpevent.lua"> <event type="think" name="DoubleThink" event="script" value="doubleexpevent.lua"> <event type="logout" name="DoubleLogout" event="script" value="doubleexpevent.lua"> Em seguida, em data/creaturescripts/scripts, abra Login.lua e adicione em baixo de alguma tag parecida as tags: registerCreatureEvent(cid, "DoubleLogin") registerCreatureEvent(cid, "DoubleThink") registerCreatureEvent(cid, "DoubleLogout") Ok, agora o comando para iniciar o evento.. Em data/talkactions abra talkactions.xml e adicione a tag: <talkaction log="yes" words="/doubleexp;!doubleexp" acess="5" event="script" value="doubleexp.lua"/> E para terminar, crie doubleexp.lua em data/talkactions/scripts e dentro dele: function onSay(cid, words, param) local p = string.explode(param, ",") if p[1] == "on" then if not p[2] or not p[1] then doPlayerSendCancel(cid, "Complete com o tempo e a quantia. \n Ex: /doubleexp on, 60, 2") return true end local timeduration = p[2]*1000 local online = getPlayersOnline() for i=1, #online do doPlayerSetExperienceRate(online[1], p[3]) setPlayerStorageValue(online[1], 100001, 1) addEvent(setGlobalStorageValue, timeduration, 200001, 1) doBroadcastMessage("O Staff ".. getCreatureName(cid) .." iniciou o evento doubleexp. \n Tempo: ".. timeduration/1000 .." segundos \b Dobrando: "..p[3].."x mais de exp.", 21) end elseif param == "off" then local online = getPlayersOnline() for i=1, #online do setGlobalStorageValue(200001, -getGlobalStorageValue(200001)) setPlayerStorageValue(online, 100001, 0) doPlayerSetExperienceRate(online[1], 1) doBroadcastMessage("O staff ".. getCreatureName(cid) .." desativou o evento double exp.", 21) end else doPlayerSendCancel(cid, "Complete com ON ou OFF.") return true end return true end Comando utilizado para iniciar o evento: Citar /doubleexp on, 60, 2 Ou também: !doubleexp on, 60, 2 Nesse caso seria: ON- A função usada para ligar. 60- O tempo que o evento dura, em segundos 2- Quantas vezes vai dobrar Editado Novembro 21, 2016 8 anos por Vinicius Xxgamexx (veja o histórico de edições) Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais... ________________________________________________________________________________ Minhas Sprites: Mega Metagross Mega Abomasnow Pack de Shinys [Posso atualizá-lo com novos shinys a qualquer momento] Tutoriais: [Completo] Criando e adicionando um novo Pokémon [Actions] Criando quest no RME Editores Lua/Xml/Sync Entre outros: Editores Win/Mac/Linux
Postado Novembro 21, 2016 8 anos Boa tarde, peço que utilize a bbcode de code ao invés de utilizar quotes para postar os códigos. Após arrumar o tópico, aprovarei.
Postado Novembro 21, 2016 8 anos Autor Editado* Boa tarde.. Obs: O script foi testado em um servidor da versão 8.54 Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais... ________________________________________________________________________________ Minhas Sprites: Mega Metagross Mega Abomasnow Pack de Shinys [Posso atualizá-lo com novos shinys a qualquer momento] Tutoriais: [Completo] Criando e adicionando um novo Pokémon [Actions] Criando quest no RME Editores Lua/Xml/Sync Entre outros: Editores Win/Mac/Linux
Postado Novembro 21, 2016 8 anos Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. Spoiler Congratulations, your content has been approved! Thank you for your contribution, we of Tibia King we are grateful. Your content will help many other users, you received +1 REP. Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui Muitos querem aquilo que você tem, mas vão desistir quando souberem o preço que você pagou. lu.lukinha [email protected]
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.