Ir para conteúdo
Entre para seguir isso  
xMonkey

Premium Door-Funcionando

Recommended Posts

xMonkey    0
xMonkey

Nome: Premium Door

Autor:Lingua

Descripção: Door(porta)que passa apenas Premium

versão testada: TFS 0.3.6 - 8.54

+++ Informações:Todos sempre querendo saber como fazer algo que passe apenas "Premium account" Para aqueles que ainda não sabem como é irei ensinar passo a passo!!!

 

Pode funcionar caso vocé queira ter um sistema basico de Vip ultilizando Premium account em seu otserv.

como preucurei e nao achei nenhum igual a este resolvi postar...

 

 

Como fasso para funcionar?

 

Bem... vamo parar de conversa e vamo para o Tutorial:

Crie uma area igual está(onde deseja por o local de sua area Premium)

77554435.png

 

Depois de ter criado o local e colocado a porta (Gate of expertise), Clique na porta com o botao direito do mouse em properties e coloque em Action Id 189 do mesmo geito como na foto e clique em Ok

24403567.png

 

Configurando

 

Va ate a pasta data de seu servidor...\data\actions\scripts\other

preucure por Doors e abra-o como World pad MFC

preucure por:

if(getItemLevelDoor(item.itemid) > 0) then

if(item.actionid == 189) then

if(not isPremium(cid)) then

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")

return true

end

Vermelho=Troque a mensagem Only the worthy may pass. ao seu criterio para quando os players free-account clicarem na porta apareçer como na imagem abaixo.

43861777.png

 

OBS: Caso nao tenha Doors na pasta Others em action ultilize o meu...

(salve a pasta action do seu serv antes caso aconteça algum problema.)

Download:http://www.multiupload.com/6RB22D7S8K

Ouu...

preucure o arquivo Doors.lua em \data\actions\scripts\other e subistitua por este

local function checkStackpos(item, position)
   position.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
   local thing = getThingFromPos(position)

   position.stackpos = STACKPOS_TOP_FIELD
   local field = getThingFromPos(position)

   return (item.uid == thing.uid or thing.itemid < 100 or field.itemid == 0)
end

