Tested and developed for tfs 0.3.6
It might work for 0.4 aswell
none vocation players cant transfer to other players, but if you have a vocation you can transfer money to any player even players whit none vocation.
There is no limit for non vocation players to deposit money to the bank account, thay just cant transfer money. It could be possible to abuse this script, if used on rook.
If botting money in rook and then make a lvl 8 and go to main, but i doubt ppl will do that on a OT
You need to fix a bug inside lib/050-function.lua
Change:
To:
above:
You have to add this:
Npc script:
Let me know if you have problem implement this code
It might work for 0.4 aswell
none vocation players cant transfer to other players, but if you have a vocation you can transfer money to any player even players whit none vocation.
There is no limit for non vocation players to deposit money to the bank account, thay just cant transfer money. It could be possible to abuse this script, if used on rook.
If botting money in rook and then make a lvl 8 and go to main, but i doubt ppl will do that on a OT
You need to fix a bug inside lib/050-function.lua
Change:
Code:
function playerExists(name)
return getPlayerGUIDByName(name) ~= 0
end
Code:
function playerExists(name)
return getPlayerGUIDByName(name) ~= nil
end
above:
Code:
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
Code:
local Topic = {}
local Price = {}
local Transfer = {}
Npc script:
Code:
-- Banking system start
elseif (npcHandler:isFocused(cid) and (msgcontains(msg, "balance"))) then
Price[cid] = getPlayerBalance(cid)
if (Price[cid] >= 100000) then
npcHandler:say("You certainly have made a pretty penny. Your account balance is "..Price[cid].." gold.", cid)
else
npcHandler:say("Your account balance is "..Price[cid].." gold.", cid)
end
Price[cid] = nil
Topic[cid] = nil
elseif (npcHandler:isFocused(cid) and (msgcontains(msg, "deposit all"))) then
Price[cid] = getPlayerMoney(cid)
if (Price[cid] < 1) then
npcHandler:say("You don't have any gold with you.", cid)
Price[cid] = nil
Topic[cid] = nil
else
npcHandler:say("Would you really like to deposit "..Price[cid].." gold?", cid)
Topic[cid] = 101
end
elseif (npcHandler:isFocused(cid) and (msgcontains(msg, "deposit"))) then
npcHandler:say("Please tell me how much gold it is you would like to deposit.", cid)
Topic[cid] = 100
elseif (npcHandler:isFocused(cid) and Topic[cid] == 100 and (msgcontains(msg, msg))) then
if (isNumber(msg)) then
Price[cid] = tonumber(msg)
if (Price[cid] > 0) then
if (getPlayerMoney(cid) >= Price[cid]) then
npcHandler:say("Would you really like to deposit "..Price[cid].." gold?", cid)
Topic[cid] = 101
else
npcHandler:say("You do not have enough gold.", cid)
Price[cid] = nil
end
else
npcHandler:say("Please tell me how much gold it is you would like to deposit.", cid)
Price[cid] = nil
end
else
npcHandler:say("Please tell me how much gold it is you would like to deposit.", cid)
Price[cid] = nil
end
elseif (npcHandler:isFocused(cid) and Topic[cid] == 101 and (msgcontains(msg, "yes$"))) then
if (getPlayerMoney(cid) >= Price[cid]) then
npcHandler:say("Alright, we have added the amount of "..Price[cid].." gold to your {balance}. You can {withdraw} your money anytime you want to.", cid)
doPlayerDepositMoney(cid, Price[cid])
Price[cid] = nil
Topic[cid] = nil
else
npcHandler:say("I am inconsolable, but it seems you have lost your gold. I hope you get it back.", cid)
Price[cid] = nil
Topic[cid] = nil
end
elseif (npcHandler:isFocused(cid) and Topic[cid] == 101 and (msgcontains(msg, "no$"))) then
npcHandler:say("As you wish. Is there something else I can do for you?", cid)
Price[cid] = nil
Topic[cid] = nil
elseif (npcHandler:isFocused(cid) and (msgcontains(msg, "withdraw"))) then
if (getPlayerBalance(cid) > 0) then
npcHandler:say("Please tell me how much gold you would like to withdraw.", cid)
Topic[cid] = 102
else
npcHandler:say("You don't have any money on your bank account.", cid)
end
elseif (npcHandler:isFocused(cid) and Topic[cid] == 102 and (msgcontains(msg, msg))) then
if (isNumber(msg)) then
Price[cid] = tonumber(msg)
if (Price[cid] > 0) then
if (getPlayerBalance(cid) >= Price[cid]) then
npcHandler:say("Are you sure you wish to withdraw "..Price[cid].." gold from your bank account?", cid)
Topic[cid] = 103
else
npcHandler:say("There is not enough gold on your account.", cid)
Price[cid] = nil
end
else
npcHandler:say("Please tell me how much gold you would like to withdraw.", cid)
Price[cid] = nil
end
else
npcHandler:say("Please tell me how much gold you would like to withdraw.", cid)
Price[cid] = nil
end
elseif (npcHandler:isFocused(cid) and Topic[cid] == 103 and (msgcontains(msg, "yes$"))) then
npcHandler:say("Here you are, "..Price[cid].." gold. Please let me know if there is something else I can do for you.", cid)
doPlayerWithdrawMoney(cid, Price[cid])
Price[cid] = nil
Topic[cid] = nil
elseif (npcHandler:isFocused(cid) and Topic[cid] == 103 and (msgcontains(msg, "no$"))) then
npcHandler:say("As you wish. Is there something else I can do for you?", cid)
Price[cid] = nil
Topic[cid] = nil
elseif (npcHandler:isFocused(cid) and (msgcontains(msg, "transfer"))) then
if (getPlayerVocation(cid) >= 1) then
npcHandler:say("Please tell me the amount of gold you would like to transfer.", cid)
Topic[cid] = 104
else
npcHandler:say("Your vocation cannot transfer money.", cid)
end
elseif (npcHandler:isFocused(cid) and Topic[cid] == 104 and (msgcontains(msg, msg))) then
if (isNumber(msg)) then
Price[cid] = tonumber(msg)
if (Price[cid] > 0) then
if (getPlayerBalance(cid) >= Price[cid]) then
npcHandler:say("Who would you like transfer "..Price[cid].." gold to?", cid)
Topic[cid] = 105
else
npcHandler:say("There is not enough gold on your account.", cid)
Price[cid] = nil
end
else
npcHandler:say("Please tell me the amount of gold you would like to transfer.", cid)
Price[cid] = nil
end
else
npcHandler:say("Please tell me the amount of gold you would like to transfer.", cid)
Price[cid] = nil
end
elseif (npcHandler:isFocused(cid) and Topic[cid] == 105 and (msgcontains(msg, msg))) then
Transfer[cid] = msg
-- Note: playerExists() on 0.3.6 needs to be fixed inside lib/050-function.lua (Change: return getPlayerGUIDByName(name) ~= 0 to: return getPlayerGUIDByName(name) ~= nil)
if (playerExists(Transfer[cid])) then
Transfer[cid] = getPlayerGUIDByName(Transfer[cid])
Transfer[cid] = getPlayerNameByGUID(Transfer[cid])
if (Transfer[cid] == "Account Manager" or Transfer[cid] == "Rook Sample" or Transfer[cid] == "Sorcerer Sample" or Transfer[cid] == "Druid Sample" or Transfer[cid] == "Paladin Sample" or Transfer[cid] == "Knight Sample") then
npcHandler:say("This player does not exist.", cid)
Price[cid] = nil
Topic[cid] = nil
Transfer[cid] = nil
else
npcHandler:say("So you would like to transfer "..Price[cid].." gold to "..Transfer[cid].."?", cid)
Topic[cid] = 106
end
else
npcHandler:say("This player does not exist.", cid)
Price[cid] = nil
Topic[cid] = nil
Transfer[cid] = nil
end
elseif (npcHandler:isFocused(cid) and Topic[cid] == 106 and (msgcontains(msg, "yes$"))) then
npcHandler:say("You have transferred "..Price[cid].." gold to "..Transfer[cid]..".", cid)
doPlayerTransferMoneyTo(cid, Transfer[cid], Price[cid])
Price[cid] = nil
Topic[cid] = nil
Transfer[cid] = nil
elseif (npcHandler:isFocused(cid) and Topic[cid] == 106 and (msgcontains(msg, "no$"))) then
npcHandler:say("Ok. What is next?", cid)
Price[cid] = nil
Topic[cid] = nil
Transfer[cid] = nil
-- Banking system end
Let me know if you have problem implement this code
Last edited: