• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Daopay help

Azcarer

HEJJJJ!! :D
Joined
Nov 3, 2008
Messages
871
Reaction score
3
Location
r u Pedobear
I have xampp 1.6.6 and I've installed gesior acc manager,

now I need to install daopay on gesior acc manager but I do not know how to do it...

if anyone knows how to do it please help!!
 
How to install:
1. Unpack "Gesior Shop System 0.1.0 PHP.zip" to your web directory (.../xampp/htdocs/gesiorshop/).
2. Open ".../gesiorshop/config/config.ini" and set valid directory with your server. Default config is:
Code:
Code:
server_path = "C:/Documents and Settings/Gesior/Pulpit/tfs 0.2.9/"
give_to_other_users = "yes"
shop_layout_name = "dirt"
admin_account = "666"

server_path - your directory with TFS, remember about "/" at end!
shop_layout_name - name of directory with layout, in this version are two layouts ("dirt"[not dirt :p ] and "natural")
admin_account - it's number of admin account, actually not in use
3. Open your OTS login.lua file from ".../your-ots-directory/data/creaturescripts/scripts/login.lua"
, delete all and put:
IF YOU USE TFS 0.2.9, 0.2.10, 0.2.11, 0.2.12, 0.2.13, 0.2.14 OR TFS 0.3 REV. 815:
Code:
-- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 17
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
SQL_COMUNICATION_INTERVAL = SQL_interval * 1000
function onLogin(cid)
	if(InitShopComunication == 0) then
		local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, {})
		InitShopComunication = eventServ
	end
	registerCreatureEvent(cid, "PlayerDeath")
	return TRUE
end

