Ir para conteúdo
Entre para seguir isso  
KutyKutyx3

Rook System

Recommended Posts

KutyKutyx3    1
KutyKutyx3

-------------------------------

Nome: Rook System

Versão: 8.4

Tipo do script: Creature Event

Servidor Testado: The Forgotten Server 0.3.2

Autor: Trekes

-------------------------------

 

Este script é muito simples, que quando o player fica com menos de 1500 de experiencia (level 5), ele volta para rook. O autor original do script é o

Trekes, mas eu o modifiquei um pouco.

 

Então vamos começar.

 

Vá em data/creaturescripts/scripts e crie um arquivo chamado rook.lua, e nesse arquivo coloque isto:

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)

   if getPlayerLevel(cid) < 5 and getPlayerVocation(cid) ~= 0 then
[color="Red"]        local rookTownID = 1[/color]
       local rookedGUID = getPlayerGUID(cid)
       local deathPos = getCreaturePosition(cid)

       for i = 1, 10 do
           local slotItem = getPlayerSlotItem(cid, i)
           if slotItem.itemid > 0 then
               doRemoveItem(slotItem.uid)
           end
       end

[color="Green"]        doPlayerAddItem(cid, 2050, 1)
       doPlayerAddItem(cid, 2382, 1)
       doPlayerAddItem(cid, 1987, 1)[/color]
local rookedCorpseFem = doCreateItemEx(3065)
       local rookedCorpseMale = doCreateItemEx(3058)
       if getPlayerSex(cid) == 0 then
           doPlayerAddItem(cid, 2651, 1)
           local pronoun = "She"
    doSetItemSpecialDescription(rookedCorpseFem, "You recognize " .. getCreatureName(cid) .. ". " .. pronoun .. " was killed by " .. getCreatureName(mostDamageKiller) .. ".")
           doTileAddItemEx(deathPos, rookedCorpseFem)
    doAddContainerItem(rookedCorpseFem.uid, slotItem.uid)
       else
           doPlayerAddItem(cid, 2650, 1)
           local pronoun = "He"
    doSetItemSpecialDescription(rookedCorpseMale, "You recognize " .. getCreatureName(cid) .. ". " .. pronoun .. " was killed by " .. getCreatureName(mostDamageKiller) .. ".")
	doTileAddItemEx(deathPos, rookedCorpseMale)
	doAddContainerItem(rookedCorpseMale.uid, slotItem.uid)
       end
       doPlayerSetVocation(cid, 0)
       doPlayerSetTown(cid, rookTownID)
       doTeleportThing(cid, getTownTemplePosition(rookTownID))

       db.executeQuery("UPDATE `players` SET `level` = '1',  `experience` = '0', `health` = '150', `healthmax` = '150', `mana` = '0', `manamax` = '0', `maglevel` = '0', `manaspent` = '0' WHERE `players`.`id` = '" .. rookedGUID .. "' LIMIT 1;")
       db.executeQuery("UPDATE `player_skills` SET `value` = '10',  `count` = '0' WHERE `player_skills`.`player_id` = '" .. rookedGUID .. "' LIMIT 7;")
		for c = 1, 2097152 do 
		doRemoveCondition(cid, c)
		end
[color="Magenta"]		doPlayerPopupFYI(cid, "Alas! Brave adventurer, you have met a sad fate.\nBut do not despair, for the gods will bring you back\ninto the world in exchange for a small sacrifice.\n\nSimply clock 'Ok' to resume your journeys in Tibia!\nYou has been Rooked")[/color]
	doRemoveCreature(cid)
       return FALSE
   else

       return TRUE

   end
end

Explicando:

 

Vermelho: Aqui é o ID de rookgaard, onde você coloca o ID da sua.

Verde: Aqui são os itens que serão adicionados ao player quando for rookado.

Rosa: Aqui é a menssagem que apareçerá ao player quando for rookado.

 

Continuando...

 

Agora em data/creaturescripts abra o arquivo creturescripts.xml com o bloco de notas e adicione a seguinte linha antes de </creaturescripts>:

<event type="preparedeath" name="Rook" script="rook.lua"/>

 

Agora, em data/creturescripts/scripts abra o arquivo chamado login.lua com o bloco de notas e adicione a seguinte linha antes de

return TRUE

 

Adicione:

registerCreatureEvent(cid, "Rook")

 

Por exemplo, o meu login.lua está assim:

 

function onLogin(cid)
local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
	for i = PLAYERLOSS_EXPERIENCE, PLAYERLOSS_ITEMS do
		doPlayerSetLossPercent(cid, i, loss)
	end
end

registerCreatureEvent(cid, "Mail")
registerCreatureEvent(cid, "GuildMotd")
registerCreatureEvent(cid, "PlayerDeath")
return TRUE
end

 

Então ficará assim:

 

function onLogin(cid)
local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
	for i = PLAYERLOSS_EXPERIENCE, PLAYERLOSS_ITEMS do
		doPlayerSetLossPercent(cid, i, loss)
	end
