felipedorgas 25 Postado Agosto 13, 2010 Share Postado Agosto 13, 2010 gostaria que esse script feito pelo kydrai, alem de teleporta o player pra uma city free ele tira a promotion vip 9 volte pra 5 10 volte pra 6 11 volte pra 7 12 volte pra 8 function onLogin(cid) if getVipTime(cid) > 0 and isVip(cid) == FALSE then local townid = 1 doPlayerSetTown(cid, townid) local templePos = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, templePos, false) setVipTime(cid, 0) doTeleportPlayers(cid, templePos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!") else local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end return TRUE end vlw Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/ Compartilhar em outros sites More sharing options...
Henrique Moura 193 Postado Agosto 13, 2010 Share Postado Agosto 13, 2010 Aproveitando o tópico, felipe, esse script feito pelo kydrai é compátivel com o real server? Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920130 Compartilhar em outros sites More sharing options...
felipedorgas 25 Postado Agosto 13, 2010 Autor Share Postado Agosto 13, 2010 Sim Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920146 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Agosto 13, 2010 Share Postado Agosto 13, 2010 @TOPIC function onLogin(cid) if getVipTime(cid) > 0 and isVip(cid) == FALSE then local townid = 1 doPlayerSetTown(cid, townid) local templePos = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, templePos, false) if(isInArray({9, 10, 11, 12}, getPlayerVocation(cid))) then doPlayerSetVocation(cid, voc-4) end setVipTime(cid, 0) doTeleportPlayers(cid, templePos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!") else local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end return TRUE end @Kakilo sim funciona em servidores 8.54+ e aconselho a usar no seu servidor,esse sistema é melhor que o do MOCK. flw Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920149 Compartilhar em outros sites More sharing options...
felipedorgas 25 Postado Agosto 13, 2010 Autor Share Postado Agosto 13, 2010 Vodkart deu erro no executavel : viplogin.lua:8: attempt to perform arithmetic on global 'voc' <a nil value> Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920153 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Agosto 13, 2010 Share Postado Agosto 13, 2010 (editado) esqueci que identificar a variavel function onLogin(cid) if getVipTime(cid) > 0 and isVip(cid) == FALSE then local townid = 1 doPlayerSetTown(cid, townid) local templePos = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, templePos, false) local voc = getPlayerVocation(cid) if(isInArray({9, 10, 11, 12}, getPlayerVocation(cid))) then doPlayerSetVocation(cid, voc-4) end setVipTime(cid, 0) doTeleportPlayers(cid, templePos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!") else local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end return TRUE end Editado Agosto 13, 2010 por Vodkart Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920154 Compartilhar em outros sites More sharing options...
felipedorgas 25 Postado Agosto 13, 2010 Autor Share Postado Agosto 13, 2010 (editado) agora ele só ta tirando promotion do 1° char da lista ;x Editado Agosto 13, 2010 por felipedorgas Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920156 Compartilhar em outros sites More sharing options...
MarcelloMendes 78 Postado Agosto 13, 2010 Share Postado Agosto 13, 2010 (editado) Cara modifiquei este aki, ele vai remover a 'promotion', e voltar pra vocação inicial do player. ex: se o player é Master sorcerer, o script vai remover a promotion, e ele voltará a ser Sorcerer. se é elder druid, voltara a ser druid, e assim vai xD function onLogin(cid) if getVipTime(cid) > 0 and isVip(cid) == FALSE then local townid = 1 doPlayerSetTown(cid, townid) local templePos = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, templePos, false) setVipTime(cid, 0) doTeleportPlayers(cid, templePos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!") else local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end if (getVipTime(cid) > 0 and isVip(cid) == FALSE) and (getPlayerPromotionLevel(cid) > 1) then setPlayerPromotionLevel(cid, getPlayerPromotionLevel(cid)-1) end return TRUE end abraço. Editado Agosto 13, 2010 por MarcelloMkez Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920157 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Agosto 13, 2010 Share Postado Agosto 13, 2010 aqui funfo :X function onLogin(cid) if getVipTime(cid) > 0 and isVip(cid) == FALSE then local townid = 1 doPlayerSetTown(cid, townid) local templePos = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, templePos, false) if isInArray({9,10,11,12}, getPlayerVocation(cid)) then doPlayerSetVocation(cid,getPlayerVocation(cid)-4) end setVipTime(cid, 0) doTeleportPlayers(cid, templePos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!") else local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end return TRUE end Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920163 Compartilhar em outros sites More sharing options...
felipedorgas 25 Postado Agosto 13, 2010 Autor Share Postado Agosto 13, 2010 MarcelloMkez, obrigado, + seu script n funcionou :S Vodkart, ainda não deu, + percebi uma coisa, ele tira promotion do primeiro char que eu logo... eu to fazendo teste com 3 chars vip+promotion, ele só tira a promotion do primeiro char que eu logo, os outros 2 continua promotion. espero q com essa informação da pra finaliza o script Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920166 Compartilhar em outros sites More sharing options...
MarcelloMendes 78 Postado Agosto 13, 2010 Share Postado Agosto 13, 2010 (editado) function onLogin(cid) if getVipTime(cid) > 0 and isVip(cid) == FALSE then local townid = 1 doPlayerSetTown(cid, townid) local templePos = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, templePos, false) setVipTime(cid, 0) doTeleportPlayers(cid, templePos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!") else local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) return TRUE end function backPromotion(cid) setPlayerPromotionLevel(cid, getPlayerPromotionLevel(cid)-1) doRemoveCreature(cid) return TRUE end local time = 5 --[[ Tempo que o player será deslogado para mudar a vocação, em segundos.]] if (getVipTime(cid) > 0 and isVip(cid) == FALSE) and (getPlayerPromotionLevel(cid) > 1) then doPlayerPopupFYI(cid, "'Você será deslogado em "..time.." segundos para retornar as configurações de Free Account.'") addEvent(backPromotion, time*1000, cid) end return TRUE end bom refiz o script, agora tem que funcionar né possivel =x abraço. Editado Agosto 13, 2010 por MarcelloMkez Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920168 Compartilhar em outros sites More sharing options...
felipedorgas 25 Postado Agosto 13, 2010 Autor Share Postado Agosto 13, 2010 nada marcelo, esperei esses 5 segundos, + n deu 12:58 Você possui 0 dia(s) de vip. 12:58 You see yourself. You are an elite knight [VIP]. 12:59 Você possui 0 dia(s) de vip. 12:59 You see yourself. You are an elder druid [VIP]. tpw, eu penso assim, vcs conseguiram tira promotion de 1 char só, e o kydrai conseguiu teleporta todos os players da conta pra town id X, então não n dava pra usa a msm função pra tira todas promotion da conta? seria q n prescisa add alguma coisa na database mysql? vlw pela paciencia Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920261 Compartilhar em outros sites More sharing options...
Kydrai 146 Postado Agosto 13, 2010 Share Postado Agosto 13, 2010 (editado) Tenta assim: function onLogin(cid) if getVipTime(cid) > 0 and isVip(cid) == FALSE then local townid = 1 doPlayerSetTown(cid, townid) local templePos = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, templePos, false) setVipTime(cid, 0) doTeleportPlayers(cid, templePos) local voc = getPlayerVocation(cid) if isInArray({9, 10, 11, 12}, voc) then doPlayerSetVocation(cid, voc-4) end db.executeQuery("UPDATE `players` SET `vocation` = (`vocation`-4) WHERE `account_id` = "..getPlayerAccountId(cid).." AND `vocation` >= 9 AND `vocation` <= 12;") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!") else local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end return TRUE end Só não sei se tem que mexer na coluna vocation ou promotion. Editado Agosto 13, 2010 por kydrai Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920331 Compartilhar em outros sites More sharing options...
felipedorgas 25 Postado Agosto 13, 2010 Autor Share Postado Agosto 13, 2010 (editado) kydrai, não deu msm coisa, só o 1° char que eu logo fica sem promotion, e ainda, eu relogo e a promotion volta. olha eese topico, vc consegiu ajuda esse cara, + ele usa premmy em fez de vip, + o id de promotion é a msm, tem q volta de 2 para a 1 http://www.xtibia.com/forum/topic/126300-script-que-baixe-promotion-de-2-para-1-caso-player-esteja-free-account/ eu tentei usa o login.lua dele + deu erro aqui no meu executavel vlw Editado Agosto 13, 2010 por felipedorgas Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920352 Compartilhar em outros sites More sharing options...
Kydrai 146 Postado Agosto 14, 2010 Share Postado Agosto 14, 2010 Nem precisava usar o sql ali. Faz assim: function onLogin(cid) if isVip(cid) == FALSE and getPlayerPromotionLevel(cid) == 2 then doPlayerSetPromotionLevel(cid, 1) end return TRUE end Ou então: function onLogin(cid) local voc = getPlayerVocation(cid) if isInArray({9, 10, 11, 12}, voc) and isVip(cid) == FALSE then doPlayerSetVocation(cid, voc-4) end return TRUE end Link para o comentário https://xtibia.com/forum/topic/139330-end-vip-end-promotion/#findComment-920454 Compartilhar em outros sites More sharing options...
Posts Recomendados