function sql_communication(parameters)
	dofile("./config.lua")
	env = assert(luasql.mysql())
	con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))
    result_plr = assert(con:execute("SELECT * FROM z_ots_comunication WHERE `type` = 'login';"))
    todo = result_plr:fetch({}, "a")
    while todo do
		id = tonumber(todo.id)
        action = tostring(todo.action)
		delete = tonumber(todo.delete_it)
		cid = getPlayerByName(tostring(todo.name))
		if isPlayer(cid) == TRUE then
			local itemtogive_id = tonumber(todo.param1)
			local itemtogive_count = tonumber(todo.param2)
			local container_id = tonumber(todo.param3)
			local container_count = tonumber(todo.param4)
			local add_item_type = tostring(todo.param5)
			local add_item_name = tostring(todo.param6)
			local received_item = 0
			local full_weight = 0
			if add_item_type == 'container' then
				container_weight = getItemWeight(container_id, 1)
				items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)
				full_weight = items_weight + container_weight
			else
				full_weight = getItemWeight(itemtogive_id, itemtogive_count)
			end
			local free_cap = getPlayerFreeCap(cid)
			if full_weight <= free_cap then
				if add_item_type == 'container' then
					local new_container = doCreateItemEx(container_id, 1)
					local iter = 0
					while iter ~= container_count do
						doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
						iter = iter + 1
					end
					received_item = doPlayerAddItemEx(cid, new_container)
				else
					local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
					received_item = doPlayerAddItemEx(cid, new_item)
				end
				if received_item == RETURNVALUE_NOERROR then
					doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')
					delete = assert(con:execute("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";"))
					assert(con:execute("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";"))
				else
					doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')
				end
			else
				doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')
			end
        	end
		todo = result_plr:fetch (todo, "a")
	end
	con:close()
	env:close()
	local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, parameters)
end
OR IF YOU USE NEW VERSION OF TFS 0.3:
Code:
-- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 17
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
SQL_COMUNICATION_INTERVAL = SQL_interval * 1000
function onLogin(cid)
	if(InitShopComunication == 0) then
		local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, {})
		InitShopComunication = eventServ
	end
	registerCreatureEvent(cid, "PlayerDeath")
	return TRUE
end

function sql_communication(parameters)
	local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")
	if(result_plr:getID() ~= -1) then
		while(true) do
			id = tonumber(result_plr:getDataInt("id"))
            action = tostring(result_plr:getDataString("action"))
			delete = tonumber(result_plr:getDataInt("delete_it"))
			cid = getPlayerByName(tostring(result_plr:getDataString("name")))
			if isPlayer(cid) == TRUE then
				if action == 'give_item' then
					local itemtogive_id = tonumber(result_plr:getDataInt("param1"))
					local itemtogive_count = tonumber(result_plr:getDataInt("param2"))
					local container_id = tonumber(result_plr:getDataInt("param3"))
					local container_count = tonumber(result_plr:getDataInt("param4"))
					local add_item_type = tostring(result_plr:getDataString("param5"))
					local add_item_name = tostring(result_plr:getDataString("param6"))
					local b_head_slot = getPlayerSlotItem(cid, 1)
					local b_necklace_slot = getPlayerSlotItem(cid, 2)
					local b_backpack_slot = getPlayerSlotItem(cid, 3)
					local b_armor_slot = getPlayerSlotItem(cid, 4)
					local b_right_hand = getPlayerSlotItem(cid, 5)
					local b_left_hand = getPlayerSlotItem(cid, 6)
					local b_legs_slot = getPlayerSlotItem(cid, 7)
					local b_feet_slot = getPlayerSlotItem(cid, 8)
					local b_ring_slot = getPlayerSlotItem(cid, 9)
					local b_arrow_slot = getPlayerSlotItem(cid, 10)
					if b_arrow_slot.itemid == 0 or (b_left_hand.itemid == 0 and b_right_hand.itemid == 0) then
						local full_weight = 0
						if add_item_type == 'container' then
							container_weight = getItemWeight(container_id, 1)
							items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)
							full_weight = items_weight + container_weight
						else
							full_weight = getItemWeight(itemtogive_id, itemtogive_count)
						end
						local free_cap = getPlayerFreeCap(cid)
						if full_weight <= free_cap then
							if add_item_type == 'container' then
								local new_container = doCreateItemEx(container_id)
								local iter = 0
								while iter ~= container_count do
									doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
									iter = iter + 1
								end
								doPlayerAddItemEx(cid, new_container)
								itemtogive_id = container_id
							else
								local addeditem = doPlayerAddItem(cid, itemtogive_id, itemtogive_count)
							end
							local head_slot = getPlayerSlotItem(cid, 1)
							local necklace_slot = getPlayerSlotItem(cid, 2)
							local backpack_slot = getPlayerSlotItem(cid, 3)
							local armor_slot = getPlayerSlotItem(cid, 4)
							local right_hand = getPlayerSlotItem(cid, 5)
							local left_hand = getPlayerSlotItem(cid, 6)
							local legs_slot = getPlayerSlotItem(cid, 7)
							local feet_slot = getPlayerSlotItem(cid, 8)
							local ring_slot = getPlayerSlotItem(cid, 9)
							local arrow_slot = getPlayerSlotItem(cid, 10)
							if ring_slot.itemid == itemtogive_id or feet_slot.itemid == itemtogive_id or legs_slot.itemid == itemtogive_id or armor_slot.itemid == itemtogive_id or necklace_slot.itemid == itemtogive_id or head_slot.itemid == itemtogive_id or arrow_slot.itemid == itemtogive_id or left_hand.itemid == itemtogive_id or right_hand.itemid == itemtogive_id or backpack_slot.itemid == itemtogive_id then
								if b_ring_slot.uid ~= ring_slot.uid or b_feet_slot.uid ~= feet_slot.uid or b_legs_slot.uid ~= legs_slot.uid or b_armor_slot.uid ~= armor_slot.uid or b_necklace_slot.uid ~= necklace_slot.uid or b_head_slot.uid ~= head_slot.uid or b_backpack_slot.uid ~= backpack_slot.uid or b_right_hand.uid ~= right_hand.uid or b_left_hand.uid ~= left_hand.uid or b_arrow_slot.uid ~= arrow_slot.uid then
								doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop. You should re-login now to become sure your new item will not disappear if any error occur.')
								db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
								db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
								else
									doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop not added. Unknown error occured. Wait about '.. SQL_interval ..' seconds. If error will occur again contact with admin. Error item ID is: '.. id ..'')
								end
							else
								doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop not added. Unknown error occured. Wait about '.. SQL_interval ..' seconds. If error will occur again contact with admin. Error item ID is: '.. id ..'')
							end
						else
							doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot or give to friend and wait about '.. SQL_interval ..' seconds to get it.')
						end
						
						
					else
						doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please take items from both hands or item from arrow slot and wait about '.. SQL_interval ..' seconds to get it.')
					end
				end
			end
            if not(result_plr:next()) then
				break
			end
		end
		result_plr:free()
    end
	local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, parameters)
