[REMAKE] Scripts antigos refeitos [PACK]

LuckOake
em Actions e Talkactions

LuckOake

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/07/12Posts: 1104Gênero: MasculinoChar no Tibia: Luck Oake

Olá galera :)

 

Já viram aqueles scripts antigos, lá de 2006, 2007 ~~ 2011, que são totalmente bagunçados e é um saco pra configurar e/ou adicionar coisas novas? Pois é, eu tive a ideia de refazê-los para melhorar sua formatação e aprimorar suas funcionalidades.

 

O que é: É um pacote que conta atualmente com 13 scripts (actions e talks) de scripts antigos que foram refeitos por mim. Download está no fim da mensagem, no anexo. Ou se quiserem, podem pegar algum script sozinho aqui no tópico, que jájá vou editar e colocar isso.

 

Actions:

- Absorb Rune
- Bread System
- Future Orb
- Trash Lever
- Multifunctional Rune
- Present Box
- Steal Rune
- Teleport Rune
- Vocation Chest
- Vocation Door

 

Talks:

- AFK
- Change Status
- Terror
- Vote System

 

Scripts:

Actions:

Absorb Rune:

 

absorbrune.lua:

 

http://pastebin.com/bFKfPbdn

 

 

Bread System:

 

 

 

Future Orb:

 

 

 

Trash Lever:

 

 

 

Multifunctional Rune:

 

multifunctionalrune.lua:

http://pastebin.com/HqpwiWqV

 

 

Present Box:

 

 

 

Steal Rune:

 

 

 

Teleport Rune:

 

teleportrune.lua:

http://pastebin.com/tDaKy9qL

 

 

Vocation Chest:

 

vocationchest.lua:

 

http://pastebin.com/rswKrDEM

 

 

Vocation Door:

 

vocationdoor.lua:

http://pastebin.com/v57sq2gc

 

 

actions.xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<actions>
   <!-- Lembre-se de alterar o xxxx por um action id que desejar! -->
   <action actionid="xxxx" script="absorbrune.lua"/>
   <action actionid="2694;2692;2693" script="bread.lua"/>
   <action actionid="xxxx" script="futureorb.lua"/>
   <action actionid="xxxx" script="levertrash.lua"/>
   <action actionid="xxxx" script="multifunctionalrune.lua" />
   <action actionid="xxxx" script="presentbox.lua"/>
   <action actionid="xxxx" script="stealrune.lua"/>
   <action actionid="xxxx" script="teleportrune.lua"/>
   <action actionid="xxxx" script="vocationchest.lua"/>
   <action actionid="xxxx" script="vocationdoor.lua"/>
</actions>

 

 

 

Talkactions:

AFK:

 

afk.lua:

local time = 0.2
local afkstor = 14850

function turnAfk(cid, text)
   if not isCreature(cid) then return true
   elseif getPlayerStorageValue(cid, afkstor) == -1 then return true
   end

       doSendAnimatedText(getCreaturePosition(cid), text, math.random(1, 255))
       addEvent(turnAfk, time*1000, cid, text)
return true
end

function onSay(cid, words)
   if getPlayerStorageValue(cid, afkstor) == -1 then
       setPlayerStorageValue(cid, afkstor, 1)
       turnAfk(cid, "Ocupado!")
       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Agora você está AFK.")
   else
       setPlayerStorageValue(cid, afkstor, -1)
       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não está mais AFK.")
   end
return true
end

 

 

Change Stats:

 

changestats.lua:

function onSay(cid, words, param)
   local exhastor = 3179 -- Storage da exhaustion
   local wait = 1 -- Segundos de exhaustion
   local change = 30 -- Quantidade de mana/health que será trocada
   local vocs = {"Sorcerer", "Druid"} -- Vocations que podem usar essa talk

   if not isInArray(vocs, getPlayerVocationName(cid)) then
       doSendMagicEffect(getCreaturePosition(cid), 2)
       doPlayerSendCancel(cid, "Your vocation cannot use this move.") return true
   elseif exhaustion.check(cid, exhastor) then
       doSendMagicEffect(getCreaturePosition(cid), 2)
       doPlayerSendCancel(cid, "You are exhausted.") return true
   elseif param == "mana" then
       if getPlayerHealth(cid) < change then
           doPlayerSendCancel(cid, "Not enough health to change to mana.") return true
       end

           doPlayerAddMana(cid, change)
           doCreatureAddHealth(cid, -change)
           doSendMagicEffect(getCreaturePosition(cid), 12)
           exhaustion.set(cid, exhastor, wait)
   elseif param == "health" then
       if getPlayerMana(cid) < change then
           doPlayerSendCancel(cid, "Not enough mana to change to health.") return true
       end

           doPlayerAddMana(cid, -change)
           doCreatureAddHealth(cid, change)
           doSendMagicEffect(getCreaturePosition(cid), 13)
           exhaustion.set(cid, exhastor, wait)
   else
       doPlayerSendCancel(cid, "Choose if you want to change mana to 'health' or health to 'mana'") return true
   end
