naneer 1 Postado Outubro 14, 2011 Share Postado Outubro 14, 2011 Entao, é o seguinte, preciso de um npc q dê vip para o player assim com um item 'vip coin' e de um sistema vip tambem! haha! 1 vip coin = 1 dia d vip . e assim sucessivamente. Link para o comentário Compartilhar em outros sites More sharing options...
0 141831 16 Postado Outubro 14, 2011 Share Postado Outubro 14, 2011 (editado) Um sistema bom de VIP eh o do Mock , que eh este aqui : Va na pasta do seu OT data/lib , copie e cole um arquivo .lua , e apague tudo que tem dentro renomeie para 049-vipsys e coloque isso dentro : vip = { name = "Vip system"; author = "Mock"; version = "1.0.0.0"; query="ALTER TABLE `accounts` ADD `vip_time` INTEGER"; query2="ALTER TABLE `accounts` ADD `vip_time` INT(15) NOT NULL" } function vip.setTable() dofile('config.lua') if sqlType == "sqlite" then db.executeQuery(vip.query) else db.executeQuery(vip.query2) end end function vip.getVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; ae = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';") if ae:getID() == -1 then return 0 end local retee = ae:getDataInt("vip_time") or 0 ae:free() return retee end function vip.getVipByAcc(acc) assert(acc,'Account is nil') local a = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';") if a:getID() ~= -1 then return a:getDataInt("vip_time") or 0, a:free() else error('Account don\'t find.') end end function vip.setVip(cid,time) dofile("config.lua") assert(tonumber(cid),'Parameter must be a number') assert(tonumber(time),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';") end function vip.getVipByAccount(acc) assert(acc,'Account is nil') return db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0 end 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 function vip.hasVips(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) if os.time(day) < t then return TRUE else return FALSE end end function vip.accountHasVip(acc) assert(acc,'Account is nil') if os.time() < vip.getVipByAccount(acc) then return TRUE else return FALSE end end function vip.getDays(days) return (3600 * 24 * days) end function vip.addVipByAccount(acc,time) assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') local a = vip.getVipByAcc(acc) a = os.difftime(a,os.time()) if a < 0 then a = 0 end; a = a+time return vip.setVipByAccount(acc,a) end function vip.setVipByAccount(acc,time) dofile("config.lua") assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') db.executeQuery("UPDATE `accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';") return TRUE end function vip.returnVipString(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == TRUE then return os.date("%d %B %Y %X ", vip.getVip(cid)) end end Qual eh o ID da VipCoin ? So assim poderei ajudar para comprar vip . Editado Outubro 14, 2011 por StremeMakky Link para o comentário Compartilhar em outros sites More sharing options...
0 naneer 1 Postado Outubro 14, 2011 Autor Share Postado Outubro 14, 2011 pode por como gold nugget Link para o comentário Compartilhar em outros sites More sharing options...
0 141831 16 Postado Outubro 14, 2011 Share Postado Outubro 14, 2011 (editado) Olha eu nao sei como colocar pra vende VIP em um NPC ainda , mas sei eu por talkaction ( super simples ) e comprasse por gold nugget. QUER ? Editado Outubro 14, 2011 por StremeMakky Link para o comentário Compartilhar em outros sites More sharing options...
0 naneer 1 Postado Outubro 14, 2011 Autor Share Postado Outubro 14, 2011 haha! é até um trabalho a menos a criação do npc. - pode ser sim, porém creio q esse system vip do mock ai esteja faltando algo neh? para eu executar na minha database assim e pans e os comandos - addvip delvip e seevip =] , se puder, poste completo o system vip \z/ irá me economizar uns 3 dias procurando o tutorial completo haha! obg pela sua atenção. Link para o comentário Compartilhar em outros sites More sharing options...
0 141831 16 Postado Outubro 14, 2011 Share Postado Outubro 14, 2011 (editado) Eu so coloquei o sistema mesmo , aqui vai o resto : Lembrando : para 10 dias vip , voce paga 30 gold nuggets ( como voce pediu ) e para 30 dias vip , voce paga 50 gold nuggets ( como voce pediu ) . Va na pasta do seu OT data/talkactions/talkactions.xml e adicione na linha dos players isso : <talkaction words="!vipdays;!comprarvip30" script="vip30.lua"/> <talkaction words="!comprarvip10" script="vip10.lua"/> Agora va em scripts , copie e cole um arquivo .lua , apague tudo que esta dentro e renomeie para vip10 , e coloque isso : function onSay(cid, words, param)if(words == "!comprarvip10") then local price = 30 if doPlayerRemoveItem(cid, 2157, 30) == TRUE then local days = 10 local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() if getPlayerStorageValue(cid, 13540) - 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, 13540, time) local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você compro 10 dias de VIP e agora você têm ".. quantity .." dias de VIP.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem "..price.." barras de ouro.") end elseif(words == "!vipdays") then local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP.") 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, 13540) - timenow)/(24 * 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*24 local storageplayer = getPlayerStorageValue(player, 13540) 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.") setPlayerStorageValue(player, 13540, time) local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você comprou "..quantity.." dias de VIP.") 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,13540) < 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,13540,getPlayerStorageValue(C.uid,13540)-C.time) end doSendMagicEffect(C.pos, math.random(28,30)) end end return TRUE end Agora ainda na pasta scripts copie e cole um arquivo .lua , apague tudo que esta dentro e renomeie para vip30 e coloque isso : function onSay(cid, words, param)if(words == "!comprarvip30") then local price = 50 if doPlayerRemoveItem(cid, 2157, 50) == TRUE then local days = 30 local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() if getPlayerStorageValue(cid, 13540) - 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, 13540, time) local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você compro 30 dias de VIP e agora você têm ".. quantity .." dias de VIP.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem "..price.." barras de ouro.") end elseif(words == "!vipdays") then local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP.") 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, 13540) - timenow)/(24 * 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*24 local storageplayer = getPlayerStorageValue(player, 13540) 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.") setPlayerStorageValue(player, 13540, time) local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você comprou "..quantity.." dias de VIP.") 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,13540) < 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,13540,getPlayerStorageValue(C.uid,13540)-C.time) end doSendMagicEffect(C.pos, math.random(28,30)) end end return TRUE end Se eh isso que estsva procurando , da REP+? Editado Outubro 14, 2011 por StremeMakky Link para o comentário Compartilhar em outros sites More sharing options...
0 Taravon 0 Postado Novembro 29, 2011 Share Postado Novembro 29, 2011 eu tenho systema de vip coins aki , mas ta como vip permanente , como tiro isso pra por, por mes?? Ex 30, 60, 90 dias de vip ?????? Link para o comentário Compartilhar em outros sites More sharing options...
0 bangu2020 0 Postado Maio 18, 2016 Share Postado Maio 18, 2016 No caso eu ja tenho um sistema vip no meu ot mais quando uso o vip coin ele não mostra os days oque eu fasso ? sera q chegou os days vip ou nao? Link para o comentário Compartilhar em outros sites More sharing options...
0 kaleudd 200 Postado Maio 18, 2016 Share Postado Maio 18, 2016 1 hora atrás, bangu2020 disse: No caso eu ja tenho um sistema vip no meu ot mais quando uso o vip coin ele não mostra os days oque eu fasso ? sera q chegou os days vip ou nao? precisava reviver um topico de 5 anos atrás? Link para o comentário Compartilhar em outros sites More sharing options...
0 bangu2020 0 Postado Maio 18, 2016 Share Postado Maio 18, 2016 kkkkkkkkkkkkkkkkk mlz mano, é que precisava tanto tem como me ajudar? Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
naneer 1
Entao, é o seguinte, preciso de um npc q dê vip para o player assim com um item 'vip coin' e de um sistema vip tambem! haha!
1 vip coin = 1 dia d vip . e assim sucessivamente.
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados