Ir para conteúdo
  • 0

[8.54] Pedido Efeito Na Vocation


Raidou

Pergunta

Olá galerinha do Xtibia,hoje estou aqui para pedir um script,que provavelmente irá ficar na pasta creaturescripts.Bom agora leiam abaixo o que eu quero que o script Faça...

 

-Quero que quando o player se transforma nakela vocation,ele fike soltando um efeito(configurável.),e so saia,quando o player virar outra vocation,que eu n por para dar efeito.

 

 

O que quero que esteja no Script?

-Parte do script,para mim configurar,tal vocations,com tal ID de efeito.

 

Muito Obrigado,pela atençao.

Link para o comentário
Compartilhar em outros sites

  • Respostas 32
  • Created
  • Última resposta

Top Posters For This Question

Top Posters For This Question

Posts Recomendados

  • 0

veja assim

 

local vocs = {
[7] = {effect = 14},
[6] = {effect = 13},
[5] = {effect = 14}

}

function onThink(cid, interval)
local voc = getPlayerVocation(cid)
if vocs[voc] then
if getPlayerAccess(cid,0) and getPlayerAccess(cid,1) then
elseif getPlayerAccess(cid,2) then
local efeito = vocs[voc].effect
doSendMagicEffect(getCreaturePosition(cid), efeito)
return true
end
return true
end   
end

Link para o comentário
Compartilhar em outros sites

  • 0

Dei uma adaptada no meu script:

 

vocefeito.lua:

 

local tempo = 1 -- De quanto em quantos segundos sairá o efeito

local voc_ef = { -- Vocation ID / efeito

[1] = 10,

[2] = 10,

[3] = 10

}

 

local voc_table = voc_ef[getPlayerVocation(cid)]

 

function efeito(cid)

for i = 1, #voc_ef do

if getPlayerVocation(cid) ~= i then return true

end

end

 

doSendMagicEffect(getCreaturePos(cid), voc_table)

addEvent(efeito, tempo*1000, cid)

end

 

function onThink(cid)

efeito(cid)

return true

end

 

 

creaturescripts.xml:

 

<event type="think" name="VocationsEff" event="script" value="vocefeito.lua"/>

 

login.lua:

registerCreatureEvent(cid, "VocationsEff")

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

  • 0

Vou Testar ja edito aki.Fikem atentos,ao que eu postar.

 

OBS:Desculpa tar encomodando tanto voces.

É que o projeto vai ser mt bom.

 

@Edit

 

Bom,consegui arrumar o transformar.Mais o effect nao pego.Olhem como ta. meus arkivos.

 

effect.lua

 

 

 

local tempo = 1 -- De quanto em quantos segundos sairá o efeito

local voc_ef = { -- Vocation ID / efeito

[1] = 14,

[2] = 13,

}

 

local voc_table = voc_ef[getPlayerVocation(cid)]

 

function efeito(cid)

for i = 1, #voc_ef do

if getPlayerVocation(cid) ~= i then return true

end

end

 

doSendMagicEffect(getCreaturePos(cid), voc_table)

addEvent(efeito, tempo*1000, cid)

end

 

function onThink(cid)

efeito(cid)

return true

end

 

 

 

 

login.lua

 

 

local config = {

loginMessage = getConfigValue('loginMessage'),

useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))

}

 

local loss = getConfigValue('deathLostPercent')

if(loss ~= nil) then

doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)

end

 

local accountManager = getPlayerAccountManager(cid)

if(accountManager == MANAGER_NONE) then

local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage

if(lastLogin > 0) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)

str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."

else

str = str .. " Please choose your outfit."

doPlayerSendOutfitWindow(cid)

end

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)

elseif(accountManager == MANAGER_NAMELOCK) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")

elseif(accountManager == MANAGER_ACCOUNT) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")

end

 

if(not isPlayerGhost(cid)) then

doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)

end

 

registerCreatureEvent(cid, "VocationsEff")

 

registerCreatureEvent(cid, "Mail")

registerCreatureEvent(cid, "GuildMotd")

 

registerCreatureEvent(cid, "Idle")

if(config.useFragHandler) then

registerCreatureEvent(cid, "SkullCheck")

end

 

registerCreatureEvent(cid, "ReportBug")