return true
end

 

 

Terror:

 

 

 

Vote System:

 

votesystem.lua:

local votestorage = 32940
local yes = 32941
local no = 32942
local playervote = 32943
local players = {}

function hasVotationOpen()
   return getGlobalStorageValue(votestorage) == 1 and true or false
end

function openVotation()
   return setGlobalStorageValue(votestorage, 1)
end

function closeVotation()
   setGlobalStorageValue(votestorage, -1)
   setGlobalStorageValue(yes, -1)
   setGlobalStorageValue(no, -1)
   players = {}
return true
end

function vote(cid, choose)
   table.insert(players, cid)
   return choose == "yes" and setGlobalStorageValue(yes, getGlobalStorageValue(yes) == -1 and 1 or getGlobalStorageValue(yes)+1) or setGlobalStorageValue(no, getGlobalStorageValue(no) == -1 and 1 or getGlobalStorageValue(no)+1)
end

function hasVoted(cid)
   return table.find(players, cid) and true or false
end

function onSay(cid, words, param)
   if words == "/openvote" then
       if hasVotationOpen() then
           doPlayerSendCancel(cid, "Já há uma votação aberta.") return true
       end

       broadcastMessage("Votação aberta com a seguinte pergunta:\n"..param.."\nUse !vote sim para votar sim\nUse !vote nao para votar não")
       openVotation()
   elseif words == "/closevote" then
       if not hasVotationOpen() then
           doPlayerSendCancel(cid, "Não há nenhuma votação aberta.") return true
       end

       broadcastMessage("Votação fechada. Resultado:\nSIM: "..(getGlobalStorageValue(yes) == -1 and 0 or getGlobalStorageValue(yes)).." votos\nNÃO: "..(getGlobalStorageValue(no) == -1 and 0 or getGlobalStorageValue(no)).." votos")
       closeVotation()
   elseif words == "!vote" then
       if not hasVotationOpen() then
           doPlayerSendCancel(cid, "Não há nenhuma votação aberta.") return true
       elseif hasVoted(cid) then
           doPlayerSendCancel(cid, "Você já votou.") return true
       elseif param ~= "sim" and param ~= "nao" then
           doPlayerSendCancel(cid, 'Voto incorreto. Escreva apenas "sim" ou "nao".') return true
       elseif param == "sim" then
           vote(cid, "yes")
       elseif param == "nao" then
           vote(cid, "no")
       end
           doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Obrigado por votar.")
   end
return true
end

 

 

talkactions.xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<talkactions>
   <!-- VIP System -->
   <talkaction words="!changestats" script="changestats.lua"/>
   <talkaction words="!afk" script="afk.lua"/>
   <talkaction access="5" words="/terror" script="terror.lua"/>
   <talkaction words="!vote" script="votesystem.lua" />
   <talkaction log="yes" access="5" words="/openvote;/closevote" script="votesystem.lua" />
</talkactions>

 

 

 

 

OBS: Caso encontre algum bug, avise aqui no tópico.

OBS²: Caso tenha algum outro script antigo que você gostaria que eu refizesse, poste aqui no tópico.

OBS³: Sim, eu sei que tem poucos scripts ainda, mas é por isso que eu quero que vocês peçam mais scripts antigos, como no OBS².

Remakes.rar

Oneshot

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 05/07/09Posts: 1347

Muito bom mesmo, meu velho. Gostei bastante da iniciativa.

JustinnoTibianno

chega mais pra você ver (ê ê)
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/11/11Posts: 696Gênero: MasculinoChar no Tibia: treinador de lobo

Aew, tava procurando um script do Present Box obrigado aew cara =)

Att. João Pedro

AlexandreKG

Estudante de TI
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 30/10/11Posts: 1153Gênero: Masculino

Pow,velho.

 

Muito bom Luck,parabéns.

Ótimo trabalho!Continue assim.

 

Atenciosamente,Mozark001.

DinoAdmin

