Postado Setembro 18, 2015 9 anos Pensei aqui em um sistema um pouco diferente, até porque não conheço a versão 1.0, nunca trabalhei com ela, enfim vamos ao caso. 1 parte: Apenas players com premmium account poderiam comprar casa 2 parte: Players ao chegarem ao level 100, ganhariam de recompensa a tal premmium account e logo, poderiam comprar casa e criar guild. 3 parte. Retirar premmium account no comando. 4 parte. Existe desvantagem nesse sistema, caso for global, o player terá uma enorme desvantagem em não ser premmium account. 5 parte: Resolveriamos seu caso de uma maneira similar porém não tão eficaz quanto gostariamos, mas devido que, no atual momento não contamos com o suporte necessário, talvez se faça útil tal sistema. OU add o level no talkaction que também seria uma boa opção, vou pesquisar aqui também. Caso queira, me avisa que eu publico aqui, enquanto isso vou procurar como modificar isso, que deve ser muiitooooo facil hehehe. abraço Editado Setembro 18, 2015 9 anos por Thunder Black (veja o histórico de edições)
Postado Setembro 19, 2015 9 anos Autor Olha, gostei da sua alternativa caso não consiga colocar level na talkaction, foi realmente bem pensado hahah vlw a força ae brother de vdd... qualquer coisa posta ai se conseguir
Postado Setembro 19, 2015 9 anos vou fazer pra tu, calmae.. Bom, vamos lá Primeira Parte: Quando o player upar X level ele ganhará Y dias de premium (configurável), porém só terá efeito com o primeiro char que alcançar o X level, para evitar o ganho extra de premium. fazendo assim que o player tenha apenas uma casa, não adianta criar centenas de chares que não vai funcionar. Exemplo: upei level 100 com fulano e ganhei 10 dias de premium, então criei o ciclano e ao pegar level 100 eu não irei ganhar a premium. Crie um arquivo com o nome de "gainpalvl.lua" (sem aspas) em: data/creaturescripts/scripts [spoiler*] --[Criado por Renato Ribeiro para www.TibiaKing.com]-- --[Baseado em um script do Matheus]--local config {level == 100,days == 10,}function onAdvance(cid, oldlevel, newlevel) if getPlayerLevel(cid) >= config.level and getGlobalStorageValue(getPlayerAccountId(cid)+321) <= 0 then setGlobalStorageValue(getPlayerAccountId(cid)+321, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ganhou "..config.days.." dias de premium por alcançar level "..config.level.." em pelo menos um char de sua account. Você não irá ganhar de novo caso upe level "..config.level.." em outro char.") doPlayerAddPremiumDays(cid, config.days) endreturn TRUE end Em, data/creaturescripts abra o arquivo creaturescripts.xml. [spoiler*] <event type="login" name="gainpalvl" event="script" value="gainpalvl.lua"/> [/spoiler*] [spoiler*] Em, data/creaturescripts/scripts abra o arquivo login.lua. [/spoiler*] Beleza ( esta é a parte que o player ganha o direito de comprar a house por possuir premmium agora vamos colocar que apenas player que tenham premmium account possam comprar a casa [spoiler*] function onSay(cid, words, param) local housePrice = configManager.getNumber(configKeys.HOUSE_PRICE) if housePrice == -1 then return true end local player = Player(cid) if player:getPremiumDays() <= 0 then player:sendCancelMessage("You need a premium account.") return false end local position = player:getPosition() position:getNextPosition(player:getDirection()) local house = House(getTileHouseInfo(position)) if house == nil then player:sendCancelMessage("You have to be looking at the door of the house you would like to buy.") return false end if house:getOwnerGuid() > 0 then player:sendCancelMessage("This house already has an owner.") return false end if player:getHouse() then player:sendCancelMessage("You are already the owner of a house.") return false end local price = house:getTileCount() * housePrice if not player:removeMoney(price) then player:sendCancelMessage("You do not have enough money.") return false end house:setOwnerGuid(player:getGuid()) player:sendTextMessage(MESSAGE_INFO_DESCR, "You have successfully bought this house, be sure to have the money for the rent in the bank.") return false end [/spoiler*] logo, adicionaremos a tag no TALKACTIONS [spoiler*] <talkaction words="!buyhouse" script="buyhouse.lua"/> [/spoiler*] comando de comprar premmium ( configuravel ) esta talvez seja uma solução pro seu caso, até que encontre um script mais resumido, que alguem com mais conhecimento vai poder te ajudar caso queira dar premmium apenas a player que conseguiram chegar a x level ( citado acima) podemos aumentar o preço da premmium [spoiler*] local config = { days = 90, maxDays = 365, price = 100000000000000 } function onSay(cid, words, param) if configManager.getBoolean(configKeys.FREE_PREMIUM) then return true end local player = Player(cid) if player:getPremiumDays() <= config.maxDays then if player:removeMoney(config.price) then player:addPremiumDays(config.days) player:sendTextMessage(MESSAGE_INFO_DESCR, "You have bought " .. config.days .." days of premium account.") else player:sendCancelMessage("You don't have enough money, " .. config.maxDays .. " days premium account costs " .. config.price .. " gold coins.") player:getPosition():sendMagicEffect(CONST_ME_POFF) end else player:sendCancelMessage("You can not buy more than " .. config.maxDays .. " days of premium account.") player:getPosition():sendMagicEffect(CONST_ME_POFF) end return false end [/spoiler*] ou exclua-o da pasta e não mencione no arquivo xml também existe o comando leave house. caso queira add o comando eject (20 dias off o player perde a casa [spoiler*] local days = 20 -- Se ele estiver 20 dias sem logar, ele perde a house function onStartup() local resultId = db.storeQuery("SELECT `owner`,`id` FROM `houses`;") if resultId then repeat local aux = db.storeQuery("SELECT `lastlogin` FROM `players` WHERE `id` = ".. result.getDataString(resultId, "owner") .. ";") if aux then if result.getDataInt(aux, "lastlogin") < os.time() - (days * 86400) then House(result.getDataInt(resultId, "id")):setOwnerGuid(-1) end end until not result.next(resultId) end saveServer() return true end [/spoiler*] add esta tag em global events [spoiler*] <globalevent name="cleanHouse" type="startup" script="cleanHouse.lua"/> [/spoiler*] Creditos: Matheus,Renato e deve ter outra galera ai também. credito a geral. Abraço amigo, e desculpe não ter solucionado o problema de verdade, amanhã entra o pessoal que entende bem e te ajuda rapidinho, porq este script é moleza. desisto de tentar fazer spoiler pqp... Editado Setembro 19, 2015 9 anos por Thunder Black (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.