Postado Maio 19, 2014 11 anos Solução function onSay(cid, words, param) if getTilePzInfo(getCreaturePosition(cid)) == FALSE then return doPlayerSendCancel(cid, "Você precisa está em área protegida para utilizar este comando.") end if(words == "!buyvip10") then if getPlayerItemCount(cid, 9971) >= 5 then doPlayerAddPremiumDays(cid, 10) doPlayerRemoveItem(cid, 9971, 5) doPlayerSendTextMessage(cid, 22, "Parabéns você comprou 10 dias de vip com sucesso.") else doPlayerSendCancel(cid, "Você não possui a quantidade necessária para comprar.") end elseif (words == "!buyvip30") then if getPlayerItemCount(cid, 9971) >= 5 then doPlayerAddPremiumDays(cid, 30) doPlayerRemoveItem(cid, 9971, 5) doPlayerSendTextMessage(cid, 22, "Parabéns você comprou 30 dias de vip com sucesso.") else doPlayerSendCancel(cid, "Você não possui a quantidade necessária para comprar.") end end return true end Editado Maio 19, 2014 11 anos por Eduardo Carvalho (veja o histórico de edições) Skype : duhw.carvalho Ajude-nos a crescer, clicando em curtir
Postado Maio 19, 2014 11 anos Tenho esse aki também amigo vipo.lua -- Script SYtem vip 1.0 -- function onSay(cid, words, param) if (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Você precisa está em área protegida para utilizar este comando.") return TRUE end local stor = 11548 local preco1= 10 -- quantidade do item para comprar vip 30 local preco2 = 5 -- quantiadde do item para comprar vip 10 local texto2 = "Você precisa de tal item em tal quantidade para adicionar vip" --texto do comando buy vip10(caso nao consiga local texto1 = "Você precisa de tal item em tal quantidade para adicionar vip " -- texto do comando buyvip30 caso nao consiga if(words == "!buyvip30") then if doPlayerRemoveItem(cid, 9971, preco1) == TRUE then local days = 30 local daysvalue = days * 240 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, stor) local timenow = os.time() if getPlayerStorageValue(cid, stor) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, stor, time) local quantity = math.floor((getPlayerStorageValue(cid, stor) - timenow)/(240 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, texto1) end elseif(words == "!buyvip10") then if doPlayerRemoveItem(cid, 9971, preco2) == TRUE then local days1 = 10 local daysvalue1 = days1 * 240 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, stor) local timenow = os.time() if getPlayerStorageValue(cid, stor) - os.time() <= 0 then time = timenow + daysvalue1 else time = storageplayer + daysvalue1 end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days1 .." dias de VIP no seu character.") setPlayerStorageValue(cid, stor, time) local quantity1 = math.floor((getPlayerStorageValue(cid, stor) - timenow)/(240 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity1 .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, texto2) end elseif(words == "!days") then local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(cid, stor) - timenow)/(240 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no seu character.") elseif(words == "/checkvip") then if getPlayerAccess(cid) == 5 then if not param then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(param) local pid = getPlayerByNameWildcard(param) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(player, stor) - timenow)/(240 * 60 * 60)) doPlayerPopupFYI(cid, "O jogador tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no character.") return TRUE end elseif(words == "/addvip") then if getPlayerAccess(cid) == 5 then local t = string.explode(param, ",") if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(t[1]) local days = t[2] local pid = getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end local daysvalue = days*3600*240 local storageplayer = getPlayerStorageValue(player, stor) local timenow = os.time() local time = storageplayer <= 0 and (timenow + daysvalue) or (storageplayer + daysvalue) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") setPlayerStorageValue(player, stor, time) local quantity = math.floor((getPlayerStorageValue(player,stor) - timenow)/(3600*240)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.") end elseif(words == "/delvip") then if getPlayerAccess(cid) == 5 then local dec = MESSAGE_INFO_DESCR if(param == "") then return TRUE,doPlayerSendTextMessage(cid,18,"Command param required.")end local C,t = {},string.explode(param, ",") C.pos = getPlayerPosition(cid) C.uid = getCreatureByName(t[1]) C.time = ((tonumber(t[2]) == nil) and 1 or tonumber(t[2]))*3600*24 --Tempo da vip por dia. C.days = (tonumber(t[2]) == nil) and 1 or tonumber(t[2]) --Dias de vip. local pid = getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end if(getPlayerStorageValue(C.uid,stor) < C.time)then doPlayerSendTextMessage(cid,dec,'O jogador '..t[1]..' não possui '..C.days..' dias de vip.') else doPlayerSendTextMessage(cid,dec,'Você removeu '..C.days..' dias de vip do player '..t[1]..'.') setPlayerStorageValue(C.uid,stor,getPlayerStorageValue(C.uid,stor)-C.time) end doSendMagicEffect(C.pos, math.random(28,30)) end end return TRUE end talkactions.xml <talkaction words="!days;!buyvip10;!buyvip30;/checkvip;/addvip;/delvip" script="vipo.lua"/> E também tem o tile de negar a entrada na área vip para quem não tiver o storage vipo.lua -- Script Vip Sytem 1.0 -- function onStepIn(cid, item, position, fromPosition) local stor = 11548 local config = { msgDenied = "" .. getCreatureName(cid) .." Para poder entrar fassa a Quest Vip no teleport Quests.", msgWelcome = "Para saber os dias de vip fale !days " .. getCreatureName(cid) .."." } if getPlayerStorageValue(cid, stor) - os.time() <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, config.msgDenied) doSendMagicEffect(getThingPos(cid), 43) return TRUE end doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, config.msgWelcome) return TRUE end movements <movevent type="StepIn" uniqueid="13701" event="script" value="vipo.lua"/> Vantagem desse sistema é que tem o tile de barrar passagem de pessoas que tentem andar sobre um chão com unique 13701... , vc pode checar vip, add vip, eainda !days(ver quantos dias vip restam) E faz a msm cosia do que o outro..... No vipo.lua do talkactions vc só altere os textos que deixei um comentáriozinho . OBS : NO MEU CASO È VIP COM UM STORAGE, O QUE VC QUERIA ERA PREMIUM DAYS. Editado Maio 19, 2014 11 anos por llucas75 (veja o histórico de edições) Scripter: |||||||||| 10% Te ajudei?? REP + e ficamos quites... Atenciosamente, Lucas. Abraços!
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.