Ir para conteúdo
  • 0

Troca De Pvp E Non-Pvp


Nathan96

Pergunta

Protocolo 8.6

Servidor utilizado: tfs 3.6

 

Preciso de um script para que o player fique em modo no-pvp quando desejado e pvp quando desejado.

 

Exemplo:

o player digita !mudarpvp uma vez ai então ele fica em modo no-pvp livre de attacks de outros players, si ele falar novamente !mudarpvp ele voltara a ser modo pvp, podendo ser atacado novamente, isso claro com um tempo de "Exausted" que seria de 1 dia.

 

Obrigado pela atenção e espero que ajudem.

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

11 respostass a esta questão

Posts Recomendados

  • 0

Acho que é impossível, já que só tem a função de setar para todos. [world]

mais sempre tem um aziatico né, espera confirmações dos scripters...

 

setWorldType(PvP)

Link para o comentário
Compartilhar em outros sites

  • 0

Vamo la. happy.png

 

Primeiro vai em data/creaturescripts/scripts, duplica um arquivo e nomeia para "pvpmode" sem as aspas e nele cole:

function onCombat(cid, target)

if (isPlayer(cid) and isPlayer(target)) then
   if getPlayerStorageValue(cid, 102059) == 1 then
       doPlayerSendTextMessage(cid, 27, "Seu status é non-pvp.")
       return FALSE
   elseif getPlayerStorageValue(target, 102059) == 1 then
       doPlayerSendTextMessage(cid, 27, "O status de seu oponente é non-pvp.")
       return FALSE
   end
end

 return TRUE
end

 

Agora em creaturescripts.xml coloque a tag:

<event type="combat" name="PvpMode" event="script" value="pvpmode.lua"/>

 

Depois vai no arquivo creaturescripts/scripts/login.lua e antes do último "return true" cole essa tag:

registerCreatureEvent(cid, "PvpMode")

 

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

 

Creaturescripts ta pronto, agora vamos para o talkaction de ativação.

 

Vai em data/talkactions/scripts, duplica um arquivo e nomeia para "pvp_change" sem as aspas e nele cole:

function onSay(cid, words, param, channel)

local exausted = 1 -- dias de exausted

if(exhaustion.check(cid, 34538) == TRUE) then
  if (exhaustion.get(cid, 34538) >= 60) then
  doPlayerSendCancel(cid, "Voçê só pode mudar modo após [" .. math.floor(exhaustion.get(cid, 34538) / 60 + 1) .."] minutos.")
  end
   if (exhaustion.get(cid, 34538) <= 60) then
   doPlayerSendCancel(cid, "Voçê só pode mudar modo após [" .. exhaustion.get(cid, 34538).."] segundos.")
   end
return TRUE
end

if getPlayerStorageValue(cid, 102059) == 1 then
   setPlayerStorageValue(cid, 102059, 0)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ativado Modo: PVP.")
   doSendMagicEffect(getCreaturePosition(cid), 30)    -- mudar effect se desejar
   exhaustion.set(cid, 34538, exausted * 60 * 60 * 24)
else
   setPlayerStorageValue(cid, 102059, 1)
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ativado Modo: NON-PVP.")
   doSendMagicEffect(getCreaturePosition(cid), 30)    -- mudar effect se desejar
   exhaustion.set(cid, 34538, exausted * 60 * 60 * 24)
end

return true
end

 

E por último, em talkactions.xml cole a tag:

<talkaction words="!mudarpvp" event="script" value="pvp_change.lua"/>

 

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

 

Obs: nem testei, qualquer erro me fala.

Link para o comentário
Compartilhar em outros sites

  • 0
function onSay(cid, words, param, channel)

local exausted = 30 -- trinta minutos de exausted

if(exhaustion.check(cid, 34538) == TRUE) then
  if (exhaustion.get(cid, 34538) >= 60) then
  doPlayerSendCancel(cid, "Voçê só pode mudar modo após [" .. math.floor(exhaustion.get(cid, 34538) / 60 + 1) .."] minutos.")
  end
if (exhaustion.get(cid, 34538) <= 60) then
doPlayerSendCancel(cid, "Voçê só pode mudar modo após [" .. exhaustion.get(cid, 34538).."] segundos.")
end
return TRUE
end

if getPlayerStorageValue(cid, 102059) == 1 then
setPlayerStorageValue(cid, 102059, 0)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ativado Modo: PVP.")
doSendMagicEffect(getCreaturePosition(cid), 30)	-- mudar effect se desejar
exhaustion.set(cid, 34538, exausted * 60 * 1000)
else
setPlayerStorageValue(cid, 102059, 1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ativado Modo: NON-PVP.")
doSendMagicEffect(getCreaturePosition(cid), 30)	-- mudar effect se desejar
exhaustion.set(cid, 34538, exausted * 60 * 1000)
end

return true
end

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

×
×
  • Criar Novo...