Olá pessoal!
Numa noite sombria e fora do normal, Jubileu decide visitar seu amigo Alfredo para conversar sobre recentes acontecimentos estranhos na cidade. Ao chegar na casa de seu amigo ele toca a campaínha e.. Não pode ser, o que é aquilo que se aproxima?! um zumbi?! SOCORRO ALFREEEDOOO! - grita Jubileu,desesperado. AEHUEAHEAUH
V2- TOCAR CAMPAÍNHA COM CHANCE DE APARECER MONSTRO/MENSAGEM/GANHAR ITEM
1°- Vá em data/actions e abra o arquivo actions.xml, então o adicione essa linha antes do final do arquivo:
<action itemid="1473;1475" script="campainha.lua"/>
ps: antes do final do arquivo, o final é </actions>
então salve e feche
2°- Vá em data/actions/scripts e crie um novo arquivo com a extensão lua chamado camapinha.lua e cole isso dentro:
function onUse(cid, item, frompos, item2, topos) local time = 1 if exhaustion.check(cid, "zombiecall") == false then exhaustion.set(cid, "zombiecall", 10) -- Aquele 1 é o exaust, de quanto em quanto tempo a campaínha pode ser tocada else return doPlayerSendCancel(cid, "Campaínha já foi tocada, espere: " ..exhaustion.get(cid, "zombiecall").."") end doSendMagicEffect(frompos,18) -- 18 é o efeito doSendAnimatedText(frompos,"Tindon",107) -- "Tindon" é a mensagem e 107 a cor addEvent(doSendAnimatedText, time*400, frompos,"Tindon", 107) -- "Tindon" é a mensagem e 107 a cor addEvent(function() r1 = math.random(1,100) if isCreature(cid) then if (item.itemid == 1473 or item.itemid ==1475) and (r1 >= 1 and r1 <= 20) then doPlayerSendTextMessage(cid,22,"A campaínha fez barulho, talvez isso chame atenção.") -- mensagem caso elseif (item.itemid == 1473 or item.itemid ==1475) and (r1 >= 21 and r1 <= 50) then addEvent(doCreateMonster, time*400,"zombie", getCreaturePosition(cid)) -- em "zombie" vc edita o nome do que quer que apareça addEvent(doCreateMonster, time*500,"zombie", getCreaturePosition(cid)) -- em "zombie" vc edita o nome do que quer que apareça doPlayerSendTextMessage(cid,22,"A campaínha fez barulho, talvez isso chame atenção.") -- mensagem caso nada apareça elseif (item.itemid == 1473 or item.itemid ==1475) and (r1 >= 51 and r1 <= 70) then addEvent(doCreateMonster, time*500,"corvo", getCreaturePosition(cid)) -- em "corvo" vc edita o nome do que quer que apareça doPlayerSendTextMessage(cid,22,"A campaínha fez barulho, talvez isso chame atenção.") -- mensagem elseif (item.itemid == 1473 or item.itemid ==1475) and (r1 >= 71 and r1 <= 100) then addEvent(doCreateMonster, time*400,"zombie", getCreaturePosition(cid)) -- em "zombie" vc edita o nome do que quer que apareça addEvent(doCreateMonster, time*500,"zombie", getCreaturePosition(cid)) -- em "zombie" vc edita o nome do que quer que apareça addEvent(doCreateMonster, time*600,"zombie", getCreaturePosition(cid)) -- em "zombie" vc edita o nome do que quer que apareça addEvent(doCreateMonster, time*700,"zombie", getCreaturePosition(cid)) -- em "zombie" vc edita o nome do que quer que apareça addEvent(doCreateMonster, time*800,"zombie", getCreaturePosition(cid)) -- em "zombie" vc edita o nome do que quer que apareça doPlayerSendTextMessage(cid,22,"A campaínha fez barulho, talvez isso chame atenção.") -- mensagem end end end, 1000) return true end
pronto, sistema instalado!
3°- Entendendo o script:
Para configurar, é o mesmo esquema explicado na V1(está no spoiler no final do tópico), o que muda é que aparece uma mensagem ao player e tem chances de invocar monstros, também ensinarei a como ganhar um item ao pressionar a campaínha.
Monstros: caso queira que apareça mais monstros, duplique alguma das linhas de invocação, caso contrário apague uma inteira
Mensagem: foi explicado no script, fácil de configurar.. só mudar o texto entre aspas " ... "
Ganhar Item:
é só adicionar essa linha na chance de ganhar, ex:
if (item.itemid == 1473 or item.itemid ==1475) and (r1 >= 1 and r1 <= 20) then doPlayerSendTextMessage(cid,22,"A campaínha fez barulho, talvez isso chame atenção.") -- mensagem caso doPlayerAddItem(cid,10599,45) end
CAMPAÍNHA - V1
O script funciona assim:
Da use na campaínha, então aparece um efeito e o texto "Tindon", depois aparece novamente outro "Tindon". Existe um exaust para evitar abusos/caras chatos - SIIIIIMPLES DE TUDO.. bora lá!
1°- Vá em data/actions e abra o arquivo actions.xml, então adicione essa linha antes do final do arquivo:
<action itemid="1473;1475" script="campainha.lua"/>
ps: antes do final do actions.xml.. o final do arquivo é o </actions>
ps²: 1473 e 1475 são os IDs dos itens que servirão como campaínha, são separados por " ; " - caso acrescente mais coloque itemid="1473;1474;1475" etc
Então salve seu Actions.xml e feche-o.
2°- Vá em data/actions/scripts e crie um novo arquivo com extensão lua chamado campainha.lua, cole isso dentro:
function onUse(cid, item, frompos, item2, topos) local time = 1 if exhaustion.check(cid, 23000000) == false then exhaustion.set(cid, 23000000, 4) else return doPlayerSendCancel(cid, "Campaínha já foi tocada, espere: " ..exhaustion.get(cid, 23000000).."") end doSendMagicEffect(frompos,18) doSendAnimatedText(frompos,"Tindon",107) addEvent(doSendAnimatedText, time*400, frompos,"Tindon", 107) end
Pronto, o sistema de campaínha está instalado!
3°- Entendendo o super mega simples script:
if exhaustion.check(cid, 23000000) == false then exhaustion.set(cid, 23000000, 4) else return doPlayerSendCancel(cid, "Campaínha já foi tocada, espere: " ..exhaustion.get(cid, 23000000).."") end
Aqui é a função do exaust..
(cid, 23000000) - cid é para o exaust se aplicar ao player que apertou a campaínha, e 23000000 é a storage que salva o exaust
exhaustion.set(cid, 23000000, 4) cid e 23000000 identico ao de cima.. 4 é o tempo em segundos de exaust
return doPlayerSendCancel(cid, "Campaínha já foi tocada, espere: " ..exhaustion.get(cid, 23000000). - se o player ainda estive com exaust, aparecerá a mensagem"Campaínha já foi tocada, espere: " e os segundos que falta para poder usar novamente
Se checar a storage 23000000 que equivale a 4 segundos e ela estiver vazia, o sistema acontece e adiciona o tempo de 4 segundos na storage.
Se a storage 23000000 não estiver vazia, aparece aquela mensagem para o player.
ps: as três storages são 23000000, se mudar uma, mude as três!
local time = 1
doSendMagicEffect(frompos,18)
doSendAnimatedText(frompos,"Tindon",107)
frompos é onde irá aparecer o texto, "Tindon" é o texto que irá aparecer e 107 é a cor do texto(vai desde 0 que é preto até 215 que é branco)
addEvent(doSendAnimatedText, time*1000, frompos,"Tindon", 107)
time*400 é o tempo que irá demorar para chamar a função( time foi uma variável configurada acima em milisegundos, então multiplica * por 400 para que o tempo configurado na variável 0,4 segundos [para transformar o time em segundos, multiplique por 1000 ao invés de 400])
frompos é onde ocorrerá o evento, como explicado acima(no caso, encima do item usado)
"Tindon" é o texto que irá aparecer no addEvent
107 é a cor do texto, dei uma mini explicada acima.
ps: trouxe de outro fórum, script de minha autoria!
Gabriel Stocco~~