Ex Estagiário de Scripting
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 27/07/12Posts: 757Char no Tibia: [ADM] Bhoris

LuckOake

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/07/12Posts: 1104Gênero: MasculinoChar no Tibia: Luck Oake

como funciona o sistema de votar?

 

Comandos:

 

/openvote pergunta -- Abre a votação
/closevote -- Fecha a votação
!vote yes/no -- Vota

JeanCristian

ADM MiHawk
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 12/04/12Posts: 328Char no Tibia: ADM MiHawk

gostei kkkkk guilherme viro scripter xD topico muito bom rep+... se algum disser que é flood essa é 1 postagem dps de 4 meses ^^

Acadêmico: 5 Post[x]

Gennin: 15 Posts[x]

Chunnin: 40 Posts[x]

Jounnin: 60 Posts[x]

Jounnin Tokubetsu: 80 Posts[x]

ANBU: 100 Posts[X]

ANBU Elite: 130 Posts[ ]

Kage: 160 Posts[ ]

Sannin: 200 Posts[ ]

Sannin Lendário: 250 Posts[ ]

Sannin Mundial: 300 Posts[ ]

 

th_Ichigo_Mugetsu-1.gifth_BleachMovie4-SkullCladIchigo.gifth_HollowTransformation.gif

Tedio

Will
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/04/10Posts: 1Gênero: MasculinoChar no Tibia: Tedioo

Gostei da iniciativa de fazer remake, desculpa se estou "floodando"...

 

Gostaria que fizesse remake dessa action se fosse possível :)

Queria por ela no Friday WAR (8.60)

 

  
local messagetype = MESSAGE_EVENT_ORANGE
local fetishs = {
   [7801] = {chance = 100, amount = 1, set = setItemDefense, get = getItemDefense, name = "defense"},
   [7802] = {chance = 80, amount = 2, set = setItemDefense, get = getItemDefense, name = "defense"},
   [7803] = {chance = 60, amount = 3, set = setItemDefense, get = getItemDefense, name = "defense"},
   [7804] = {chance = 40, amount = 4, set = setItemDefense, get = getItemDefense, name = "defense", destroy = TRUE},
   [7805] = {chance = 20, amount = 5, set = setItemDefense, get = getItemDefense, name = "defense", destroy = TRUE},
   [7850] = {chance = 100, amount = 5, set = setItemDefense, get = getItemDefense, name = "defense"}, -- only given when access >= 5
}
local minmax = {
   min1 = 7801, -- minimum of the random fetishs for access < 5
   max1 = 7805, -- maximum of the random fetishs for access < 5
   min2 = 7850, -- minimum of the random fetishs for access >= 5
   max2 = 7850, -- maximum of the random fetishs for access >= 5
}
-- WARNING: look further down and your eyes will burn. --
function onUse(cid, item, fromPosition, itemEx, toPosition)
   if item.actionid == 0 then
    local new = getPlayerAccess(cid) >= 5 and math.random(minmax.min2, minmax.max2) or math.random(minmax.min1, minmax.max1)
    local text = "You remove the dust and revealed that it is a "..fetishs[new].chance.."% fetish for "..fetishs[new].name.." +"..fetishs[new].amount.."."..(fetishs[new].destroy ~= nil and " It has a slight chance of breaking your item." or "")
    doPlayerSendTextMessage(cid, messagetype, text)
    doSetItemActionId(item.uid, new)
    doSetItemSpecialDescription(item.uid, text)
    setItemName(item.uid, fetishs[new].chance.."% fetish for "..fetishs[new].name.." +"..fetishs[new].amount)
   elseif fetishs[item.actionid] ~= nil then
    if fetishs[item.actionid].get(itemEx.uid) > 0 then
	    if itemEx.actionid < 105 then
		    local amount = math.max(0, itemEx.actionid - 100)
		    local chance = math.random(0, 100)
		    local text = fetishs[item.actionid].name.." enchant on "..getItemNameById(itemEx.itemid).." failed."
		    if chance <= fetishs[item.actionid].chance then
			    fetishs[item.actionid].set(itemEx.uid, (fetishs[item.actionid].get(itemEx.uid)+fetishs[item.actionid].amount))
			    text = getItemNameById(itemEx.itemid).." "..fetishs[item.actionid].name.." +"..fetishs[item.actionid].amount.."."
		    elseif fetishs[item.actionid].destroy ~= nil or fetishs[item.actionid].destroy == TRUE then
			    if math.random(0, 1) == 1 then
				    doRemoveItem(itemEx.uid)
				    text = getItemNameById(itemEx.itemid).." has been destroyed."
			    end
		    end
		    doPlayerSendTextMessage(cid, messagetype, text)
		    doSetItemActionId(itemEx.uid, 100+(amount+1))
		    setItemName(itemEx.uid, getItemNameById(itemEx.itemid).." (Level "..(amount+1)..")")
		    doSendMagicEffect(toPosition, (chance <= fetishs[item.actionid].chance and 13 or 2))
						    doSendAnimatedText(toPosition, (chance <= fetishs[item.actionid].chance and "Success!" or "Failed!"),(chance <= fetishs[item.actionid].chance and TEXTCOLOR_WHITE or TEXTCOLOR_RED))
		    doRemoveItem(item.uid)
	    else
		    doPlayerSendCancel(cid, "This weapon has already been enchanted 5 times.")
	    end
    else
	    doPlayerSendCancel(cid, "This item may not be enchanted.")
    end
   else
    doPlayerSendCancel(cid, "Sorry, not possible.")
   end
    return TRUE
