Ir para conteúdo

Featured Replies

Postado

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 por Thunder Black (veja o histórico de edições)

  • Respostas 7
  • Visualizações 1.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Thunder Black
    Thunder Black

    já tentou baixar outro source que no caso tenha o config.lua ? abraço

  • Thunder Black
    Thunder Black

    Ou tente add isso no config. Houses buyableAndSellableHouses = true houseNeedPremium = false bedsRequirePremium = false levelToBuyHouse = xxx housesPerAccount = 1 casas por c

  • Thunder Black
    Thunder Black

    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 cas

Postado
  • 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 :D

nbeTETb.png?1

 

Postado

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)
        end
return 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...  :facepalm:  :facepalm:  :facepalm:

Editado 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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo