Ir para conteúdo
Entre para seguir isso  
Mock

OTBR vip system!

Recommended Posts

Mock    32
Mock

@gmacc021

Aquele script foi improvisado na hora vou verificar dinovo.

Compartilhar este post


Link para o post
eletroboy97    0
eletroboy97

mock eu testei e deu tudo certo com o server off...

 

porém quando o server fica on eu reparei no console alguns erros e fica repetindo isso aos montes o tempo todo...

 

Lua Script Error: [MoveEvents Interface]

data/movements/scripts/vipTile.lua:onStepIn

 

data/lib/vip sys.lua:53: Player don't find

stack traceback:

[C]: in function 'error'

data/lib/vip sys.lua:53: in function 'hasVip'

data/movements/scripts/vipTile.lua:13: in function <data/movements/scripts/vipTile.lua:3>

 

mas está tudo aparentemente funcionando certo

o q pode ser??

Editado por eletroboy97

Compartilhar este post


Link para o post
Conde2    0
Conde2

@eletroboy97

 

Cara isso ocorre porque uma Creatura sem ser Player está pisando nesse Tile !!

A lib do mock tem esse erro ahudshuashudhas

 

Pra tirar esse erro chato faz isso:

Vai lá na lib e substitui o vip.hasVip por:

 

function vip.hasVip(cid)

assert(tonumber(cid),'Parameter must be a number')

if isPlayer(cid) == FALSE then return end;

local t = vip.getVip(cid) or 0

if os.time(day) < t then

return TRUE

else

return FALSE

end

end

Editado por Conde2

Compartilhar este post


Link para o post
Mock    32
Mock

@eletroboy97

isso se dá por que tem monstros passando no tile.

Compartilhar este post


Link para o post
eletroboy97    0
eletroboy97

@[V]Conde2

vou testar

só pra entender vc apenas tirou error('Player don\'t find') e substituiu por return?

 

testei q continua dando erro, porém o erro agora eh diferente, ai resolvi tirar os monsters de onde tem sqm com a action... ai resolveu

 

@mock

sabe me dizer onde acho algo pra ler pra entender mais sobre os scripts???

tipo, gostaria de me aperfeiçoar, quem sabe um dia eu não fique tão bom quanto vc e os outros programadores rsss

 

posso te adicionar no msn? apenas por adicionar não gosto de ficar pedindo suporte via msn...

 

 

@topico

ta simplesmente perfeito, to fazendo algumas alterações baseadas na lib do mock, adaptações ao gesior acc manager, tentando criar um sistema de segunda promotion que sai com o fim da VIP entre outras coisas...

se quando eu terminar vc tiver algum interesse em agregar ao topico mock, eu ficaria mto honrado em poder ajudar.

Editado por eletroboy97

Compartilhar este post


Link para o post
Conde2    0
Conde2

@eletroboy97

 

Poderia mostra o novo erro agora ??

Para que o mock possa aperfeiçoar a lib ??

 

Você pode achar tutorias na parte de tutorias de script !!

lá tambem tem aulas perfeitas para entender o q precisa para scriptar xD

 

A Mock pesso para que você tire esse erro que o eletro postou se possivel =]

Compartilhar este post


Link para o post
eletroboy97    0
eletroboy97

vish... eu ja tirei o action de onde tinha o monstro

vou colocar denovo e posto aki

 

pronto

 

Lua Script Error: [MoveEvents Interface]

data/movements/scripts/vipTile.lua:onStepIn

 

luaDoPlayerSendTextMessage<>. Player not found

 

mais acho q esse ta no vipTile pois ele tenta mandar a msg de q o cara nao tem vip pra um monster...

Editado por eletroboy97

Compartilhar este post


Link para o post
Mock    32
Mock

@eletroboy97

é um NPC ou um monster.

poe um isplayer no script p ele nao da esse erro ^^

Compartilhar este post


Link para o post
eletroboy97    0
eletroboy97

@mock

na verdade mock eh um monster q ta pisando no sqm vip

minha lib ficou assim depois da mudança...

 

function vip.hasVip(cid)
        assert(tonumber(cid),'Parameter must be a number')
        if isPlayer(cid) == FALSE then return end;
        local t = vip.getVip(cid) or 0
        if os.time(day) < t then
           return TRUE
        else
           return FALSE
        end
end

 

e o vipTile

 

    if vip.hasVip(cid) == FALSE  then
       doTeleportThing(cid, tileConfig.kickPos)
       doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect)
       doPlayerSendCancel(cid, tileConfig.kickMsg)
       return
   end

       doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg)
       doSendMagicEffect(position, tileConfig.enterEffect)
       return true
end

 

pensei em alterar para...

 

    if isPlayer(cid) == TRUE and vip.hasVip(cid) == FALSE  then

 

fiz certo??? pelo interpretador não deu erro

 

acho que nao vai dar certo pq após o end ele vai inverter os booleanos alterando o isPlayer para false...

apoveitando vc pode me dizer como eu faço pra alterar tempo em dias tipo 1, 2, 3 para tempo em unix??? tipo akele tempo loko la q nao entendo rssss 12244564

Editado por eletroboy97

Compartilhar este post


Link para o post
Mock    32
Mock

Alterar pra

if isPlayer(cid) == TRUE and vip.hasVip(cid) == FALSE then

da certo ^^

Compartilhar este post


Link para o post
eletroboy97    0
eletroboy97

pronto... resolvido o problema de monsters ou npcs passarem e dar bug

 

--- Script by dark billie
--- Edited by mock to otnet vip system
function onStepIn(cid, item, position, fromPosition)

