Postado Maio 18, 2015 10 anos @gangul321 Para colocar em spoiler siga esses passos. Ok Brigadao.. Luan Me ajuda ? Quando uso a funcao player:doVipDays() Aparece Assim 16:13 Your have 16633 vip days. Sendo que coloquei para adicionar 30 dias. -------Outra Questao--------- E Gostaria Muito que me ajuda-se a criar o VipTitle. Nao tem como ao inves de usar Storage , usar a funcao: player:isVip() , ai caso for vip ele passa se nao ele volta para traz.
Postado Maio 18, 2015 10 anos o scrip adicionar segundos e nao dias. então tende tente fazer uma conta no scrip. tipo player:doVipDays((days / 86400)) ou essa função function Player.doVipDays(self)local vipDays = math.floor(self:doVipTime() / 86400) return self:doVipTime() ~= false and self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Your have '.. vipDays .. ' vip days.') or error('error.') end gangul321 Faça o seguinte. no scrip addvip.lua adicione um storage -- <talkaction words="/addvip" separator=" " script="addvip.lua" /> -- exemple: /addvip, Luan, 30 function onSay(player, words, param) if not player:getGroup():getAccess() then return true end if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local split = param:split(",") local jogador = Player(split[1]) if not jogador:isPlayer() then player:sendCancelMessage("Player not found.") return false end local dias = tonumber(split[2]) if dias == nil then player:sendCancelMessage("Invalid param specified.") return false end jogador:addVipDays(dias) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Foram adicionados ".. dias .." dias de VIP no character ".. split[1] ..".") setPlayerStorageValue(player, 13540) -- Storage a ser adicionado return false end em movements/scripts crie um viptile.lua e adicione function onStepIn(cid, item, position, fromPosition) local config = { msgDenied = "Você não e vip ,fale com Administrador do Server.", msgWelcome = "Seja Bem Vindo a Area vip." } if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) return TRUE end em moviments.xml adicione <movevent type="StepIn" actionid="13700" event="script" value="vipetile.lua"/> e no seu RME coloque a actions 13700 no piso desejado . So que agora vc tera que criar um check para remover o strage quando o vip acabar Em creaturescript/script Crie um arquivo.lua e renomeie para endvip.lua --[[ by vodkart ]]-- function onLogin(cid) if getPlayerStorageValue(cid, 13540) - os.time() > 0 then setPlayerStorageValue(cid, 9898, 1) end local pos = {x = 157, y = 50, z = 7} -- posiçao do templo. function Vodka(cid) if isPlayer(cid) then db.executeQuery("UPDATE `players` SET `name` = '"..string.sub(getCreatureName(cid), 7).."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end end if getPlayerStorageValue(cid, 9898) == 1 and getPlayerStorageValue(cid, 13540) - os.time() < 1 or getPlayerStorageValue(cid, 13540) - os.time() == 0 then doTeleportThing(cid, pos) doPlayerPopupFYI(cid, "Sua vip Account acabou.") setPlayerStorageValue(cid, 9898, -1) if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then addEvent(Vodka, 3*1000, cid) end end return TRUE end Em creaturescript.xml adicione <event type="login" name="CheckVip" script="endvip.lua"/> Nao esqueça de mudar a posição do templo Editado Maio 18, 2015 10 anos por andreoam (veja o histórico de edições)
Postado Maio 18, 2015 10 anos Autor tileVip.lua function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if player == nil then return false end return player:isVip() and true or false end Aparece Assim 16:13 Your have 16633 vip days. Certeza que tem 30 dias só? @andreoam, cara, o script que você postou de tile vip e add/check não tem a ver com meu script ele é uma forma diferente e não funciona com o meu. Se não sabe o que ta postando não fica spamando meu tópico ¬¬ player:doVipDays((days / 86400)) não precisa de nenhum parametro essa função, basta usar player:doVipDays que ele te retornar em dias. STYLLER OT 2022
Postado Maio 18, 2015 10 anos tileVip.lua function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if player == nil then return false end return player:isVip() and true or false end Certeza que tem 30 dias só? @andreoam, cara, o script que você postou de tile vip e add/check não tem a ver com meu script ele é uma forma diferente e não funciona com o meu. Se não sabe o que ta postando não fica spamando meu tópico ¬¬ não precisa de nenhum parametro essa função, basta usar player:doVipDays que ele te retornar em dias. Luan, botei o script que me passou: e quando passo pelo SQM aparece isto: Lua Script Error: [MoveEvents Interface] data/movements/scripts/viptitle.lua:onStepIn data/movements/scripts/viptitle.lua:4: attempt to index global 'player' (a nil value) stack traceback: [C]: in function '__index' data/movements/scripts/viptitle.lua:4: in function
Postado Maio 18, 2015 10 anos Autor function onStepIn(creature, item, position, fromPosition) if creature then return creature:isVip() and true or false end return false end STYLLER OT 2022
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.