Oneshot's Death Note

Oneshot
em Globalevents e Spells

Oneshot

avatar
Marquês
Marquês

INFOS

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

Faaala, pessoar.

 

Há um tempo vi em uma comunidade gringa um script super criativo que se baseava no anime Death Note. Através da função onTextEdit(cid, item, newText), o scripter criou um livro que matava jogadores cujo nome fosse escrito.

 

Mas era um código simples e limitado, você só podia matar um jogador por vez e o livro se tornava inútil depois disso.

 

Então resolvi criar meu próprio Death Note com alguns bônus.

 

- Você pode matar um número de jogadores configurável por vez, ou ilimitados se for CM ou mais.

- Existe um delay entre a escrita do nome e a morte do alvo de 40 segundos. (Igual o anime)

- Depois de escritos os nomes, o jogador que usou o Death Note, fica impossibilitado de usar denovo por 30 minutos. (Sem exhaust para CMs ou mais)

- Jogadores com red skull ou black skull não podem ser mortos pelo Death Note.

- O livro não se inutiliza.

 

Bom, vamos começar?

 

 

1 - Vá em seus items.xml e troque os atributos dos seguintes itens:

 

<item id="1972" article="a" name="death note">
	<attribute key="weight" value="1000">
	<attribute key="writeable" value="1">
	<attribute key="maxTextLen" value="512">
	<attribute key="writeOnceItemId" value="1955">
   </item>

 

<item id="1955" article="a" name="death note">
	<attribute key="weight" value="1000">
   </item>

 

2 - Vá em creaturescripts/scripts, crie um arquivo chamado deathnote.lua e cole o seguinte script abaixo:

 

local deathnote = {
max = 3,
delay = 40,
interval = 30 * 60

}

local function DeathNote(param)
if isCreature(param.target) then
	local position, damage = getThingPosition(param.target), getCreatureMaxHealth(param.target)
	return doAreaCombatHealth(0, COMBAT_DEATHDAMAGE, getThingPosition(param.target), 0, -(damage * 10), -(damage * 10), CONST_ME_MORTAREA)
end
end

function onTextEdit(cid, item, newText)
if item.itemid == 1972 then
	newText = string.explode(newText, "\n")
	if #newText > deathnote.max and getPlayerGroupId(cid) == 1 then
		doPlayerSendCancel(cid, "Sorry, but you cannot kill more than ".. deathnote.max .." players.")
	else
		if os.time() > getPlayerStorageValue(cid, 101011) or getPlayerGroupId(cid) > 3 then
			for _, name in ipairs(newText) do
				local target = getPlayerByNameWildcard(name)
				if target then
					if getCreatureSkullType(cid) >= 4 then
						doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, but ".. name .." cannot die by the power of Death Note.")
					else
						doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, name .." will die in ".. deathnote.delay .." seconds.")
						setPlayerStorageValue(cid, 101011, os.time() + deathnote.interval)
						addEvent(DeathNote, deathnote.delay * 1000, {target = target})
					end
				else
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, but ".. name .." isn't in this world.")
				end
			end
		else
			doPlayerSendCancel(cid, "You are exhausted to use Death Note.")
		end
	end
	return false
end
return true
end

 

3 - Ainda em creaturescripts/scripts, abra o arquivo login.lua e adicione a seguinte linha:

 

registerCreatureEvent(cid, "DeathNote")

 

Antes de:

 

return true

 

4 - Abra o arquivo creaturescripts.xml e adicione a seguinte chave.

 

<event type="textedit" name="DeathNote" event="script" value="deathnote.lua"/>

 


 

Para usar o Death Note depois de instalado o script, basta dar Use no livro e escrever um nome em cada linha dando Enter depois. Por exemplo:

 

pess0a

Lordfire

Vodkart

Beeki

 

E por aí vai.

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

Oneshot muito boa ideia.

Gostei muito de jeito que uso o evento.

fagundes14

Hy MaTTheW
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/10/11Posts: 96Char no Tibia: Worna Crien

@Oneshot

Teria Como Vc Adaptar Esse Script Para 8.0?

Parabens Otimo Script =D

 

REP ++

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

bem estruturado seu código, está demais, outra coisa seu bandido... pq ta me matando? oh shit!

bossisg.png

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

@oneshot

2 coisas

aki m deveria ser "and"

if #newText > deathnote.max or getPlayerGroupId(cid) < 5 then 

 

e coloca a damage baseada no hp + mana(sorcer e druid com utamo poderiam sobreviver,ja que a relção é 5 hp por 30 mana por lv logo a mana é maior que 4 veses o hp)

^w^

Oneshot

avatar
Marquês
Marquês

INFOS

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

Não, não deveria ser and. E não havia pensado no caso do utamo vita.

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

mais dai so quem tem acesso 5 ou mais pode usa...

porque se usa "or" se uma for verdadeira ele executa,logo o que ta no else n executa,a n ser que as duas sejam false ou seja só god usam.

^w^

Lordfire

TFS Maintainer
avatar
Lenda
Lenda

INFOS

Grupo: LendaRegistrado: 04/10/06Posts: 2605Gênero: MasculinoChar no Tibia: Knight Orion

Meh, coitado de mim.

 

Muito fera esse script, não curto o anime mas achei muuuuuuuuito legal essa ideia. Meio abusivo né, simplesmente mata o cara, mas ainda assim é divertido uhauhahua

Bom script, continue fazendo essas maravilhas :p

Oneshot

avatar
Marquês
Marquês

INFOS

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

É, acho que cometi um erro no caso desse or mesmo. :p

 

O código já foi consertado.

 

Att.

Vilden

Loading. . .
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 09/05/08Posts: 1597

A ideia é muito legal, script muito boa, rep+

Atenciosamente, Vilden.

Subwat

GAUCHO MACHO
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 27/07/09Posts: 1516Char no Tibia: Gean Riot

está de parabens cara, script muito bom, bem planejado, parabens ganhou meu rep.

 

ops

Você já atingiu seu limite de reputações positivas para hoje

Entrem Server online desde o dia 22/02/2013 Monster 24HORAS dedicado!

IP: monster24h.com

PROTOCOL:8.60

PORT:7171

 

RATES:

Exp: 9999x~10x

Skills:800x

Magic:200x

Loot:2x

Pvp-e Advanced: 1.1x Ao matar players de level semelhante.

 

Accounts Pelo Account Manager!

ThallesNovais

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/05/12Posts: 18Char no Tibia: Elderziinho Zika

cara não esta dando para escrever no livro arruma ai