registerCreatureEvent(cid, "AdvanceSave")

return true

end

 

 

 

creaturescripts.xml

 

 

 

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

<creaturescripts>

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

 

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

<event type="receivemail" name="Mail" event="script" value="mail.lua">

<event type="reportbug" name="SaveReportBug" script="reportbug.lua">

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

 

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

<event type="think" name="SkullCheck" event="script" value="skullcheck.lua">

<event type="advance" name="upgain" event="script" value="upgain.lua">

<event type="think" name="VocationsEff" event="script" value="effect.lua">

</event></event></event></event></event></event></event></event></event></creaturescripts>

 

 

 

 

O efeito nao pega,mais ele transforma de boa.

Aguardo,respostas.

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

  • 0

tenta esse script, com as tag iguais ao do chaotic, não esqueça de registrar no login.lua.

 

local pos = getCreaturePosition(cid)
function onRaio(cid)
if getPlayerVocation(cid) == 1 then
doSendMagicEffect(pos, 10)
elseif getPlayerVocation(cid) == 3 then
doSendMagicEffect(pos, 65)
end
return true
end

function onLogin(cid)
local time = -1
addEvent(function() onRaio(cid) end, time*1000)
return true
end

 

já espliquei como adicionar mais, agora testa ae ^^

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

  • 0

tenta esse script, com as tag iguais ao do chaotic, não esqueça de registrar no login.lua.

 

local pos = getCreaturePosition(cid)
function onRaio(cid)
if getPlayerVocation(cid) == 1 then
doSendMagicEffect(pos, 10)
elseif getPlayerVocation(cid) == 3 then
doSendMagicEffect(pos, 65)
end
return true
end

function onLogin(cid)
local time = -1
addEvent(function() onRaio(cid) end, time*1000)
return true
end

 

já espliquei como adicionar mais, agora testa ae ^^

 

Pode configura o Login.lua pra mim por favor?

 

Nao sei fazer isso.

Se puder passar o seu eu agradeço muito.

 

Até mais.

Link para o comentário
Compartilhar em outros sites

  • 0

Ta mais,eu nao sei adicionar a linha no login.lua.

 

Alguem adiciona pra mim?

 

Ta aki o meu Login.lua

 

 

 

local config = {

loginMessage = getConfigValue('loginMessage'),

useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))

}

 

local loss = getConfigValue('deathLostPercent')

if(loss ~= nil) then

doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)

end

 

local accountManager = getPlayerAccountManager(cid)

if(accountManager == MANAGER_NONE) then

local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage

if(lastLogin > 0) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)

str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."

else

str = str .. " Please choose your outfit."

doPlayerSendOutfitWindow(cid)

end

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)

elseif(accountManager == MANAGER_NAMELOCK) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")

elseif(accountManager == MANAGER_ACCOUNT) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")

end

 

if(not isPlayerGhost(cid)) then

doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)

end

 

 

registerCreatureEvent(cid, "Mail")

registerCreatureEvent(cid, "GuildMotd")

 

registerCreatureEvent(cid, "Idle")

if(config.useFragHandler) then

registerCreatureEvent(cid, "SkullCheck")

end

 

registerCreatureEvent(cid, "ReportBug")

registerCreatureEvent(cid, "AdvanceSave")

 

return true

end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

pronto

 

local config = {
loginMessage = getConfigValue('loginMessage'),
useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}
local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
end
local accountManager = getPlayerAccountManager(cid)
if(accountManager == MANAGER_NONE) then
local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
if(lastLogin > 0) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
else
str = str .. " Please choose your outfit."
doPlayerSendOutfitWindow(cid)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
elseif(accountManager == MANAGER_NAMELOCK) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
elseif(accountManager == MANAGER_ACCOUNT) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
end
if(not isPlayerGhost(cid)) then
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
end

registerCreatureEvent(cid, "Mail")
registerCreatureEvent(cid, "GuildMotd")
registerCreatureEvent(cid, "Idle")
if(config.useFragHandler) then
registerCreatureEvent(cid, "SkullCheck")
end
registerCreatureEvent(cid, "ReportBug")
registerCreatureEvent(cid, "AdvanceSave")
registerCreatureEvent(cid, "efe")
return true
end

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.

×
×
  • Criar Novo...