local function doorEnter(cid, item, toPosition)
   doTransformItem(item.uid, item.itemid + 1)
   doTeleportThing(cid, toPosition)
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
   if(fromPosition.x ~= CONTAINER_POSITION and isPlayerPzLocked(cid) and getTileInfo(fromPosition).protection) then
       doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
       return true
   end

   if(getItemLevelDoor(item.itemid) > 0) then
       if(item.actionid == 189) then
           if(not isPremium(cid)) then
               doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Apenas Premium account!")
               return true
           end

           doorEnter(cid, item, toPosition)
           return true
       end

       local gender = item.actionid - 186
       if(isInArray({PLAYERSEX_FEMALE,  PLAYERSEX_MALE, PLAYERSEX_GAMEMASTER}, gender)) then
           if(gender ~= getPlayerSex(cid)) then
               doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
               return true
           end

           doorEnter(cid, item, toPosition)
           return true
       end

       local skull = item.actionid - 180
       if(skull >= SKULL_NONE and skull <= SKULL_BLACK) then
           if(skull ~= getCreatureSkullType(cid)) then
               doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
               return true
           end

           doorEnter(cid, item, toPosition)
           return true
       end

       local group = item.actionid - 150
       if(group >= 0 and group < 30) then
           if(group > getPlayerGroupId(cid)) then
               doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
               return true
           end

           doorEnter(cid, item, toPosition)
           return true
       end

       local vocation = item.actionid - 100
       if(vocation >= 0 and vocation < 50) then
           local playerVocationInfo = getVocationInfo(getPlayerVocation(cid))
           if(playerVocationInfo.id ~= vocation and playerVocationInfo.fromVocation ~= vocation) then
               doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
               return true
           end

           doorEnter(cid, item, toPosition)
           return true
       end

       if(item.actionid == 190 or (item.actionid ~= 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid)))) then
           doorEnter(cid, item, toPosition)
       else
           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
       end

       return true
   end

   if(isInArray(specialDoors, item.itemid)) then
       if(item.actionid == 100 or (item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) > 0)) then
           doorEnter(cid, item, toPosition)
       else
           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.")
       end

       return true
   end

   if(isInArray(keys, item.itemid)) then
       if(itemEx.actionid > 0) then
           if(item.actionid == itemEx.actionid and doors[itemEx.itemid] ~= nil) then
               doTransformItem(itemEx.uid, doors[itemEx.itemid])
               return true
           end

           doPlayerSendCancel(cid, "The key does not match.")
           return true
       end

       return false
   end

   if(isInArray(horizontalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then
       local newPosition = toPosition
       newPosition.y = newPosition.y + 1
       local doorPosition = fromPosition
       doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
       local doorCreature = getThingfromPos(doorPosition)
       if(doorCreature.itemid ~= 0) then
           local pzDoorPosition = getTileInfo(doorPosition).protection
           local pzNewPosition = getTileInfo(newPosition).protection
           if((pzDoorPosition and not pzNewPosition and doorCreature.uid ~= cid) or
               (not pzDoorPosition and pzNewPosition and doorCreature.uid == cid and isPlayerPzLocked(cid))) then
               doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
           else
               doTeleportThing(doorCreature.uid, newPosition)
               if(not isInArray(closingDoors, item.itemid)) then
                   doTransformItem(item.uid, item.itemid - 1)
               end
           end

           return true
       end

       doTransformItem(item.uid, item.itemid - 1)
       return true
   end

   if(isInArray(verticalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then
       local newPosition = toPosition
       newPosition.x = newPosition.x + 1
       local doorPosition = fromPosition
       doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
       local doorCreature = getThingfromPos(doorPosition)
       if(doorCreature.itemid ~= 0) then
           if(getTileInfo(doorPosition).protection and not getTileInfo(newPosition).protection and doorCreature.uid ~= cid) then
               doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
           else
               doTeleportThing(doorCreature.uid, newPosition)
               if(not isInArray(closingDoors, item.itemid)) then
                   doTransformItem(item.uid, item.itemid - 1)
               end
           end

           return true
       end

       doTransformItem(item.uid, item.itemid - 1)
       return true
   end

   if(doors[item.itemid] ~= nil and checkStackpos(item, fromPosition)) then
       if(item.actionid == 0) then
           doTransformItem(item.uid, doors[item.itemid])
       else
           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.")
       end

       return true
   end

   return false
end

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

Coloque em Action.XML(subistitua os Doors em Action por estes.)

<!-- Doors -->
<action fromid="1209" toid="1214" event="script" value="other/doors.lua"/>
<action fromid="1219" toid="1262" event="script" value="other/doors.lua"/>
<action fromid="1539" toid="1542" event="script" value="other/doors.lua"/>
<action fromid="2086" toid="2092" event="script" value="other/doors.lua"/>
<action fromid="3535" toid="3552" event="script" value="other/doors.lua"/>
<action fromid="4913" toid="4918" event="script" value="other/doors.lua"/>
<action fromid="5082" toid="5085" event="script" value="other/doors.lua"/>
<action fromid="5098" toid="5145" event="script" value="other/doors.lua"/>
<action fromid="5278" toid="5295" event="script" value="other/doors.lua"/>
<action fromid="5515" toid="5518" event="script" value="other/doors.lua"/>
<action fromid="5732" toid="5737" event="script" value="other/doors.lua"/>
<action fromid="5745" toid="5749" event="script" value="other/doors.lua"/>
<action fromid="6192" toid="6209" event="script" value="other/doors.lua"/>
<action fromid="6249" toid="6266" event="script" value="other/doors.lua"/>
<action fromid="6795" toid="6802" event="script" value="other/doors.lua"/>
<action fromid="6891" toid="6908" event="script" value="other/doors.lua"/>
<action fromid="7033" toid="7050" event="script" value="other/doors.lua"/>
<action fromid="7054" toid="7057" event="script" value="other/doors.lua"/>
<action fromid="8541" toid="8558" event="script" value="other/doors.lua"/>
<action fromid="9165" toid="9184" event="script" value="other/doors.lua"/>
<action fromid="9267" toid="9284" event="script" value="other/doors.lua"/>
<action itemid="10032" event="script" value="other/doors.lua"/>
<action itemid="10091" event="script" value="other/doors.lua"/>
<action fromid="10268" toid="10285" event="script" value="other/doors.lua"/>
<action fromid="10468" toid="10486" event="script" value="other/doors.lua"/>
<action fromid="10777" toid="10779" event="script" value="other/doors.lua"/>
<action fromid="10782" toid="10788" event="script" value="other/doors.lua"/>
<action fromid="10791" toid="10794" event="script" value="other/doors.lua"/>

Obrigado! Qualquer erro poste aqui que estarei Arrumando...

 

 

Creditos: Lingua

Editado por Subyth
Trocando as 5 primeiras linhas --'

Compartilhar este post


Link para o post
Flatronez    1
Flatronez

Movido.

aprovado.png

Editado por Flatronez

Compartilhar este post


Link para o post
Maiia    0
Maiia
Que ripper do caralho

Olha as 5 primeiras linhas do dele e do meu:

http://forums.otserv.com.br/f284/efectium-137688/

 

Tem que se idiota pra copia o formato dos creditos

Parabens

 

Nossa muleke se fiko boladinhu porque ele copio akilo lá de você?

Nossa mano...

 

@Topic

Vai ajudar muitos e me ajudou tmb *-*

Vlw ae :)

Abraçooos.

Compartilhar este post


Link para o post
xMonkey    0
xMonkey

que besteira --' isso nem importa, oque importa que eu quis ajudar... se vc ficou nervozinho pq coloquei as 5 primeiras linhas do seu Besteiraa!!:P

 

EDIT: Mudei agora num precisa mais chorar

Editado por Subyth

Compartilhar este post


Link para o post
dragonlorde    0
dragonlorde

Subyth:

Agradecido...

 

Topic:

Se não me engano da pra reduzi isso com 1 isDoor no script mas dai num pode usar fromid toid na tag.

Compartilhar este post


Link para o post
xMonkey    0
xMonkey

HUmm... ée acho que sim é pq esse é meu 1º script e na verdade eu so arrumei ele... tipo meu Rl me passou como ele usava no servidor dele ele num precisava mais resolvir postar pois tinha muita gente querendo colocar vip por premium e num sabiam como fazer para so os premiums passarem e tb serve em quest Hehe mais muito obrigado

Compartilhar este post


Link para o post
Dartier    0
Dartier

muito bem explicado, parabéns.

Compartilhar este post


Link para o post
Nenzzy    0
Nenzzy

bem explicadinho,

legal parabens!

Compartilhar este post


Link para o post
Pandá s2    0
Pandá s2

é bom para o Cara por sistema VIP no server ae essa porta fica guardando a Sala dos Teleports Vips. Obrigadopelaatenção

Compartilhar este post


Link para o post
gm fa    0
gm fa

n tem como me mandar tudo pq no meu others so tem dor e esta diferente obg me mande o script intero da porta e talz obg

Compartilhar este post


Link para o post
Healfire    0
Healfire

bem util nos ots

vlw mesmo

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×