Ir para conteúdo
  • 0

Evento Cidade Optional PvP Invasao


Miinerva

Pergunta

Olá pessoal do Xtibia

 

Vim aqui para pedir um Scripter.

Nao sei direito se é realmente um Scripter.

De invasão próprio ou seja de :

19:55 !pvp
19:55 O Servidor Está Optional PvP.

 

Um servidor que eu jogo.

(Nao vou divulgar)

Nao sei se é permitido.

Entao...

Quando tem invasão nesse servidor, varios bichos fortes aparecem na cidade.

E quando a gente morre para eles.

Voltamos ao templo.

Com vida e mana >>full<<.

 

Gostaria de saber como faço isso no meu Mapa.

Também mapa Radbr. 8.60.

Tenho um scripter de /raid invasao.

Mas nao é do mesmo geito.

E nao sei se é lá...

Pois nao sei quase nada de Scripter.

Pois gostaria muito de aprender, Gosto muito dessa parte.

Entao. Espero que tenham Intendido sobre esse sistema.

Eu gostaria de colocar em meu servidor.

Peço ajuda a voces.

Obrigado. Agradeço des de já!.

Sei que nao preciso falar que vou dar REP+.

Pois vou dar sim.

Pois queria esse scripter.(Ou seja lá o que for)

Fiz um Video desse (servidor)* que jogo.

E gravei. Desculpem mas nao está bem o video.

Mas espero que intendam, quando estava gravando estava bom. Depois que vi, não estava.

Sobre essa invasao o Video.

Link do Video :

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Desculpa, não sei se é permitido postagem dupla.

Mas nossa... Nem um comentário ?

Nossa nem os melhores Scripters do Xtibia sabe isso ?

Nem os Profissionais em Scripter?

 

Desculpa, mas é que é difícil de acredita. E nem no meu outro post.

Sobre resetar database.

Mas isso ai, desculpem novamente.

É que é difícil acreditar!

 

Eu Miinerva, e vinnevinne estamos esperando alguma resposta.

Ele também está seguindo esse tópico.

Editado por Miinerva
Link para o comentário
Compartilhar em outros sites

  • 0

Não é questão de não saber, às vezes nem da dificuldade. Mas aqui ninguém tem obrigação de atender pedidos, então pode ser que demore se as pessoas estão ocupadas ou simplesmente preferem fazer outra coisa.

Além disso tem vários pedidos e dúvidas, o seu é só um entre eles.

 

Bom, mas fiz o código aqui. O problema é invocar os monstros do jeito que você quiser, então deixei uma brecha para isso. Você deverá criar sua própria raid e o comando irá iniciá-la e fazer com que as pessoas que morrerem no local definido sejam teletransportadas para o templo em vez de perderem as coisas.

 

Salve esse código em creaturescripts/scripts como event_no_death.lua

 

 

local event_pos1 = {x=x, y=y, z=z}
local event_pos2 = {x=x, y=y, z=z}

function onPrepareDeath(cid)
	if not isPlayer(cid) then
		return true	
	elseif getGlobalStorageValue(81236) == 1 then
		if isInArea(getThingPos(cid), event_pos1, event_pos2) then
			doTeleportThing(cid, getPlayerTemplePos(cid))
			doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true)
			doCreatureAddMana(cid, getCreatureMaxMana(cid))
			doRemoveConditions(cid, false)
			return false
		end
	end
	return true
end

 

 

 

Salve esse código como event_trigger.lua em talkactions/scripts:

 

 

local raidname = "escreva aqui o nome da raid"

function onSay(cid, words, param)
	local param = param:lower()
	if param == "on" then
		setGlobalStorageValue(81236, 1)
		executeRaid(raidname)
		doPlayerSendTextMessage(cid, 27, "O evento esta ligado. Agora as pessoas na area serao teleportadas para o templo.")
	elseif param == "off" then
		setGlobalStorageValue(81236, -1)
		doPlayerSendTextMessage(cid, 27, "O evento foi desligado.")
		doPlayerSendTextMessage(cid, 27, "Voce pode ligar[on] ou desligar[off] o evento.")
	else
		doPlayerSendTextMessage(cid, 27, "Voce pode ligar[on] ou desligar[off] o evento.")
	end
end

 

 

 

Agora adicione essa tag em creaturescripts.xml:

<event type="preparedeath" name="no_death" event="script" value="event_no_death.lua"/>

E essa tag em talkactions.xml:

<talkaction words="/customraid" access="5" event="script" value="event_trigger.lua"/>

No primeiro arquivo você deverá editar as posições do evento e no segundo, o nome da raid a ser iniciada. Caso não saiba criar sua raid, leia esse tutorial. Para ligar o evento (fazer com que as pessoas que iriam morrer na área sejam teletransportadas e começar a raid) use /customraid on e para desligar, use /customraid off. Só funcionará com GMs e GODs.


Ah, já ia esquecendo: insira um

registerCreatureEvent(cid, "no_death")