end

registerCreatureEvent(cid, "Mail")
registerCreatureEvent(cid, "GuildMotd")
registerCreatureEvent(cid, "PlayerDeath")
[b][color="DarkGreen"]	registerCreatureEvent(cid, "Rook")[/color][/b]
return TRUE
end

 

É só isso, comentem e, se gostaram muito do script, doe OT$ :whistle:

 

 

Até mais :bye:

Editado por mamiloXD

Compartilhar este post


Link para o post
Mock    32
Mock

Comentario: Só pra ocnstatr no global vocÊ nao ganha os itens :P você podeia fazeru m script tabem para inserir todos os itens que o player perder no corpo ai sim ficaria perfeito. mais em fim táo otimo o script.

 

Aprovadoico_aprovado.png & Movidoicon_movido.giffechado22xnux7.gif

Compartilhar este post


Link para o post
Dragon45    0
Dragon45

Legal esse sciprt vou usar no meu ot

Compartilhar este post


Link para o post
Mithz    0
Mithz

Aeeê até que em fim! Tava precisando muito desse script x.x'

Vai ajudar muito em projetos de servers com rook c(=

Obrigado por trazer à OTNet!

 

No more...

Compartilhar este post


Link para o post
Jedi    7
Jedi

Legal, ^^

 

Vo decha guardadim aque D:

Compartilhar este post


Link para o post
Zeephiroth    42
Zeephiroth

Parece maneiro, obrigado pela contribuição.

Compartilhar este post


Link para o post
aldoano    0
aldoano

Legal maravilhoso pena que aqui não funciona porque é 8.1 :(

Alguem saberia como fazer um pra 8.1?

Podem me ajudar aqui no forum mesmo ^^

http://forums.otserv.com.br/f13/rookando-novo-90101/

Compartilhar este post


Link para o post
f@bio    0
f@bio

-- Você apenas copiou do kra e colou aki, mas tudo bem, vc deu os creditos e ainda tah ajudando a comunidade... parabens pela iniciativa...

 

-- Consegue fazer ele funcionar no TFS 0.3.4 -pl2???? Nessa versao de ot, ele n reseta os skills e nem o level e ml....

 

Obrigado a quem puder ajudar...

Compartilhar este post


Link para o post
KutyKutyx3    1
KutyKutyx3
você podeia fazeru m script tabem para inserir todos os itens que o player perder no corpo ai sim ficaria perfeito. mais em fim táo otimo o script.

 

Feito, mas não testei, não sei se funciona ^^

Compartilhar este post


Link para o post
Zephiroth.    0
Zephiroth.

Obrigado por contribuir, apesar de que, hoje em dia, não se ve mais rookgaard na maioria dos OTs.

Compartilhar este post


Link para o post
marcryzius    0
marcryzius

nao vi modificaçao alguma esse script eu ja tenho a muito tempo...

Compartilhar este post


Link para o post
Reyk    0
Reyk

Até que enfim, parece ser o primeiro rook system né ? Parabéns pelo trabalho !

 

Continue assim e Ira Longe ^^

Compartilhar este post


Link para o post
vione    0
vione

Script muito bom!

Vou criar uma rook aqui e usá-lo!

:)

 

Obrigado :P

 

Abraços!!

Compartilhar este post


Link para o post
Eroz    0
Eroz

Parabéns, tá otimo o script. Se a cada dia surgissem mais como esse os Ots seriam melhores que o tibia facil =P

Compartilhar este post


Link para o post
$ilent Hunter    0
$ilent Hunter

vixe não gosto de rook =(

Compartilhar este post


Link para o post
marcryzius    0
marcryzius

so que no script o doremovecreature esta na posiçao errada ele esta removendo depois de seta a db. o que e errado porque ela atualiza as informaçoes mas quando o player e removido ele atualiza de novo o db so que como ele estava antes de ser removido com skill e level isso e que fica atualizado no momento que ele e removido.

Compartilhar este post


Link para o post
toninho_xd    0
toninho_xd

Tudo que eu precisava :P

Obrigado pela contribuição!

Compartilhar este post


Link para o post
KutyKutyx3    1
KutyKutyx3
so que no script o doremovecreature esta na posiçao errada ele esta removendo depois de seta a db. o que e errado porque ela atualiza as informaçoes mas quando o player e removido ele atualiza de novo o db so que como ele estava antes de ser removido com skill e level isso e que fica atualizado no momento que ele e removido.

 

Mais cara isso não tem nada a ver, porque a query só vai "setar" o level, a mana, a vida e etc, não a posição do personagem.

 

Quando o player deslogar do jogo, a db se atualizará altomaticamente.

 

Abraços.

//KutyKutyx3

Compartilhar este post


Link para o post
Yurki    0
Yurki

Além de quase não ter mais rook nos ot de hj, tá legal o script ^^

Parabén a quem criou, eu irei usa ele O:

Compartilhar este post


Link para o post
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×