end
3.1 CONFIGURE
At start of file posted above is part of shop config:
Code:
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 17
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
Default script connect to database 1 time every 30 seconds or doesn't connect (TFS 0.3 new rev).
(script connect[1 connnection]->give items/show error if no cap/free slot for new item - to all players online[1 connnection]->disconnect[0 connnection]->wait SQL_interval time{30 sec?}[0 connnection]->script connect[1 connnection]...)
3.2 Open your OTS global.lua file from ".../your-ots-directory/data/global.lua"
and add this line somewhere:
Code:
InitShopComunication = 0
4. In your MySQL database execute (with phpmyadmin or something like that):
IT'S SAME LIKE IN VERSION 0.0.3
Code:
CREATE TABLE `z_ots_comunication` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `type` varchar(255) NOT NULL,
  `action` varchar(255) NOT NULL,
  `param1` varchar(255) NOT NULL,
  `param2` varchar(255) NOT NULL,
  `param3` varchar(255) NOT NULL,
  `param4` varchar(255) NOT NULL,
  `param5` varchar(255) NOT NULL,
  `param6` varchar(255) NOT NULL,
  `param7` varchar(255) NOT NULL,
  `delete_it` int(2) NOT NULL default '1',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

and:
IT'S SAME LIKE IN VERSION 0.0.3
Code:
CREATE TABLE `z_shop_offer` (
  `id` int(11) NOT NULL auto_increment,
  `points` int(11) NOT NULL default '0',
  `itemid1` int(11) NOT NULL default '0',
  `count1` int(11) NOT NULL default '0',
  `itemid2` int(11) NOT NULL default '0',
  `count2` int(11) NOT NULL default '0',
  `offer_type` varchar(255) default NULL,
  `offer_description` text NOT NULL,
  `offer_name` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
and:
IT'S SAME LIKE IN VERSION 0.0.3
Code:
ALTER TABLE `accounts` ADD `premium_points` INT( 11 ) NOT NULL DEFAULT '0';
and(NEW):
Code:
CREATE TABLE `z_shop_history_item` (
  `id` int(11) NOT NULL auto_increment,
  `to_name` varchar(255) NOT NULL default '0',
  `to_account` int(11) NOT NULL default '0',
  `from_nick` varchar(255) NOT NULL,
  `from_account` int(11) NOT NULL default '0',
  `price` int(11) NOT NULL default '0',
  `offer_id` int(11) NOT NULL default '0',
  `trans_state` varchar(255) NOT NULL,
  `trans_start` int(11) NOT NULL default '0',
  `trans_real` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
and(NEW):
Code:
CREATE TABLE `z_shop_history_pacc` (
  `id` int(11) NOT NULL auto_increment,
  `to_name` varchar(255) NOT NULL default '0',
  `to_account` int(11) NOT NULL default '0',
  `from_nick` varchar(255) NOT NULL,
  `from_account` int(11) NOT NULL default '0',
  `price` int(11) NOT NULL default '0',
  `pacc_days` int(11) NOT NULL default '0',
  `trans_state` varchar(255) NOT NULL,
  `trans_start` int(11) NOT NULL default '0',
  `trans_real` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
5. End of installation. Open page index.php from PHP script directory in your internet explorer. ( http://127.0.0.1/gesiorshop/ )

About script:
-work with MySQL servers (tested on TFS 0.2.10/0.2.11, XAMPP 1.6.5 [Apache2 - PHP5!])
-items can't disappear like in other "item shop" scripts
-doesn't use too much CPU (run 1 time every XX seconds)

What my script do:
-give item/pacc in game when player buy it on site
-you can add many items with diffrent prices (like: Golden Armor - 5 points, 10 Days of PACC - 25 points, 5 days of pacc - 15 points)
-load list of offers from database

Sample of offer configuration. Execute it in MySQL OTS database:
Code:
INSERT INTO `z_shop_offer`(`id`,`points`,`itemid1` ,`count1` ,`itemid2` ,`count2` ,`offer_type` ,`offer_description` ,`offer_name`)
VALUES (NULL , '10', '0', '12', '0', '0', 'pacc', 'Buy 12 days of premium account for yourself or your friend!', '12 Days of PACC'
), (NULL , '40', '5890', '50', '0', '0', 'item', 'Buy 50 Chicken Feathers!', '50x Chicken Feather'
), (NULL , '100', '2466', '1', '1987', '8', 'container', 'Buy bag with 8 Golden Armor! Become a rich mother fucker!', '8x Golden Armor');

When you add new PACC offer you must set in offer table in database:
id - empty (auto_incement)
points - how many points cost this offer
count1 - number of PACC days this offer give
offer_type = "pacc"
offer_description - description of new pacc offer like: "Buy 5 days of PACC. With PACC you can visit new areas, fight stronger monsters and promote your character!"
offer_name - name of new pacc offer like: "5 Days of PACC"

When you add new ITEM offer you must set in offer table in database:
id - empty (auto_increment)
points - how many points cost this offer
itemid1 - ID of created item on OTS
count1 - "count" of item on OTS, like SD with 15 shots has count "15", normal item (bag, crossbow, golden armor...) has count "1", count 3 will not create 3 golden armors, use 'container' to give more items
offer_type = "item"
offer_description - description of new item offer like: "Buy Golden Armor and become great knight! Fight stonger mosters and lose less HP!"
offer_name - name of new pacc offer like: "1x Golden Armor"

When you add new CONTAINER offer you must set in offer table in database:
id - empty (auto_increment)
points - how many points cost this offer
itemid1 - ID of created items in container
count1 - "count"/"type" of items in container, like SD with 15 shots has count "15", normal item (bag, crossbow, golden armor...) has count "1", count 3 will not create 3 golden armors, use "count2" to give more items
itemid2 - ID of created container (like bag: 1987, ITEM MUST BE CONTAINER AND MUST BE WEARABLE!)
count2 - number of items in container, if you use "bag" (id 1987) as a container you can put 1-8 items, if backpack 1-20, dont set more than max. number of items in container!
offer_type = "container"
offer_description - description of container offer like: "Buy 8 Golden Armors in bag and become rich player! Fight stonger mosters and lose less HP or sell it for much cash!"
offer_name - name of new pacc offer like: "8x Golden Armor"

All credits to Gesior.
 

Attachments

  • Gesior Shop System 0.1.0 PHP.zip
    145.1 KB · Views: 12 · VirusTotal
OOOOO Thank you very much ^^ :)...

>>> one thing is wrong!!
Fel

SQL-fråga:
ALTER TABLE `accounts` ADD `premium_points` INT( 11 ) NOT NULL DEFAULT '0'
MySQL sa:
#1060 - Duplicate column name 'premium_points'
 
Last edited:
Back
Top