No login.lua onde tem outros registerCreatureEvent.

Link para o comentário
Compartilhar em outros sites

  • 0

Muito Obrigado!!

Desculpa, mas é que ninguem nem para falar oibeurk.gif
Obrigado irei testar agora.
Estou sem tempo. Desculpe novamente.
Muito Obrigado!
REP+happy.png

 

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

Eu testei ele no mapa Baikzik.

Nao funcionou não.

Nao intendi essa parte :

 

local event_pos1 = {x=x, y=y, z=z}
local event_pos2 = {x=x, y=y, z=z}

Tem que adicionar piso por piso ?

E se eu quizer adiconar para a cidade inteira?

Eu testei com alguns pisos no templo, peguei x,y,z. Mas nao adianto nada, morre e perde do mesmo geito.

Nao tem como tipo a /raid?

Pegar de longe < E longe >

Os bichos nace.

Minha raid é assim : Cria um bicho principal, e outros.

Gostaria de adicionar na cidade Inteira, para esse evento. E outra coisa sobre : registerCreatureEvent(cid, "no_death")

Na pasta login, coloco aonde ? Junto com as outras iguais ? Ou tem preferencia nelas?

Desculpe encomodar.

 

 

(Desculpe pelos erros e do geito que falei, to com um pouco de preça tenho que trabalhar amanhã. E to sem tempo)

Editado por Miinerva
Link para o comentário
Compartilhar em outros sites

  • 0
local event_pos1 = {x=x, y=y, z=z}
local event_pos2 = {x=x, y=y, z=z}

Aqui você bota a posição do canto superior esquerdo e do canto inferior direito da área na qual o evento irá ocorrer.

Link para o comentário
Compartilhar em outros sites

  • 0

Omega.

Olá desculpa a demora.

Não está funcionando 100% não.

 

Olha essa foto :

Nao_morre.png

 

Fica dando erro no Executer :

 

[26/12/2013 22:27:24] [Error - CreatureScript Interface]
[26/12/2013 22:27:24] data/creaturescripts/scripts/event_no_death.lua:onPrepareDeath
[26/12/2013 22:27:24] Description:
[26/12/2013 22:27:24] data/creaturescripts/scripts/event_no_death.lua:9: attempt to call global 'getPlayerTemplePos' (a nil value)
[26/12/2013 22:27:24] stack traceback:
[26/12/2013 22:27:24] data/creaturescripts/scripts/event_no_death.lua:9: in function <data/creaturescripts/scripts/event_no_death.lua:4>

 

Eu coloquei assim :

local event_pos1 = {x=511, y=507, z=7}
local event_pos2 = {x=574, y=574, z=7}

 

O ( local event_pos1 = {x=511, y=507, z=7} )

Está aqui :

Canto_comeo.png

 

O ( local event_pos2 = {x=574, y=574, z=7} )

Está aqui :

Canto_final.png

 

E quando eu saio desses pisos.

O player Morre e perde aol e skills. Uma morte normal.

 

Antes da morte. Com 0 de Vida.

Antes_de_morrer.png

 

Depois da morte. Com 0 de Vida.

Depois_da_morte.png

 

( data\creaturescripts\scripts )

Tem duas pasta : login e login2

Eu coloquei nas duas.

Está assim :

<event type="login" name="PlayerLogin" event="script" value="login.lua"/>

<event type="login" name="PlayerLogin" event="script" value="login2.lua"/>

<event type="preparedeath" name="no_death" event="script" value="event_no_death.lua"/>

 

( data\talkactions )

Está assim :

<!-- Gods -->

<talkaction words="/customraid" access="5" event="script" value="event_trigger.lua"/>

 

Gostaria de saber se tem como me ajudar.

 

Gostaria de colocar esse scripter no meu servidor.

Ajuda muito.

Agradeço des de já.

Atenciosamente, Miinerva.

Editado por Miinerva
Link para o comentário
Compartilhar em outros sites

  • 0

Tenta substituir o arquivo de creaturescripts por esse:

local event_pos1 = {x=x, y=y, z=z}
local event_pos2 = {x=x, y=y, z=z}
 
function onPrepareDeath(cid)
    if not isPlayer(cid) then
        return true 
    elseif getGlobalStorageValue(81236) == 1 then
        if isInArea(getThingPos(cid), event_pos1, event_pos2) then
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true)
            doCreatureAddMana(cid, getCreatureMaxMana(cid))
            doRemoveConditions(cid, false)
            return false
        end
    end
    return true
end
 
function onLogin(cid)
    registrerCreatureEvent(cid, "eventDeath")
    return true
end
E, as tags:
<event type="preparedeath" name="eventDeath" event="script" value="event_no_death.lua"/>
<event type="login" name="eventDeathLogin" event="script" value="event_no_death.lua"/>
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

Não funcionou, Mas muito obrigado por ta me ajudando.
Te dei REP mais por me ajudar.
Mas não está funcionando não.
Dou REP + para quem me ajudar por favor.

