Centrum Ots

Forum Poświęcone OTS

Ogłoszenie

°Witaj Na Forum !!°
ZAPRASZAMY DO REJESTRACJI!

#1 2008-07-29 13:12:36

Thunder

Zbanowany

8700621
Skąd: Poznań
Zarejestrowany: 2008-07-29
Posty: 33
Punktów :   

[8.x] NPC Bankier

Na poczatku informuje, żeby nie było 'to nie twój skrypt'.
To nie ja jestem autorem tego skryptu, lecz Colex'a.

W folderze data/npc/scripts tworzymy plik o nazwie bank.lua i wklejamy do niego:

Kod:

---------NPC Banker by Colex-----------

focus = 0
talk_start = 0
target = 0
dep = 0
wit = 0
trans = 0
following = false
attacking = false




--ALTERE DE ACORDO COM A SUA VERSÃO
-----IDs----
gold_id = 2148
plat_id = 2152
crys_id = 2160



function onThingMove(creature, thing, oldpos, oldstackpos)

end


function onCreatureAppear(creature)

end


function onCreatureDisappear(cid, pos)
      if focus == cid then
          selfSay('Good bye then.')
          focus = 0
          talk_start = 0
      end
end


function onCreatureTurn(creature)

end


function msgcontains(txt, str)
      return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end


function onCreatureSay(cid, type, msg)
      msg = string.lower(msg)
        nome = creatureGetName(cid)

--------------------------------------Begin----------------------------------------------

      if (msgcontains(msg, 'hi') or msgcontains(msg, 'hello')) and (focus == 0) and getDistanceToCreature(cid) < 4 then
         if io.open("data/bank/"..nome..".dat", "r") then
                io.close();
              else
            newAccount(nome)
        end
                dep = 0
                wit = 0
        trans = 0
          selfSay('Hello ' .. nome .. '! Well come to the local bank, what do you want to do? here you can access your bank account saying (deposit, withdraw, balance, transfer).')
          focus = cid
                talk_start = os.clock()          
      elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
          selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.')
        end


    


--------------------------------------Deposit----------------------------------------------


    if dep == 0 then
    if (msgcontains(msg, 'deposit')) and (focus == cid) and getDistanceToCreature(cid) < 4 then
      selfSay('How much do you wish to deposit?')
      dep = 1
      wit = 0
      trans = 0
      
          talk_start = os.clock()
        end
    end
    

      if dep == 1 then
    if (focus == cid) and getDistanceToCreature(cid) < 4 then
    n = getNumber(msg)
    if n ~= 0 then
      talk_start = os.clock()
      selfSay('Do you really want to deposit '..n..' gold pieces?')
      dep = 2
    end
    end
    end    

      
    if dep == 2 and (focus == cid) and getDistanceToCreature(cid) < 4 then
    if (msgcontains(msg, 'yes'))  then
      dep = 0
      talk_start = os.clock()
    if pay(cid,n) then
      addMoney(nome,n)
      selfSay('Deposit Succesful!')
    else
      selfSay('Sorry, you dont have enought money!')
    end
    end
    if (msgcontains(msg, 'no')) then
      selfSay('Ok then.')
      dep = 0
      talk_start = os.clock()
    end
    end

-------------------------------------------Withdraw---------------------------------------

    if wit == 0 then
    if (msgcontains(msg, 'withdraw')) and (focus == cid) and getDistanceToCreature(cid) < 4 then
      selfSay('How much do you wish to withdraw?')
      dep = 0
      trans = 0
      wit = 1
      
          talk_start = os.clock()
        end
    end

    
    if wit == 1 then
    if (focus == cid) and getDistanceToCreature(cid) < 4 then
    n = getNumber(msg)
    if n ~= 0 then
      talk_start = os.clock()
      selfSay('Do you really want to withdraw '..n..' gold pieces?')
      wit = 2
    end
    end
    end 

    
    if wit == 2 and (focus == cid) and getDistanceToCreature(cid) < 4 then
    if (msgcontains(msg, 'yes'))  then
      wit = 0
      talk_start = os.clock()
    if n <= getMoney(nome) then
      takeMoney(nome,n)

    gold = n
    plat = 0
    crys = {}
    crys[1] = 0
    i = 1

    repeat
    if gold >= 100 then
      plat = plat + 1 
      gold = gold - 100
    end
    until gold < 100
    

    repeat
    if plat >= 100 then
      if crys[i] == 100 then
        i = i + 1
        crys[i] = 0
      end
      crys[i] = crys[i] + 1
      plat = plat - 100
    end
    until plat < 100

    
    if crys[1] > 0 then
    repeat
      buy(cid,crys_id,crys[i],0)
    i = i-1
    until i == 0
    end

    if plat > 0 then
      buy(cid,plat_id,plat,0)
    end
    if gold > 0 then
      buy(cid,gold_id,gold,0)
    end
    

      selfSay('withdraw successful!')
    else
      selfSay('Sorry, you dont have enought money in your account!')
    end
    end
    if (msgcontains(msg, 'no')) then
      selfSay('Ok then.')
      wit = 0
      talk_start = os.clock()
    end
    end


-------------------------------------------Balance---------------------------------------

        if (msgcontains(msg, 'balance')) and (focus == cid) and getDistanceToCreature(cid) < 4 then 
        selfSay('You have got '..getMoney(nome)..' gold pieces in your bank account.')
               dep = 0
        wit = 0
        trans = 0
        
        talk_start = os.clock()
     end



