NE

[Resolvido] Explicando Script, !open Evento

Por neguinha, 20 de abr. de 2012 em Scripts

william
script
8
1.4k
neguinhaN
20 de abril de 2012 às 21:31

Explicando script: tipo quando o GOD, falace !aberto, referindo ao evento que abriu, ae todos player que somente tivese em uma area pz, temple, dp e outros, so na parte pz do server todo, fose pra tal pos, que essa pos ia ser uma city de war, ae, tipo um player matava o outro e ganhava tal item, toda hora que matase um player no evento ganhava um item, ae no final do evento quem fico com mais item, ganha, ou pode ser um contador de flags tbm, tipo matei um ae Frags 1, e assim por diante, no final do evento quando o GOD, fala !fechando, ae quem mato mais ganha uma um storage e um item raro, e voltase pra tal pos todos que estava no evento, e isso ae espero que possa mim ajuda POR FAVO, e obrigado

jhon992J
21 de abril de 2012 às 08:16

Primeiro em data/talkactions/script, duplica um arquivo e nomeia para "eventokill" sem as aspas e nele cole:

--<Script by jhon992>--
function onSay(cid, words, param, channel)

local online = getPlayersOnline()
local player = 0
local playerStorage = 0
local posEvent = {x=1234, y=345, z=7} -- posição para que os players serão teleportados ao iniciar o evento.
local itemGain = {1234,4564} -- itens que ganha ao acabar o evento.

local posUp = {x=1234, y=345, z=7} -- posição superior esquerdo do mapa do evento.
local posDown = {x=1234, y=345, z=7} -- posição inferior direito do mapa do evento.
local posBackEvent = {x=1234, y=345, z=7} -- posição para que os players serão teleportados ao acabar o evento.

if (param == "") then
doPlayerSendTextMessage(cid, 24,"Comando errado.")
return true
end

if (param == "open") then
for i=1, #online do
   if (getTilePzInfo(getCreaturePosition(online[i])) == TRUE) then
    setPlayerStorageValue(online[i], 403451, -1)
       doTeleportThing(online[i], posEvent)
   end
end
doBroadcastMessage("O Evento esta aberto!")
return true
end

if (param == "close") then
online = getPlayersOnline()
doBroadcastMessage("O Evento esta feichado!")
for i=1, #online do
   if (isInArea(getPlayerPosition(online[i]), posUp, posDown)) then
       doTeleportThing(online[i], posBackEvent)
       if (getPlayerStorageValue(online[i], 403451) > playerStorage) then
           player = online[i]
           playerStorage = getPlayerStorageValue(online[i], 403451)
       end	  
   end
end
for i=1, #itemGain do
   doPlayerAddItem(player, itemGain[i])
end
doBroadcastMessage("O player ".. getCreatureName(player) .." matou ".. getPlayerStorageValue(cid, 403451) +1 .." players e ganhou o evento!")
end

return TRUE
end

 

Em talkactions.xml cole a tag:

<talkaction log="yes" words="!evento" access="4" event="script" value="eventokill.lua"/>

 

Agora em data/creaturescripts/scripts, duplica um arquivo e nomeia para "killevent" sem as aspas e nele cole:

--<Script by jhon992>--
function onKill(cid, target, lastHit)

local posUp = {x=1234, y=345, z=7} -- posição superior esquerdo do mapa do evento. (MESMA POSIÇÂO QUE NO OUTRO ARQUIVO)
local posDown = {x=1234, y=345, z=7} -- posição inferior direito do mapa do evento. (MESMA POSIÇÂO QUE NO OUTRO ARQUIVO)

if (isInArea(getPlayerPosition(cid), posUp, posDown)) then
   setPlayerStorageValue(cid, 403451, getPlayerStorageValue(cid, 403451) +1)
   doPlayerSendTextMessage(cid, 24,"Você ja matou".. getPlayerStorageValue(cid, 403451) +1 .." players no evento.")
end

return TRUE
end

 

Agora em creaturescripts.xml cole a tag:

<event type="kill" name="KillEvent" event="script" value="killevent.lua"/>

 

E por último, no arquivo login.lua na pasta /scripts, cole antes do último return true essa tag:

registerCreatureEvent(cid, "KillEvent")

neguinhaN
21 de abril de 2012 às 09:36

Jhon, modifica ae eu ti agradeceria cara, tipo, e so os player que ta pz, tipo para akeles que estao upando, ou treiner nao fim evento, por que eu como god vou fala todos no templo, ae todos vao da area pz, ae todos que tiver la vai pro evento quando !evento, obrigado ^^

Editado Abril 21 por neguinha

jhon992J
21 de abril de 2012 às 10:14

Mais ta pra player que ta sóh em pz. Não ta funcionando?

neguinhaN
21 de abril de 2012 às 10:26

e que eu nao vir nem um coisa de pz no scrip, nao testei ainda nao, eu so istalei ainda, pois ainda to editando a city de war, mais eu ja ti dei 1 REP+, tem como mim passa seu msn, por que to com umas duvidas de scrips, ae se vc for ajudando eu ti do rep todo dia, flw jhon

VildenV
21 de abril de 2012 às 14:30

Amigo, quando for criar um tópico seja objetivo em seu titulo!

Titulo editado, caso queira modifica, edite a seu gosto, mais seja objetivo.

neguinhaN
22 de abril de 2012 às 10:07

Vlw vilden, e que foi meu primeiro pedido no xtibia, mais vou tenta evoluir, vlw pela dica, nota 10 amigao...

1 mês depois...
alldakieA
15 de maio de 2012 às 15:26

Resolvido,

Movido para "Pedidos e Dúvidas de Scripts Atendidos".