Blueberry 0 Postado Novembro 27, 2011 Share Postado Novembro 27, 2011 [27/11/2011 16:38:32] [Error - TalkAction Interface] [27/11/2011 16:38:32] data/talkactions/scripts/VIP/addvipp.lua:onSay [27/11/2011 16:38:32] Description: [27/11/2011 16:38:32] data/lib/049-vipsys.lua:102: attempt to call field 'executeQuery' (a nil value) [27/11/2011 16:38:32] stack traceback: [27/11/2011 16:38:32] data/lib/049-vipsys.lua:102: in function <data/lib/049-vipsys.lua:98> [27/11/2011 16:38:32] (tail call): ? [27/11/2011 16:38:32] data/talkactions/scripts/VIP/addvipp.lua:13: in function <data/talkactions/scripts/VIP/addvipp.lua:1> Alguém ajuda ? não estou conseguindo. Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1140294 Compartilhar em outros sites More sharing options...
Miineero 21 Postado Dezembro 1, 2011 Share Postado Dezembro 1, 2011 Muito bom Me Ajudo Muito Deu Tudo Certo aki ;] Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1142884 Compartilhar em outros sites More sharing options...
Liah 1 Postado Dezembro 19, 2011 Share Postado Dezembro 19, 2011 Velho pode me ajudar eu coloquei actionid tile 13500 e não pegou o char passa normal ;/ Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1156375 Compartilhar em outros sites More sharing options...
RHCP 24 Postado Dezembro 20, 2011 Share Postado Dezembro 20, 2011 Há como fazer pra tipo, um vip ter x% a mais que um player normal? Obrigado desde já. Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1157315 Compartilhar em outros sites More sharing options...
eletroboy97 0 Postado Dezembro 22, 2011 Share Postado Dezembro 22, 2011 (editado) Boa galera eu mais uma vez trazendo comodidade e algo seguro pra nós. Esse sistema VIP do Mock foi modificado e aptado em alumas partes dos scripts, para um funcionamento correto e com isso tivemos a ajuda dos scripts, Doidin, Luke sky walker e por min por ter ido atraz de todas as soluções pra completa algo incompleto. Vamos nois: 1° Acesse a pasta data/lib copie la um arquivo.lua e renomeio para 049-vipsys.lua, após isso apague tudo dentro desse arquivo e adicione este coder: 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 2° Abra a pasta data/creaturescrpits/scripts copie la um arquivo.lua e renomeio para vip.lua, dentro dele adicione: By Lukeskywalker function onLogin(cid) local temple = { x =32369, y = 32246, z = 6} if vip.hasVip(cid) == true then if getPlayerStorageValue(cid,55555) ~= 1 then setPlayerStorageValue(cid,55555,1) end else if getPlayerStorageValue(cid,55555) == 1 then doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, 22, "Your VIP Time over!") db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `id` = ".. getAccountIdByName(getPlayerName(cid)) ..";") setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, 55555, 0) end end return true end Você pode troca as coordenadas do templo: local temple = {x=32369, y=32246, z=6}. 3° Em data/creaturescripts/scripts/login.lua adicione essas tags: registerCreatureEvent(cid, "FimVip") registerCreatureEvent(cid, "VipReceive") 4° Em data/creaturescripts/creaturescripts.xml adicione está tag: <event type="login" name="FimVip" event="script" value="vip.lua"/> 5º Em data\movements\scripts copie la um arquivo.lua e renomeio para viptile.lua e adicione este coder dentro do mesmo: 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!", enterEffect = CONST_ME_MAGIC_RED, } 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, MESSAGE_INFO_DESCR, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) return true end end 6° Em data\movements\movements.xml adicione a tag: <movevent type="StepIn" actionid="13500" event="script" value="viptile.lua"/> Vejam a numeração 13500 você irá usar no tile que você quer para a passagem de player VIP para configurar adicione a numeração em ActionID do tile. 7° Em data/talkactions/scripts acrecente dentro da pasta scripts uma outra pasta com o nome VIP vamos precisar de 7 arquivos.lua quem teram os nomes e coder a seguir: add.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, "Added "..param.." Vip Days.") return doPlayerAddVipDays(cid, param) end addvipp.lua function onSay(cid, words, param) if param == "" then return doPlayerPopupFYI(cid,"Está com problemas?\nAprenda os comandos!\n---------------\nAdicionar vip:\n/vip add days player\n/vip add 30 Real\n---------------\nDeletar vip:\n/vip del player\n/vip del Real\n---------------\nVer a vip:\n/vip see player\n/vip see Real\n---------------\n") end if param:lower():find('add') == 1 and 3 then local _,_,id,name = param:lower():find('add (%d+) (.+)') name = name or "" id = tonumber(id or 1) or 1 if tonumber(id) == nil or getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Adicionar vip:\n/vip add days player\n/vip add 30 Real\n [Player: "..name.."]") end if isPlayer(getPlayerByName(name)) == TRUE then vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,vip.getDays(id)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Foram adicionados "..tonumber(id).." dias de vip a "..name..".") doPlayerSendTextMessage(getPlayerByName(name),MESSAGE_INFO_DESCR,"Você recebeu "..tonumber(id).." dias de vip.") else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,name.." não esta online ou não existe.") end elseif param:lower():find('del') == 1 and 3 then local _,_,name = param:lower():find('del (.+)') if getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Deletar vip:\n/vip del player\n/vip del Real\n") end vip.setVipByAccount(getPlayerAccount(getPlayerByName(name)),-os.time()) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"A vip de "..name.." foi apagada.") elseif param:lower():find('see') == 1 and 3 then local _,_,name = param:lower():find('see (.+)') name = name or "" if getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Ver a vip:\n/vip see player\n/vip see Real\n") end local ret_ = vip.getVip(getPlayerByName(name)) if ret_ == 0 then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,name.." Não tem vip, e nunca teve.") else return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A vip de "..name.." Acaba/terminou em "..os.date("%d %B %Y %X ",ret_)) end end return TRUE end get.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, ""..getPlayerVipDays(cid).." days VIP left.") end is.lua function onSay(cid, words, param, channel) if isPlayerVip(cid) == TRUE then doPlayerSendCancel(cid, "You are a VIP player.") else doPlayerSendCancel(cid, "You are not a VIP player.") end end removevip.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, "Vip removed.") return doPlayerRemoveVip(cid) end set.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, "VIP Days: "..param..".") return setPlayerVipDays(cid, param) end vipdays.lua function onSay(cid, words, param) if vip.hasVip(cid) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your vip end in "..os.date("%d %B %Y %X ",vip.getVip(cid))) else if vip.getVip(cid) ~= 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. Your vip has finished in "..os.date("%d %B %Y %X ", vip.getVip(cid)).." and now is "..os.date("%d %B %Y %X ", os.time())) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. You naver has a vip.") end end return TRUE end 8°Em data/talkactions/talkactions.xml adicione está tag: <!-- VIP System --> <talkaction log="yes" words="/vip" access="5" event="script" value="VIP/addvipp.lua" /> <talkaction words="!vipdays" event="script" value="VIP/vipdays.lua" /> 9° Para finalizar execute este comando na sua database: alter table `accounts` add `vip_time` INT NOT NULL; Bom galera fim este sistema vip adiciona os dias corretos e ao termino do VIP o player recebe a menssagem que o VIP acabou é teleportado pro templo porque se no caso ele estiver na área VIP essa é uma saida e zera a coluna vip_time. Creditos: Mock (por ter iniciado algo e não terminou) Lukeskywalker (Sistema de finalização perfeito do vip.) Natan Beckman (Por ter ido atrás a conclusão 100% in game e php) Mais da metade desse codigo foi criada por mim, mais o que poderiamos esperar do MEGA RIPPER Natan e cia ltda??? Se duvida, basta olhar no post do styller 0.6.2 pra tibia 8.50... é impressionante como ele gosta de se engrandecer por meus feitos... Isso, minha proteção DDoS, entre outras coisas!!! Só pra esclarecer, Antigamente eu era conhecido como TechLoko, mais agora tenho um nome bem mais respeitável, Revange... O mesmo que fez a sua proteção DDoS e vc fica se gabando como se fosse vc, o mesmo que criou mais da metade dos scripts deste post! E ainda tem a coragem de criticar o Mock que desenvolveu a "LIB" e nao todo o sistema, quando ele fez e eu me lembro bem disso, ele deixou claro que isso era só a lib e que o resto ficava por conta da imaginação de cada um!!! RIPPER é %$#@ Editado Dezembro 22, 2011 por Techloko Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1159016 Compartilhar em outros sites More sharing options...
dodoakii 0 Postado Janeiro 6, 2012 Share Postado Janeiro 6, 2012 Bom Mock e o seguinte cara eu nao sei coloka esses TAG de sistema VIP se eu te passa a pasta do meu OT vc faz isso pra mni man. so falta isso para meu OT ficar 24 Hrs online no Dedicado Bom Qualquer Coisa add Skyp killobi2 ou msn dodojho@hotmail.com BOM QUEM KISER ME AJUDA A COLOKAR COMANDOS MAGIAS NOVAS NO MEU OT SO ADD MSN dodojho@hotmail.com Skyp: killobi2 Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1170124 Compartilhar em outros sites More sharing options...
breduardo 0 Postado Janeiro 13, 2012 Share Postado Janeiro 13, 2012 Cara, muito bom esse script, mas no meu ot que uso tfs 0.4 pega de boa, mas cerca de 1 hora ou mais, por ai, o piso não funciona mais, quando passa por cima da esse erro, só quando do reload ou reinicia o ot que funciona. Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1175120 Compartilhar em outros sites More sharing options...
nickt 4 Postado Janeiro 15, 2012 Share Postado Janeiro 15, 2012 Alguem poderia me ajudar ? é só Mysql ou Sql tambem ? Aqui quando eu executo esse comando alter table `accounts` add `vip_time` INT NOT NULL; no meu sql ele da o seguinte erro. Error while executing query: Cannot add a NOT NULL column with default value NULL Eai qunado entro no server da erro do Vip-time que nao foi adicionado. Abraço, fico no aguardo ! Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1176508 Compartilhar em outros sites More sharing options...
leister 0 Postado Fevereiro 12, 2012 Share Postado Fevereiro 12, 2012 o Meu sistema ta com um problema nao sei pq Na hora q vc faiz o comando pra add a VIP ele aparece rafinhaw não esta online ou não existe Mais isso e so se eu Digitar o nome errado. Se eu digito o nome certo ele nao aparece nada tipo assim: 12:57 God Maah: /vip add 3 Rafinhaws e nao add a VIP. Ajuda pllx Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1200962 Compartilhar em outros sites More sharing options...
leo12356 0 Postado Março 8, 2012 Share Postado Março 8, 2012 aff esqueceu de por os comandos pra testa -.- Parabens Aqui da um erro inutil -.- Msm eu pondo o a numeraçao no tile o vip system deixa el eentra e ainda fala bem vindo o cara entra sem eu deixa ele de vip Desculpa O Incoveniente Seu Sistema E Otimo Parabens O De kydra e um lix nao funciona em mysql Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1213449 Compartilhar em outros sites More sharing options...
lucascfi 0 Postado Abril 25, 2012 Share Postado Abril 25, 2012 Como executo o 9º passo pelo SQL STUDIO? Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1248230 Compartilhar em outros sites More sharing options...
beddy 118 Postado Maio 3, 2012 Share Postado Maio 3, 2012 (editado) alter table `accounts` add `vip_time` INT NOT NULL no meu db da isso Error while executing query: Cannot add a NOT NULL column with default value NULL descobri o erro, basta colocar alter table `accounts` add `vip_time` INT(15) NOT NULL DEFAUT '0' Editado Maio 3, 2012 por beddy Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1253203 Compartilhar em outros sites More sharing options...
nari 1 Postado Maio 21, 2012 Share Postado Maio 21, 2012 (editado) °bom isso q vc pedio para executar da erro entao minha saida foi pegar uma db que jah tinha esse sistema, porfavor reveja o 9° passo o 9° passa nao seria este comando a ser executado ALTER TABLE `accounts` ADD `vip_time` INT( 15 ) NOT NULL ou ALTER TABLE `accounts` ADD `vip_time` INT( 15 ) NOT NULL DEFAULT 0 Editado Maio 22, 2012 por Nari Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1263091 Compartilhar em outros sites More sharing options...
Natanael Beckman 223 Postado Maio 23, 2012 Autor Share Postado Maio 23, 2012 Executa dentro da tabela accounts. Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1264158 Compartilhar em outros sites More sharing options...
Dwig 0 Postado Maio 31, 2012 Share Postado Maio 31, 2012 Cara tudo foi certo, mas quando uso o comando /vip add 30 God da essa mensagem: 02:54 god não esta online ou não existe. sabe qual o problema? Link para o comentário https://xtibia.com/forum/topic/151189-vip-system-by-mock-100/page/3/#findComment-1269137 Compartilhar em outros sites More sharing options...
Posts Recomendados