-------------------------------------------Transfer---------------------------------------
    

    if trans == 4 and (focus == cid) and getDistanceToCreature(cid) < 4 then
        if io.open("data/bank/"..rec..".dat", "r") then
                io.close();
              else
            newAccount(rec)
        end

        if (msgcontains(msg, 'yes')) then
            Transfer(nome,rec,quant)
            selfSay('The money was successfuly transfered!')
            trans = 0
            talk_start = os.clock()  
        elseif (msgcontains(msg, 'no')) then
            selfSay('Ok then!')
            trans = 0
            talk_start = os.clock()  
        end
    end

    
    if trans == 3 and (focus == cid) and getDistanceToCreature(cid) < 4 then
        if io.open("data/players/"..msg..".xml", "r") then
                io.close();
            rec = msg
            selfSay('Do you want to transfer '..quant..' gps to '..rec..'?')
            trans = 4
            talk_start = os.clock()  
              else
            selfSay('This name does not exist!')
            trans = 0
            talk_start = os.clock()  
        end
    end



    if trans == 2 and (focus == cid) and getDistanceToCreature(cid) < 4 then
        if (msgcontains(msg, 'yes')) then
            if getMoney(nome) >= quant then
                selfSay('Who do you want to trasnfer the money to?')
                trans = 3
                talk_start = os.clock()  
            else
                selfSay('Sorry, you do not have enough money!')
                trans = 0
                talk_start = os.clock()  
            end
        elseif (msgcontains(msg, 'no')) then
            selfSay('Ok then!')
            talk_start = os.clock()  
            trans = 0
        end
    end

    
    
    if trans == 1 and (focus == cid) and getDistanceToCreature(cid) < 4 then
        quant = getNumber(msg)
        if quant > 0 then
            selfSay('Do you really want to transfer '..quant..' gold pieces?')
            trans = 2
            talk_start = os.clock()  
        end
    end



    if trans == 0 then
    if (msgcontains(msg, 'transfer')) and (focus == cid) and getDistanceToCreature(cid) < 4 then 
        selfSay('How much do you want to transfer?')
        dep = 0
        wit = 0
        trans = 1
        talk_start = os.clock()  
        
    end
    end



-------------------------------------------End--------------------------------------------
  
        if (msgcontains(msg, 'bye')) and (focus == cid) and getDistanceToCreature(cid) < 4 then 
          selfSay('Have a nice day Sir!')
          focus = 0
             dep = 0
      wit = 0
      trans = 0
      
        end
end

function onCreatureChangeOutfit(creature)

end


function onThink()
      if (os.clock() - talk_start) > 30 then
          if focus > 0 then
              selfSay('Next Please...')
          end
              focus = 0
                        dep = 0
                wit = 0
            trans = 0
            
      end
     if focus ~= 0 then
         if getDistanceToCreature(focus) > 5 then
             selfSay('Good bye then.')
             focus = 0
                        dep = 0
                wit = 0
            trans = 0
            
         end
     end
end


function getNumber(txt)
x = string.gsub(txt,"%a","")
x = tonumber(x)
if x ~= nill and x > 0 then
return x
else
return 0
end
end


function getMoney(name)
file = io.open("data/bank/"..name..".dat", "r")
x = file:read("*number")
file:close()
return x
end

function newAccount(name)
file = io.open("data/bank/"..name..".dat", "w")
file:write("0")
file:close()
return 1
end


function addMoney(name,money)
file = io.open("data/bank/"..name..".dat", "r")
x = file:read("*number")
x = x + money
file:close()

file = io.open("data/bank/"..name..".dat", "w")
file:write(x)
file:close()
return 1
end


function takeMoney(name,money)
file = io.open("data/bank/"..name..".dat", "r")
x = file:read("*number")
x = x - money
file:close()

file = io.open("data/bank/"..name..".dat", "w")
file:write(x)
file:close()
return 1
end


function Transfer(name1,name2,money)
takeMoney(name1,money)
addMoney(name2,money)

return 1
end

Nastepnie w data/npc towrzymy plik Bankier.xml w którym wpisujemy

Kod:

<?xml version="1.0"?>

<npc name="Bankier" script="data/npc/scripts/bank.lua" access="3" lookdir="2" autowalk="25">
    <mana now="800" max="800"/>
    <health now="200" max="200"/>
<look type="130" head="0" body="88" legs="88" feet="88" addons="1"/>
</npc>

BANNED

Offline

 

#2 2008-08-10 06:02:46

Gytumi

http://www.opentibia.grupy-dyskusyjne.pl/images/ranks/999_administrator.png

Zarejestrowany: 2008-07-20
Posty: 43
Punktów :   -1 

Re: [8.x] NPC Bankier

Ehh... Ten skrypt jest w każdym silniku Evolution by Aciek.


Pomogłem ? Daj +
Zawiodłem ? Daj -

Offline

 

#3 2010-07-27 23:39:40

Maciej

http://www.opentibia.grupy-dyskusyjne.pl/images/ranks/99_00.png

Zarejestrowany: 2010-07-27
Posty: 4
Punktów :   

Re: [8.x] NPC Bankier

zgadzam sie z tobom Gytumi

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi

[ Generated in 0.055 seconds, 10 queries executed ]


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.narwancy-team.pun.pl www.slodkiflirtrpg.pun.pl www.forum-websitex5.pun.pl www.bolecairsoft.pun.pl www.zimlublin.pun.pl