- Joined
- Apr 2, 2012
- Messages
- 94
- Reaction score
- 26
Add Function this to loong_db
MySQL Workbench 5.2 CE
How to use in MySQL Workbench 5.2 CE
Use PHP
RETURN 0-19 OK IN INSERT to slot index bag mall +1
RETURN 255 ERROR Bag Full
RETURN -1 ERROR Null RoleID Or AccountID
Thank Seymour
use Delphi
MySQL Workbench 5.2 CE
PHP:
delimiter $$
CREATE FUNCTION `Add_Items_function`(
Num_ INTEGER,
TypeID_ INTEGER,
Bind_ INTEGER,
OwnerID_ INTEGER,
AccountID_ INTEGER) RETURNS int(11)
BEGIN
DECLARE TEST_ID INTEGER ;
DECLARE LAST_ID INTEGER ;
DECLARE ii,i2,i3 INTEGER ;
SET TEST_ID = 0;
SET LAST_ID = 19;
SET ii = 20;
SET i2 = 20;
SET i3 = IFNULL((SELECT
MAX(`roledata`.`RoleID`)
FROM
`loong_db`.`roledata`
WHERE
`roledata`.`RoleID` = OwnerID_
AND
`roledata`.`AccountID` = AccountID_),-1);
myloop:WHILE TEST_ID <= LAST_ID DO
SET ii = IFNULL((SELECT
MAX(`item`.`Suffix`)
FROM
`loong_db`.`item`
WHERE
`item`.`Suffix` = TEST_ID
AND `item`.`OwnerID` = OwnerID_
AND `item`.`ContainerTypeID` = 3),20);
IF ii = 20 THEN
SET i2 = TEST_ID;
LEAVE myloop;
END IF;
SET TEST_ID = TEST_ID + 1;
END WHILE;
IF ((i2 <= 19) AND (i3 <> -1)) THEN
INSERT INTO `loong_db`.`item`
(
`SerialNum`,
`Num`,
`TypeID`,
`Bind`,
`LockStat`,
`UnlockTime`,
`UseTimes`,
`FirstGainTime`,
`CreateMode`,
`CreateID`,
`CreatorID`,
`CreateTime`,
`OwnerID`,
`AccountID`,
`ContainerTypeID`,
`Suffix`,
`NameID`)
VALUES
(
UNIX_TIMESTAMP(),
Num_,
TypeID_,
Bind_,
0,
0,
0,
NOW(),
0,
4294967295,
4294967295,
NOW(),
OwnerID_,
AccountID_,
3,
i2,
4294967295
);
ELSE
IF i3 = OwnerID_ THEN
SET i2 = 255;
ELSEIF i3 = -1 THEN
SET i2 = -1;
END IF;
END IF;
RETURN i2;
END$$
How to use in MySQL Workbench 5.2 CE
PHP:
Use loong_db;
SELECT Add_Items_function(1,1421453,1,56,52);
/*
Num_ INTEGER, 1-9999 item count
TypeID_ INTEGER, 1421453 Esteemed Thunder Stone equip_name.xml ,item_name.xml
Bind_ INTEGER, 1 2=Lock
OwnerID_ INTEGER, 56 ID charater
AccountID_ INTEGER 52 id account
*/
PHP:
$Q='SELECT Add_Items_function(1,1421453,1,56,52)';
RETURN 0-19 OK IN INSERT to slot index bag mall +1
RETURN 255 ERROR Bag Full
RETURN -1 ERROR Null RoleID Or AccountID
Thank Seymour
use Delphi
PHP:
procedure TForm2.Button15Click(Sender: TObject);
var buttonSelected1,i:integer;
after:string;
begin
buttonSelected1 := MessageDlg('Confirmation',mtError, mbOKCancel, 0);
if buttonSelected1 = mrCancel then exit;
after := 'SELECT `roledata`.`AccountID`, `roledata`.`RoleID` FROM `loong_db`.`roledata` WHERE `roledata`.`RoleName` = :nam';
ZQuery1.Active:=false;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Add(after);
ZQuery1.ParamByName('nam').AsString:=Edit5.Text;
ZQuery1.Open;
ZQuery1.First;
RoleName:=Edit5.Text;
while(not ZQuery1.EOF)do begin
AccountID:=ZQuery1.Fields[0].AsInteger;
RoleID:= ZQuery1.Fields[1].AsInteger;
ZQuery1.Next;
end;
after := 'SELECT Add_Items_function(:cou, :typ, :bid, :rid, :uid)';
ZQuery1.Active:=false;
ZQuery1.SQL.Clear;
ZQuery1.Params.Clear;
ZQuery1.SQL.Add(after);
ZQuery1.ParamByName('cou').AsInteger:=Strtoint(Edit3.Text);
ZQuery1.ParamByName('typ').AsInteger:=Strtoint(ComboBox6.Text);
ZQuery1.ParamByName('bid').AsInteger:=ComboBox8.ItemIndex;
ZQuery1.ParamByName('rid').AsInteger:=RoleID;
ZQuery1.ParamByName('uid').AsInteger:=AccountID;
ZQuery1.Open;
ZQuery1.First;
while(not ZQuery1.EOF)do begin
i := ZQuery1.Fields[0].AsInteger;
ZQuery1.Next;
end;
if i=-1 then
after:='Char Name Wong!'
else if i=255 then
after:='Bag Full!'
else
after:='OK Add item to slot bag '+inttostr(i+1);
Label26.Caption:='MSG:'+after;
end;
Attachments
You must be registered for see attachments list
Last edited by a moderator: