Go Back   EQEmulator Home > EQEmulator Forums > Quests > Quests::Custom

Quests::Custom Custom Quests here

Thread Tools Display Modes
Prev Previous Post   Next Post Next
Old 03-12-2019, 03:24 PM
rudeboy88's Avatar
Join Date: Oct 2007
Location: West Freeport
Posts: 41
Default LUA Bucket Shared Banker

Hey everyone,

Put this one together as part of some NPCs I've been working at here and there for a casino. This one is simply a banker that converts your platinum to a Data Bucket Value based on your Account ID, so it doubles up as a shared bank.

note: With LUA I think you may need to either add a clause to give players the bucket referenced here or add it somewhere else before players can use it.

function event_say(e)
	if (e.message:findi("hail")) then
		e.other:Message(315, "Hail and well met mighty adventurer!  If you would like to [" .. eq.say_link("exchange",false,"exchange") .. "] platinum for credit, cash [" .. eq.say_link("out",false,"out") .. "], or know how much [" .. eq.say_link("credit",false,"credit") .. "] you have, I can help you with that.");
	if (e.message:findi("exchange")) then
		e.other:Message(315,"If you hand me platinum, I will convert it into credit.  Your money will be safe with me, but you can always cash out if you'd like.");
	if (e.message:findi("credit")) then
		local k = eq.get_data(e.other:AccountID() .. "_Casino");
		e.other:Message(315,"Currently your balance is " .. k ..".");
	if (e.message:findi("out")) then
		local cashout = eq.get_data(e.other:AccountID() .. "_Casino");
		e.other:GiveCash(0, 0, 0, tonumber(cashout));
		eq.set_data(e.other:AccountID() .. "_Casino", '0');
		e.other:Message(315,"Your balance has been cleared.  Enjoy the rest of your stay!");

function event_trade(e)
	local item_lib = require("items");
	if(e.trade.platinum ~= 0 and e.trade.platinum ~= nil) then
		local c2 = e.trade.platinum;
		local c3 = eq.get_data(e.other:AccountID() .. "_Casino");
		local c4 = c2 + c3;
		eq.set_data(e.other:AccountID() .. "_Casino", tostring(c4));
		e.other:Message(315,"Your platinum has been credited to your account.  Your current balance is: " .. eq.get_data(e.other:AccountID() .. "_Casino") .. ".");
	item_lib.return_items(e.self, e.other, e.trade);
I tend to use global_player.pl for connection-based checks for my LUA docs/Buckets since it's a convenient way to add em for all chars, if you'd like that then add this to your global_player.pl:

	$key = $client->AccountID() . "_Casino";
	if($client->AccountID() . "_Casino" == '')
    quest::set_data($key, 0);
Discord: 1augher | Dev, Darkonites
Reply With Quote

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -4. The time now is 05:29 AM.


Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
Powered by vBulletin®, Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3