PDA

View Full Version : [Lua] Item Adder & Logging System



Wise
22-03-10, 04:28 AM
Item Adder

What is it?

- It is a Script that allows certain ranks to input a item id into a npc and get that item back in return.
- It logs the transaction with details of the character/account/time/item/date.

Cool, Can I use it for players?

Sure, you can just remove the requirement out of the script or change the rank requirement from a & az to a custom rank such as g for example which could be a VIP rank on your server.


http://i42.tinypic.com/iye6c5.png
http://i40.tinypic.com/15n5542.png

The SQL: *You need this to log the transactions!


SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `item_logs`;
CREATE TABLE `item_logs` (
`Entry` int(10) unsigned NOT NULL auto_increment COMMENT 'Unique ID',
`Character` text collate latin1_general_ci,
`Account` text collate latin1_general_ci,
`Rank` text collate latin1_general_ci,
`Item ID` decimal(10,0) default NULL,
`Date` date default NULL,
`Time` time default NULL,
PRIMARY KEY (`Entry`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
The Script:
Lua | local NPC_ID = 90000 functi - Ground Zero - xLzE5g86 - Pastebin.com (http://groundzero.pastebin.com/xLzE5g86)

OR


local NPC_ID = 90000

function NPC_OnGossipTalk(pUnit, event, player)
pUnit:GossipCreateMenu(1, player, 1)
pUnit:GossipMenuAddItem(1, "Claim a Item.", 1, 1)
pUnit:GossipMenuAddItem(1, "Nevermind.", 2, 0)
pUnit:GossipSendMenu(player)
end

function NPC_OnGossipSelect(pUnit, event, player, id, intid, code, pMisc)
if(intid == 1) then
if (player:GetGmRank() == 'a') or (player:GetGmRank() == 'az') then
local select = WorldDBQuery("SELECT * FROM items WHERE entry = "..code.."")
local PlayerName = player:GetName()
local AccountName = player:GetAccountName()
local Rank = player:GetGmRank()
if(select == NULL) then
player:SendBroadcastMessage("|cFFFF0000[NOTICE]:|r This item doesn't exist!")
player:GossipComplete()
else
player:AddItem(code, 1)
player:SendBroadcastMessage("|cFFFF0000[NOTICE]:|r You have recieved Item ID "..code.." and this transaction has been logged to the database.")
WorldDBQuery("INSERT INTO item_logs (`Entry`, `Character`, `Account`, `Rank`, `Item ID`, `Date`, `Time`) VALUES ('0', '"..PlayerName.."', '"..AccountName.."', '"..Rank.."', '"..code.."','"..os.date("%X").."', '"..os.date("%x").."');")
player:GossipComplete()
end
else
player:SendBroadcastMessage("|cFFFF0000[NOTICE]:|r You need to be a <GM> or <Admin> to use this Feature!")
end
end

if(intid == 2) then
player:GossipComplete()
end
end

RegisterUnitGossipEvent(NPC_ID, 1, "NPC_OnGossipTalk")
RegisterUnitGossipEvent(NPC_ID, 2, "NPC_OnGossipSelect")


Enjoy.

Thanks to pedobear (stoneharry) for fixing sql fails.
MAIN CREDITS To : GroundZero