Ir para conteúdo

Teleport Que Muda O "pvp" Do Player


Lolksky

Posts Recomendados

Versão utilizada: TFS 0.4 [8.60]

 

Gostaria de um sisteminha de um teleport que quando o player passase pelo mesmo, mudaria seu estado para nonpvp, e se ao passar novamente mudaria para pvp.

 

- ao pisar, ser teleportado para x=38 y=47 z=7;

- se possível coloque msg (agora você está em modo pacífico / agora você está em modo ofensivo / você só pode usar a cada 10 minutos / PK, Skull ou battle não pode usar);

- não pode usar com nenhum tipo de skull, battle ou PK;

- só pode usar a cada 10 minutos.

Link para o comentário
Compartilhar em outros sites

Não testei, mais deve funcionar. La vai:

 

Vai em data/actions/scripts duplica um arquivo e nomeie para "tptype" sem as aspas e nele cole:

function onStepIn(cid, item, pos)

storageBattle = 102081
storageExausted = 102082
exaustedSeconds = 600 -- exausted em segundos

if(exhaustion.check(cid, storageExausted) == TRUE) then
  if (exhaustion.get(cid, 102082) >= 60) then
  doPlayerSendCancel(cid, "Você só pode entrar no teleport após [" .. math.floor(exhaustion.get(cid, 102082) / 60 + 1) .."] minutos.")
  end
   if (exhaustion.get(cid, 102082) <= 60) then
   doPlayerSendCancel(cid, "Você só pode entrar no teleport após [" .. exhaustion.get(cid, 102082).."] segundos.")
   end
return TRUE
end

if (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não pode usar com battle.")
return TRUE
end

if (getCreatureSkullType(cid) > 0) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não pode usar com caveira.")
return TRUE
end

if (getPlayerStorageValue(cid, 102081) <= 0) then
   setPlayerStorageValue(cid, 102081, 1)
   doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Agora você está em modo pacífico.")
   exhaustion.set(cid, storageExausted, exaustedSeconds)
else
   setPlayerStorageValue(cid, 102081, 0)
   doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Agora você está em modo ofensivo.")
   exhaustion.set(cid, storageExausted, exaustedSeconds)
end

return TRUE
end

 

Depois vai em data/actions/actions.xml e cole a tag:

<action actionid="2015" event="script" value="tptype.lua"/>

 

Agora vai em data/creaturescripts/creaturescripts.xml e cole a tag:

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

 

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

function onCombat(cid, target)

if getPlayerStorageValue(cid, 102081) > 0 then
 doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não pode atacar.")
 return FALSE
end
 return TRUE
end

 

E por último, abra o arquivo "login" na pasta data/creaturescripts/scripts e cole esta tag antes do último return true:

registerCreatureEvent(cid, "CombatAttack")    

 

Só não esquece de com o mapa editor ir no teleport de sua preferencia e colocar o actionid = 2015.

Link para o comentário
Compartilhar em outros sites

O: ele falo actions \o\ coloquei lá kk, vou mudar aqui

______

 

EDIT

funcionou perfeitamente, valeu Jhon992

 

REP +

 

Aew, malz ai... mas teria como fazer uma alteração nele e colocar pra precisar 20K pra poder usar o sistema?

se tievr 20K ele muda o pvp, s enao tiver manda msg, "vc nao tem 20k" xD

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

function onStepIn(cid, item, pos)
   storageBattle = 102081
   storageExausted = 102082
   exaustedSeconds = 600 -- exausted em segundos
   money = 20000

   if(exhaustion.check(cid, storageExausted)) then
   elseif (exhaustion.get(cid, 102082) >= 60) then
       doPlayerSendCancel(cid, "Você só pode entrar no teleport após [" .. math.floor(exhaustion.get(cid, 102082) / 60 + 1) .."] minutos.")
   elseif (exhaustion.get(cid, 102082) <= 60) then
       doPlayerSendCancel(cid, "Você só pode entrar no teleport após [" .. exhaustion.get(cid, 102082).."] segundos.")
       return true
   end

   if (getCreatureCondition(cid, CONDITION_INFIGHT)) then
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não pode usar com battle.")
       return true
   end

   if (getCreatureSkullType(cid) > 0) then
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não pode usar com caveira.")
       return true
   end

   if (getPlayerMoney(cid, money)) then
       if (getPlayerStorageValue(cid, 102081) <= 0) then
           setPlayerStorageValue(cid, 102081, 1)
           doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Agora você está em modo pacífico.")
           exhaustion.set(cid, storageExausted, exaustedSeconds)
           doPlayerRemoveMoney(cid, money)
       else
           setPlayerStorageValue(cid, 102081, 0)
           doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Agora você está em modo ofensivo.")
           exhaustion.set(cid, storageExausted, exaustedSeconds)
       end
   else
       doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você precisa de " .. money .. "gps.")
   end

   return true
end

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

eu queria usar este script mas tira uma duvida, ele é assim, um player entra num TP, e ele fica non-pvp etc...?

é isso? e ficando non pvp, como volta para PVP.

pq eu queria criar uma hunt premmy aonde players poderiam upar sem ser morto por players.

pensei em usar tile de arena, mas tenho medo de isto deixar o servidor lento.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...