local tileConfig = {
       kickPos = fromPosition,
       kickEffect = CONST_ME_POFF,
       kickMsg = "You need to be a vip player to access this area.",
       enterMsg = "Welcome to vip area. Enjoy!",
       enterEffect = CONST_ME_MAGIC_BLUE,
}
   if isPlayer(cid) == true then   
       if vip.hasVip(cid) == FALSE then 
           doTeleportThing(cid, tileConfig.kickPos)
           doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect)
           doPlayerSendCancel(cid, tileConfig.kickMsg)
           return
       end

           doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg)
           doSendMagicEffect(position, tileConfig.enterEffect)
           return true
   end
end

Compartilhar este post


Link para o post
fabianobn    0
fabianobn

Belo Script Mock, e também a Lib né que foi de bom tamanho :D

 

Mais uma coisa.

Eu coloque para ter a second vocação só player que tem a VIP, e também ir a alguma cidade quem tem a vip. Mais estou tentando colocar para a vocação, só quem for vip tela, para quando a VIP acabar, ela sair automático. Será que tem como? Se tiver sabe como!?

Isso Seria também na pasta LIB nas Functions, Constant, Compact?

Por que o da Promotion Foi na LIB do NPC.

 

Obrigado desde Já.

Editado por fabianobn

Compartilhar este post


Link para o post
Bruninho    0
Bruninho

uma pergunta

quando a vip acaba todos os players da account são mandados para o templo?

pq se n o player vai por uma vip so....ai so n sair mais da area vip

 

esperando uma resposta....

Compartilhar este post


Link para o post
eletroboy97    0
eletroboy97

@Bruninho

não, vc tem que criar um creaturescript para isso acontecer

Compartilhar este post


Link para o post
Bruninho    0
Bruninho

@eletroboy97 vlw lek

agora so resta saber como eu faço isso

 

:D

Compartilhar este post


Link para o post
eletroboy97    0
eletroboy97

eu to tentando fazer... assim q eu conseguir eu coloco aki, minha ideia eh fazer algo que ao acabar a vip o cara volte pro templo e perca a 2° promotion (meu server tem 2)

ta ai...

 

instalação...

 

va na pasta data\creaturescripts\scripts\

e crie um arquivo chamado vip.lua

cole isso nele, salve e feche

 

--- Script by Eletroboy97
local pos = {x=818, y=373, z=7} -- templo

pos = {x=818, y=373, z=7}-- templo

function onLogin(cid)
if vip.hasVip(cid) ~= true and vip.getVip(cid) ~= 0 then
doTeleportThing(cid, pos, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip ACABOU!")
doPlayerSendTextMessage(cid,22,"Sua Vip ACABOU!")
db.executeQuery("UPDATE `players` SET `promotion` = 0 WHERE `id` = " .. cid .. ";") -- apenas se vc usar a segunda promotion, senao delete essa linha

end
return TRUE
end

 

depois vai no creaturescripts.xmle adicione isso

 

	<event type="login" name="FimVip" event="script" value="vip.lua"/>

 

prontinho

Editado por eletroboy97

Compartilhar este post


Link para o post
Conde2    0
Conde2

@eletroboy97

 

Esqueceu de falar que tem que registrar o evento.

Vai em login.lua

e na ultima linha adicione isso:

 

registerCreatureEvent(cid, "FimVip")

 

Agora vai funcionar ahuasduhasidjashudas

Compartilhar este post


Link para o post
eletroboy97    0
eletroboy97

@[v] Conde2

na verdade não adianta pq eu percebi q toda vez q o cara loga ele vai ser mandado pro templo toda vez... to pensando como resolver isso

 

tive a ideia de fazer isso por meio de storage, porem eu ia ter q mexer na lib, coisa q eu nao quero...

 

outra forma é simplesmente resetar o campo `vip_time` da DB...

acho q vou acabar fazendo isso mesmo

 

na verdade tive uma 3° ideia...

 

aprimorar meu script pra que ao logar ele cheque se o cara tem uma vip ativa... se tiver, seja criado um storage para aquele char com valor 1... toda vez q o cara logar o sistema vai checar sua vip, se a vip dele acabar ele vai mandar ele pro templo e atribuir o valor 2 no storage... se o cara tiver o valor 2 no storage... o script checa se ele tem vip e se nao tiver ele finaliza sem fazer nada, porem se tiver ele altera o storage pra 1...

 

será q da certo??? vou tentar fazer e testar

consegui criar isso...

 

local pos = {x=818, y=373, z=7}

pos = {x=818, y=373, z=7}

function onLogin(cid)
if vip.hasVip(cid) == true then
        if getPlayerStorageValue(cid,55555) == -1 then
        setPlayerStorageValue(cid,55555,1)    
        end	 	
elseif vip.hasVip(cid) ~= true and vip.getVip(cid) ~= 0 then
          if getPlayerStorageValue(cid,55555,1) then
	   doTeleportThing(cid, pos, true)
	   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip ACABOU!")
	   doPlayerSendTextMessage(cid,22,"Sua Vip ACABOU!")
	   db.executeQuery("UPDATE `players` SET `promotion` = 0 WHERE `id` = " .. cid .. ";")
	   setPlayerStorageValue(cid,55555,2)
	   end
end
end

 

mais o cara loga e sai automaticamente... alguem pode me ajudar com o erro?????

Editado por eletroboy97

Compartilhar este post


Link para o post
nikowhell    0
nikowhell

Systen foooooooooooooooda :P

usei no meu Server, Funcionou direitinho !

Compartilhar este post


Link para o post
91690589169058    0
91690589169058
[01/11/2009 23:03:58] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/vip/addvip.lua)

[01/11/2009 23:03:58] data/talkactions/scripts/vip/addvip.lua:7: unexpected symbol near '...'

 

 

alguem me ajuda por favor.

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.

×