SOL
SAĞ
Gelişmiş Banka Sistemi
SİDEBAR REKLAMI

Oyuncular bir şifre yazarak, bir güvenlik sorusu seçerek ve cevabını seçerek banka hesabını oluşturabilirler.
Parolalarıyla oturum açabilirler veya hatırlamazlarsa, sıfırlayabilirler, ancak yalnızca güvenlik sorularının cevabına sahiplerse.
Ayrıca verilerini değiştirebilirler.

Oyuncu giriş yaparken şifresini 5 kez geçemezse veya güvenlik sorusuna cevap verirse, 2 saat boyunca giriş yapamaz veya şifresini sıfırlayamaz.

Öncelikle bu fonksiyonları ve değişkenleri questlib.lua dosyanıza eklemelisiniz:
 

Kod:

bank_path = '/game/bank'

function readline(path, x)
    local linetable = {}
    for line in io.lines(path..'/'..pc.name) do
        table.insert(linetable, line)
    end
    return linetable[x]
end
    
function write_in_file(path, text)
    if string.find(text, "%[ENTER%]") then
        text = string.gsub(text, "%[ENTER%]", "n")
    end
    local file = io.open(path..'/'..pc.name, 'w')
    file:write(text)
    file:close()
end

Bir sonraki adım, banka adında bir klasör oluşturmaktır veya isterseniz ad istediğiniz gibidir, ancak bu klasörün yolunu banka_yolu içinde yazmanız gerekir . Bu klasörde oyuncunun banka hesabıyla ilgili tüm bilgiler kaydedilecektir. (Banka şifresi, güvenlik sorusu, güvenlik sorusunun cevabı ve sonunda kaydedilen altın gibi şeyler).

Ve şimdi görev: (quest yabancı bir forumdan alıntı olduğu için düzenlemeniz gerek yerleri sizler için belirteceğim)
 

Kod:

quest advanced_bank begin
    state start begin
        when 20090.chat.'Bank' begin
            local question = {'Your moms name?', 'Your fathers name', 'Your pets name', 'Other'} ==> Düzeltebilirsiniz
            say_title'Bank'
            if pc.getqf('has_bank_acc') == 0 then
                say'Hello! Welcome to our City Bank.[ENTER]I guess you havent an account here.'
                say'Let me explain you how this works:' ==> Düzeltebilirsiniz
                say_reward'You have to write a password for your account[ENTER]a security question and a security answer.' ==> Düzeltebilirsiniz
                say_reward'This will increase your security.[ENTER]No one can access your account unless they[ENTER]have your password.[ENTER]' ==> Düzeltebilirsiniz
                say'You just need to pay 1.000.000 Gold[ENTER]to get your bank account.[ENTER]But always, remember:' ==> Düzeltebilirsiniz
                say_reward'Do not use other games password.[ENTER]This would make easier to know your pw.[ENTER]And also because' ==> Düzeltebilirsiniz
                say_reward'admins can see your password.[ENTER]The same is for your question and answer.[ENTER]' ==> Düzeltebilirsiniz
                say'So.. you wanna continue, and get a[ENTER]bank account?' ==> Düzeltebilirsiniz
                if select('Yes, of course.', 'Nah, forget it.') == 1 then
                    if pc.get_gold() < 1000000 then
                        say'Sorry, you dont have enough Gold.[ENTER]Come back when you get 1.000.000 Gold.' ==> Düzeltebilirsiniz
                        return
                    end
                    say'Okay, please write your bank acc pw.' ==> Düzeltebilirsiniz
                    local pw = input()
                    if pw == '' then
                        say'Did you change your mind?' ==> Düzeltebilirsiniz
                        return
                    end
                    say'Next step is choose your security question.[ENTER]You can also write one if you want to.' ==> Düzeltebilirsiniz
                    local sqt = select_table(question)
                    if sqt == 4 then
                        say'Okay, please write your question:' ==> Düzeltebilirsiniz
                        local myquestion = input()
                        if myquestion == '' then
                            say'Did you change your mind?' ==> Düzeltebilirsiniz
                            return
                        end
                        question = myquestion
                    else
                        question = question[sqt]
                    end
                    say'Oh right, we are almost finishing.[ENTER]Now enter the answer to your question.' ==> Düzeltebilirsiniz
                    say_reward(question)
                    local answ = input()
                    if answ == nil then
                        say'Did you change your mind?' ==> Düzeltebilirsiniz
                        return
                    end
                    advanced_bank.set_pc_bank_infos(pw, question, answ, 0)
                    say'Great! You are now registered in our bank.[ENTER]Welcome! :)' ==> Düzeltebilirsiniz
                    pc.change_gold(-1000000)
                end
            else
                local mainmenu = select('Log in into my account','I forgot my password','Cancel')
                if mainmenu == 2 then
                    if pc.getqf('tries') == 5 then
                        say'Sorry, you have tried too many times.[ENTER]Please, try later.' ==> Düzeltebilirsiniz
                        pc.setqf('tries', get_time()+60*60*2)
                        pc.setqf('is_delayed', 1)
                        return
                    elseif get_time() <= pc.getqf('tries') then
                        say'Since you failed 5 times your password[ENTER]you have to wait 2 hours to try again.[ENTER]Too bad!' ==> Düzeltebilirsiniz
                        return
                    end
                    if pc.getqf('is_delayed') == 1 then pc.delqf('is_delayed') pc.delqf('tries') end
                    say'Wow what the hell![ENTER]If you at least know your[ENTER]security answer, we can generate a new pw 4 you.' ==> Düzeltebilirsiniz
                    say'Please, write the RIGHT answer.' ==> Düzeltebilirsiniz
                    if input() ~= readline(bank_path, 3) then
                        say'Wrong, sorry dude..'
                        pc.setqf('tries', pc.getqf('tries')+1)
                    else
                        say'Okay, wait a minute.[ENTER]A number password is being generated.' ==> Düzeltebilirsiniz
                        wait()
                        local random = number(1000, 9999)
                        say('Your new password is '..tostring(random)..'.') ==> Düzeltebilirsiniz
                        advanced_bank.set_pc_bank_infos(random, readline(bank_path, 2), readline(bank_path, 3), readline(bank_path, 4))
                    end
                    return
                end
                if pc.getqf('tries_to_login') == 5 then
                    say'Sorry, you have tried to log in too many times.[ENTER]Please try later.' ==> Düzeltebilirsiniz
                    pc.setqf('tries_to_login', get_time()+60*60*2)
                    pc.setqf('is_login_delayed', 1)
                    return
                elseif get_time() <= pc.getqf('tries_to_login') then
                    say'Since you failed 5 times your password[ENTER]you have to wait 2 hours to try again.[ENTER]Too bad!' ==> Düzeltebilirsiniz
                    return
                end
                if pc.getqf('is_login_delayed') == 1 then pc.delqf('is_login_delayed') pc.delqf('tries_to_login') end
                say'Yô dawg[ENTER]Welcome back.[ENTER]Please write your password to log in.' ==> Düzeltebilirsiniz
                local login = input()
                say_title('Bank')
                if login ~= readline(bank_path,1) then
                    say('Sorry, your password is wrong.')
                    pc.setqf('tries_to_login', pc.getqf('tries_to_login')+1)
                    return
                end
                say'Welcome to Clients Panel.[ENTER]What do you want to do?' ==> Düzeltebilirsiniz
                say_reward('Currently you have '..readline(bank_path, 4)..' Gold saved.') ==> Düzeltebilirsiniz
                local sel = select('Take Gold', 'Save Gold', 'Change data', 'Nothing')
                if sel ~= 4 then
                    say_title('Bank')
                    if sel ~= 3 then
                        say_reward('Currently you have '..readline(bank_path,4)..' Gold saved.') ==> Düzeltebilirsiniz
                    end
                end
                if sel == 1 then
                    say'You have to write how much Gold[ENTER]you want to receive.[ENTER]If you want to cancel, please write 0[ENTER]or do not write nothing.' ==> Düzeltebilirsiniz
                    local qt = tonumber(input())
                    if qt == nil or qt == 0 then
                        say'Did you change your mind?' ==> Düzeltebilirsiniz
                        return
                    end
                    say('So you want to receive '..qt..' Gold. Isnt it?') ==> Düzeltebilirsiniz
                    if select('Yes, it is.', 'Hmm, no') == 1 then advanced_bank.give_money(qt) end ==> Düzeltebilirsiniz
                elseif sel == 2 then
                    say'How much Gold you want to save?' ==> Düzeltebilirsiniz
                    local whatiwant = tonumber(input()) 
                    if whatiwant ~= nil then
                        say('So do you really want to save '..whatiwant..' Gold?') ==> Düzeltebilirsiniz
                        if select('Yes, I want to', 'No, no sorry.') == 1 then ==> Düzeltebilirsiniz
                            if pc.get_gold() < whatiwant then
                                say('You dont have that Gold to save..') ==> Düzeltebilirsiniz
                                return
                            end
                            advanced_bank.save_money(whatiwant)
                            pc.change_gold(-whatiwant)
                            say('Done.[ENTER]Now you have more '..whatiwant..' Gold in your account.') ==> Düzeltebilirsiniz
                        end
                    end
                elseif sel == 3 then
                    local new
                    say'What do you want to change?' ==> Düzeltebilirsiniz
                    local change = select('Password', 'Security data (Question & Answer)', 'Nothing')
                    if change ~= 3 then
                        say'Please, write your password.' ==> Düzeltebilirsiniz
                        if input() ~= readline(bank_path,1) then say'The password you entered is wrong.' return end
                        say'Please, write the Answer to your security question:'
                        say_reward(readline(bank_path, 2))
                        if input() ~= readline(bank_path,3) then say'The answer you entered is wrong.' return end
                        if change == 1 then
                            say'Write your new password:' ==> Düzeltebilirsiniz
                            local newpw = input()
                            if newpw == '' then say'Did you change your mind?' return end ==> Düzeltebilirsiniz
                            advanced_bank.set_pc_bank_infos(newpw, readline(bank_path, 2), readline(bank_path, 3), readline(bank_path,4))
                            say'Your password has been changed.' ==> Düzeltebilirsiniz
                        else
                            say'Okay, choose your new Security Question:'==> Düzeltebilirsiniz
                            local newquestion = select_table(question)
                            if newquestion == table.getn(question) then
                                say'Write the security question you want:' ==> Düzeltebilirsiniz
                                local newq = input()
                                if newq == '' then say'Did you change your mind?' return end ==> Düzeltebilirsiniz
                                newquestion = newq
                            else
                                newquestion = question[newquestion]
                            end
                            say'Oh right, one more step left.[ENTER]Write the answer to your question:' ==> Düzeltebilirsiniz
                            local newanswer = input()
                            if newanser == '' then say'Did you changed your mind?' return end ==> Düzeltebilirsiniz
                            advanced_bank.set_pc_bank_infos(readline(bank_path,1), newquestion, newanswer, readline(bank_path,4))
                            say'Your Security data has been changed.'
                        end
                    end
                end
            end
        end

        function set_pc_bank_infos(pw, question, answer, money)
            write_in_file(bank_path, pw..'[ENTER]'..question..'[ENTER]'..answer..'[ENTER]'..money..'[ENTER]')
            pc.setqf('has_bank_acc', 1)
        end

        function give_money(value)
            if pc.get_gold() + value >= 2000000000 then
                say'You cant take that value. It will bug!' ==> Düzeltebilirsiniz
                return
            elseif tonumber(readline(bank_path ,4)) < value then
                say'You dont have that much Gold in your bank acc.' ==> Düzeltebilirsiniz
                return
            end
            pc.change_gold(value)
            advanced_bank.save_money(tonumber(readline(bank_path,4))-value)
        end

        function save_money(value)
            write_in_file(bank_path, readline(bank_path, 1)..'[ENTER]'..readline(bank_path, 2)..'[ENTER]'..readline(bank_path, 3)..'[ENTER]'..value)
        end

    end
end
YAZAR HAKKINDA;
arcface
Admin

Web Developer

KONU YORUMLARI
YORUM YAP
Image

Quests

Gelişmiş Banka Sistemi

Gelişmiş Banka Sistemi Gelişmiş Banka Sistemi Gelişmiş Banka Sistemi Gelişmiş Banka Sistemi Gelişmiş Banka Sistemi Gelişmiş Banka Sistemi Gelişmiş Banka Sistemi

EN ÇOK OKUNAN 5 MAKALELER
arcface
Admin Yazdı;

2 ay önce

Yarı insan denilince ne anlıyoruz önce ona bir bakalım. Yarı insan; bi..

arcface
Admin Yazdı;

2 ay önce

Rubinum2 Web Panel Rubinum2 Web Panel Rubinum2 Web PanelRubinum2 Web..

arcface
Admin Yazdı;

2 ay önce

Afro2 Web Panel Kodlaması Afro2 Web Panel Kodlaması Afro2 Web Pane..

arcface
Admin Yazdı;

2 ay önce

Discord Widget Discord Widget Discord Widget Discord Widget Di..

arcface
Admin Yazdı;

2 ay önce

Aegea2 Site Teması İndir Aegea2 Site Teması İndir Aegea2 Site Teması..