Eu dechei assim :

data\creaturescripts\scripts :

local event_pos1 = {x=511, y=507, z=7}
local event_pos2 = {x=574, y=574, z=7}

function onPrepareDeath(cid)
if not isPlayer(cid) then
return true
elseif getGlobalStorageValue(81236) == 1 then
if isInArea(getThingPos(cid), event_pos1, event_pos2) then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true)
doCreatureAddMana(cid, getCreatureMaxMana(cid))
doRemoveConditions(cid, false)
return false
end
end
return true
end

function onLogin(cid)
registrerCreatureEvent(cid, "eventDeath")
return true
end

---------------------------------------------------------------------------------------------------------------
E dechei assim em :

data\creaturescripts :

<?xml version="1.0" encoding="UTF-8"?>

<creaturescripts>

<event type="login" name="PlayerLogin" event="script" value="login.lua"/>

<event type="preparedeath" name="eventDeath" event="script" value="event_no_death.lua"/>
<event type="login" name="eventDeathLogin" event="script" value="event_no_death.lua"/>
<event type="login" name="ItemLogin" event="script" value="itemlogin.lua"/>
<event type="login" name="FirstItems" event="script" value="firstitems.lua"/>

<event type="joinchannel" name="GuildMotd" event="script" value="guildmotd.lua"/>
<event type="reportbug" name="SaveReportBug" script="reportbug.lua"/>

<event type="advance" name="AdvanceSave" event="script" value="advancesave.lua"/>

<event type="textedit" name="BanBook" event="script" value="banbook.lua"/>

<event type="think" name="Idle" event="script" value="idle.lua"/>

<event type="kill" name="TopFrags" event="script" value="topfrags.lua"/>

<event type="death" name="ProtectLevel" event="script" value="levelprotection.lua"/>
<event type="login" name="PremyCheck" event="script" value="PremyCheck.lua"/>

<event type="login" name="PremyCheck2" event="script" value="PremyCheck2.lua"/>

</creaturescripts>


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

Em data\talkactions\scripts

Dechei assim : talkactions

local raidname = "total"

function onSay(cid, words, param)
local param = param:lower()
if param == "on" then
setGlobalStorageValue(81236, 1)
executeRaid(raidname)
doPlayerSendTextMessage(cid, 27, "O evento esta ligado. Agora as pessoas na area serao teleportadas para o templo.")
elseif param == "off" then
setGlobalStorageValue(81236, -1)
doPlayerSendTextMessage(cid, 27, "O evento foi desligado.")
doPlayerSendTextMessage(cid, 27, "Voce pode ligar[on] ou desligar[off] o evento.")
else
doPlayerSendTextMessage(cid, 27, "Voce pode ligar[on] ou desligar[off] o evento.")
end
end

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

O talkactions que o(Omega) me passou da erro.
Eu tive que mudar de :
<talkaction words="/customraid" access="5" event="script" value="event_trigger.lua"/>

Para : <talkaction log="yes" words="/customraid" access="5" event="script" value="event_trigger.lua"/>

Assim funcionou normalmente.

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

Do jeito que você me pediu para trocar.
Eu Abri o Executer.
E tento logar da esse error.

[01/01/2014 06:20:56] Thoht has logged in.

[01/01/2014 06:20:56] [Error - CreatureScript Interface]
[01/01/2014 06:20:56] data/creaturescripts/scripts/event_no_death.lua:onLogin
[01/01/2014 06:20:57] Description:
[01/01/2014 06:20:57] data/creaturescripts/scripts/event_no_death.lua:20: attempt to call global 'registrerCreatureEvent' (a nil value)
[01/01/2014 06:20:57] stack traceback:
[01/01/2014 06:20:57] data/creaturescripts/scripts/event_no_death.lua:20: in function <data/creaturescripts/scripts/event_no_death.lua:19>
[01/01/2014 06:20:57] Thoht has logged out.

E não entra, fica carregando...

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

E se eu deixa do jeito que o Omega postou, fica do jeito que está as fotos acima.
Fica com 0 De vida e fica dando erro.
E não morre não faz nada.

Por favor alguém me ajuda.
Gostaria muito desse Scripter.
Agradeço des de já.

Atenciosamente, Miinerva.

Editado por Miinerva
Link para o comentário
Compartilhar em outros sites

  • 0

Ops, foi mal, erro de digitação.

 

local event_pos1 = {x=x, y=y, z=z}
local event_pos2 = {x=x, y=y, z=z}
 
function onPrepareDeath(cid)
    if not isPlayer(cid) then
        return true 
    elseif getGlobalStorageValue(81236) == 1 then
        if isInArea(getThingPos(cid), event_pos1, event_pos2) then
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true)
            doCreatureAddMana(cid, getCreatureMaxMana(cid))
            doRemoveConditions(cid, false)
            return false
        end
    end
    return true
end
 
function onLogin(cid)
    registerCreatureEvent(cid, "eventDeath")
    return true
end
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...