Short Guide:
1)lastlogin from point set it to int(11)
2)replace routines recordonline and recordoffline
3)You might need to adjust the recordoffline procedure because is never tested for Cubi is tested for credit.
recordonlinerecordofflineCode:DROP PROCEDURE `recordonline`// CREATE DEFINER=`root`@`localhost` PROCEDURE `recordonline`(in uid1 INTEGER, in aid1 INTEGER, inout zoneid1 INTEGER, inout zonelocalid1 INTEGER, inout overwrite INTEGER) BEGIN DECLARE tmp_zoneid INTEGER; DECLARE tmp_zonelocalid INTEGER; DECLARE rowcount INTEGER; START TRANSACTION; SELECT SQL_CALC_FOUND_ROWS zoneid, zonelocalid INTO tmp_zoneid, tmp_zonelocalid FROM point WHERE uid = uid1 and aid = aid1; INSERT INTO online (ID) VALUES (uid1); SET rowcount = FOUND_ROWS(); IF rowcount = 0 THEN INSERT INTO point (uid, aid, time, zoneid, zonelocalid, lastlogin) VALUES (uid1, aid1, 0, zoneid1, zonelocalid1, unix_timestamp()); ELSE IF tmp_zoneid IS NULL OR overwrite = 1 THEN UPDATE point SET zoneid = zoneid1, zonelocalid = zonelocalid1, lastlogin = unix_timestamp() WHERE uid = uid1 AND aid = aid1; END IF; END IF; IF tmp_zoneid IS NULL THEN SET overwrite = 1; ELSE SET zoneid1 = tmp_zoneid; SET zonelocalid1 = tmp_zonelocalid; END IF; COMMIT; ENDHave fun.Code:DROP PROCEDURE `recordoffline`// CREATE DEFINER=`root`@`localhost` PROCEDURE `recordoffline`(in uid1 INTEGER, in aid1 INTEGER, inout zoneid1 INTEGER, inout zonelocalid1 INTEGER, inout overwrite1 INTEGER) BEGIN DECLARE rowcount INTEGER; DECLARE pri INT(11); START TRANSACTION; UPDATE point SET zoneid = NULL, zonelocalid = NULL WHERE uid = uid1 AND aid = aid1 AND zoneid = zoneid1; SELECT lastlogin FROM point WHERE uid = uid1 INTO @Q; SET @R = unix_timestamp(); SET @C = @Q; SET @F = @R - @C; SET @A = @F / 3600; DELETE FROM online WHERE ID = uid1; SET rowcount = ROW_COUNT(); IF overwrite1 = rowcount THEN SELECT zoneid, zonelocalid INTO zoneid1, zonelocalid1 FROM point WHERE uid = uid1 AND aid = aid1; DELETE FROM online WHERE ID = uid1; END IF; IF (@A >= @A && @Q = @Q && @R = @R && @R >= @C) THEN SET @B = @A call usecash (uid1 , 1, 0, 1, 0, @B, 1, @error); ELSE SET @B = 0; END IF; COMMIT; END


Reply With Quote