end

Lordfireot

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 20/03/13Posts: 507Char no Tibia: Sherpy

Cara que eu saiba essa e a area errada.

Se tiver alguma duvida ou algo do tipo pode pergunta ae responderei.

 

ask.fm/paulim78

 

De Valor No Que Você Tem o Tempo Não Volta Atra

 

MichelHelmer

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/02/13Posts: 8Char no Tibia: Rei-Da-Paz

Cara gostei da sua iniciativa levou meu gostei lol.gif

Oi Sabe o que e a definição de Open Source? Não, então aprenda logo abaixo...


Seja amigável e não me ataque só porque eu postei isso Obrigado!





A definição do Open Source foi criada pela Open Source Iniciative (OSI) a partir do texto original da Debian Free Software Guidelines (DFSG) e determina que um programa de código aberto deve garantir:


1. Distribuição livre


  • A licença não deve restringir de nenhuma maneira a venda ou distribuição do programa gratuitamente, como componente de outro programa ou não.

2. Código fonte


  • O programa deve incluir seu código fonte e deve permitir a sua distribuição também na forma compilada. Se o programa não for distribuído com seu código fonte, deve haver algum meio de se obter o mesmo seja via rede ou com custo apenas de reprodução. O código deve ser legível e inteligível para qualquer programador.

3. Trabalhos Derivados


  • A licença deve permitir modificações e trabalhos derivados, e deve permitir que eles sejam distribuídos sobre os mesmos termos da licença original.

4. Integridade do autor do código fonte


  • A licença pode restringir o código fonte de ser distribuído em uma forma modificada apenas se a licença permitir a distribuição de arquivos patch(de atualização) com o código fonte para o propósito de modificar o programa no momento de sua construção. A licença deve explicitamente permitir a distribuição do programa construído a partir do código fonte modificado. Contudo, a licença pode ainda requerer que programas derivados tenham um nome ou número de versão diferentes do programa original.

5. Não discriminação contra pessoas ou grupos


  • A licença não pode ser discriminatória contra qualquer pessoa ou grupo de pessoas.

6. Não discriminação contra áreas de atuação


  • A licença não deve restringir qualquer pessoa de usar o programa em um ramo específico de atuação. Por exemplo, ela não deve proibir que o programa seja usado em um empresa, ou de ser usado para pesquisa genética.

7. Distribuição da Licença


  • Os direitos associados ao programa devem ser aplicáveis para todos aqueles cujo o programa é redistribuído, sem a necessidade da execução de uma licença adicional para estas partes.

8. Licença não específica à um produto


  • Os direitos associados ao programa não devem depender que o programa seja parte de uma distribuição específica de programas. Se o programa é extraído desta distribuição e usado ou distribuído dentro dos termos da licença do programa, todas as partes para quem o programa é redistribuído devem ter os mesmos direitos que aqueles que são garantidos em conjunção com a distribuição de programas original.

9. Licença não restrinja outros programas


  • A licença não pode colocar restrições em outros programas que são distribuídos juntos com o programa licenciado. Isto é, a licença não pode especificar que todos os programas distribuídos na mesma mídia de armazenamento sejam programas de código aberto.

10. Licença neutra em relação a tecnologia



  • Nenhuma cláusula da licença pode estabelecer uma tecnologia individual, estilo ou interface a ser aplicada no programa.


CrazyDesign

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/12/11Posts: 8

Até que fim!