Postado Março 18, 2016 9 anos faal galera blz, eu to com esse script de vip ta funcionando normal mais quando o cara ganha vip ele fica com [vip] mais o nome só q se um outro player criar boneco com mesmo nick dele é possivel como arrumar isso pra tirar esse vip e deixa um efeito de uma msg subindo vip estilo global events de mapa só q no cara -- Script SYtem vip 2.0 --function onSay(cid, words, param)if(words == "!buyvip") thenlocal price = 5000000if doPlayerRemoveMoney(cid, price) == TRUE thenlocal days = 30local daysvalue = days * 24 * 60 * 60local storageplayer = getPlayerStorageValue(cid, 13540)local timenow = os.time()if getPlayerStorageValue(cid, 13540) - os.time() <= 0 thentime = timenow + daysvalueelsetime = storageplayer + daysvalueendif string.find(tostring(getCreatureName(cid)),"[[Vip]]") thendoPlayerSendTextMessage(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ê tem ".. quantity .." dias de VIP restantes.")elsedoPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")setPlayerStorageValue(cid, 13540, time)local name = getCreatureName(cid)db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")doRemoveCreature(cid)endelsedoPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.")endelseif(words == "!vipdays") thenlocal 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 no seu character.")elseif(words == "/checkvip") thenif getPlayerAccess(cid) == 5 thenif not param thendoPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")endlocal player = getPlayerByName(param)if not isPlayer(player) thendoPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.")endlocal 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 TRUEendelseif(words == "/addvip") thenif getPlayerAccess(cid) == 5 thenlocal t = string.explode(param, ",")if not t[2] thendoPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")endlocal player = getPlayerByName(t[1])local name = getCreatureName(player)local days = t[2]local pid = getPlayerByNameWildcard(t[1])if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) thendoPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.")return TRUEendlocal daysvalue = days*3600*24local storageplayer = getPlayerStorageValue(player, 13540)local timenow = os.time()local time = storageplayer <= 0 and (timenow + daysvalue) or (storageplayer + daysvalue)if string.find(tostring(getCreatureName(pid)),"[[Vip]]") thendoPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.")setPlayerStorageValue(player, 13540, time)local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24))doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.")elsesetPlayerStorageValue(player, 13540, time)db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(player)..";")doRemoveCreature(player)endendelseif(words == "/delvip") thenif getPlayerAccess(cid) == 5 thenlocal dec = MESSAGE_INFO_DESCRif(param == "") then return TRUE,doPlayerSendTextMessage(cid,18,"Command param required.")endlocal 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.if(getPlayerStorageValue(C.uid,13540) < C.time)thendoPlayerSendTextMessage(cid,dec,'O jogador '..t[1]..' não possui '..C.days..' dias de vip.')elsedoPlayerSendTextMessage(cid,dec,'Você removeu '..C.days..' dias de vip do player '..t[1]..'.')setPlayerStorageValue(C.uid,13540,getPlayerStorageValue(C.uid,13540)-C.time)enddoSendMagicEffect(C.pos, math.random(28,30))endendreturn TRUEend
Postado Março 18, 2016 9 anos Você poderia centrar todas as suas duvidas em um mesmo topico, respondi três topicos diferentes seus todos com scripts relacionados a vip em menos de 1 dia. E em 2 dos 3 topicos você ta usando vip system diferente. Então poderia escolher um pra arrumar os problemas e adicionar os scripts que quer para ele. function onSay(cid, words, param) local price = 5000000 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 if(words == "!buyvip") then if doPlayerRemoveMoney(cid, price) == TRUE then 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ê tem ".. quantity .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") end 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 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) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") 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 name = getCreatureName(player) 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) if string.find(tostring(getCreatureName(pid)),"[[Vip]]") then doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") setPlayerStorageValue(player, 13540, time) local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.") else setPlayerStorageValue(player, 13540, time) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(player)..";") doRemoveCreature(player) end 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. 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 data/globalevents/globalevents.xml <globalevent name="vipEffect" interval="2000" script="vipEffect.lua"/> globalevents/scripts/vipEffect.lua function onThink(interval, lastExecution) for _, name in ipairs(getOnlinePlayers()) do local cid = getPlayerByName(name) if getPlayerStorageValue(cid, 13540) - os.time() > 0 then doSendMagicEffect(getPlayerPosition(cid), 27) doSendAnimatedText(getPlayerPosition(cid), "VIP!", TEXTCOLOR_RED) end end return true end
Postado Março 18, 2016 9 anos Autor desculpa q eu ja instalei 3 vips e ta bugado ta faltando só isso pra mim colocar num dedicado, coloquei seu script e deu esse erro no console [18/03/2016 17:29:28] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' [18/03/2016 17:29:28] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/systemvip.lua) [18/03/2016 17:29:28] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' [18/03/2016 17:29:28] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' [18/03/2016 17:29:28] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/systemvip.lua) [18/03/2016 17:29:28] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' [18/03/2016 17:29:28] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' [18/03/2016 17:29:28] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/systemvip.lua) [18/03/2016 17:29:28] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' Editado Março 18, 2016 9 anos por CDM (veja o histórico de edições)
Postado Março 19, 2016 9 anos Em 18/03/2016 em 20:30, CDM disse: desculpa q eu ja instalei 3 vips e ta bugado ta faltando só isso pra mim colocar num dedicado, coloquei seu script e deu esse erro no console [18/03/2016 17:29:28] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' [18/03/2016 17:29:28] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/systemvip.lua) [18/03/2016 17:29:28] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' [18/03/2016 17:29:28] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' [18/03/2016 17:29:28] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/systemvip.lua) [18/03/2016 17:29:28] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' [18/03/2016 17:29:28] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' [18/03/2016 17:29:28] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/systemvip.lua) [18/03/2016 17:29:28] data/talkactions/scripts/systemvip.lua:26: 'end' expected (to close 'function' at line 1) near 'elseif' function onSay(cid, words, param) local price = 5000000 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 if(words == "!buyvip") then if doPlayerRemoveMoney(cid, price) == TRUE then 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ê tem ".. quantity .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") 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 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) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") 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 name = getCreatureName(player) 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) if string.find(tostring(getCreatureName(pid)),"[[Vip]]") then doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") setPlayerStorageValue(player, 13540, time) local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.") else setPlayerStorageValue(player, 13540, time) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(player)..";") doRemoveCreature(player) end 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. 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 data/globalevents/globalevents.xml <globalevent name="vipEffect" interval="2000" script="vipEffect.lua"/> globalevents/scripts/vipEffect.lua function onThink(interval, lastExecution) for _, name in ipairs(getOnlinePlayers()) do local cid = getPlayerByName(name) if getPlayerStorageValue(cid, 13540) - os.time() > 0 then doSendMagicEffect(getPlayerPosition(cid), 27) doSendAnimatedText(getPlayerPosition(cid), "VIP!", TEXTCOLOR_RED) end end return true end
Postado Março 19, 2016 9 anos Autor eu q reparei eu do um dia de vip pro cara eu vou no boneco e do !vipdays fala q ele tem 0 dias pq sera?? ai tem hora q eu uso comando /delvip e retiro a vip o cara continua com 0 days so q passando passagem de vip e tbm o cara continua aparecendo [vip] e o nick quero retirar isso Editado Março 19, 2016 9 anos por CDM (veja o histórico de edições)
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.