• 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!

TalkAction (6.1) Cyber's REPSystem w/Opinion Points for 0.4 && mAAC

Is this the best reputation system?

  • Yes.

    Votes: 131 66.2%
  • No.

    Votes: 30 15.2%
  • It's good but can be improved.

    Votes: 37 18.7%

  • Total voters
    198
  • Poll closed .
Status
Not open for further replies.
seems its a problem with newer TFSrevs, hope you can update this, I really like this rep system.
 
it's happening because of getPlayerLevel(target) >= rep.pvpLevel, don't know why because it checks for isPlayer(target) before
 
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<!-- To use this system, execute query:
 ALTER TABLE `players` ADD COLUMN `rep` INT( 11 ) NOT NULL DEFAULT '0' COMMENT 'Cyber''s REPSystem © OTLand.net';
 -->
<mod name="Cyber's REP System" revision="6.1" author="Cybermaster" web="otland.net" enabled="yes" 
released="August2010" credits="Sync;Shawak;Chris;nsanee"><config name="repSystem"><![CDATA[
    rep = {
        --[[ CONFIG ]]--
		interval = 3 * 60, --This is [3] hours, in minutes. Time to be online to gain [1] Opinion Point.
        minLevel = 20, --From this level onwards player can use commands
        pvpLevel = 30, --Minimum level for PVP Rep'ing
        required = 5, --Opinion points required to repute with talkaction command
		exhaustion = 60, --Seconds to wait to be able to use !rep command again
		power = false, --Use RepPower Feature? OPTIONS 1:true 2:false
        --[[ STORAGES ]]--
		exhaust = 5045, --Exhaustion for !rep command.
		lastName = 5036, --Used to store the last repped's GUID
        lastKilled = 5037, --Used to store the last killed's GUID
        opinion = 5038, --Used to store the opinion points
        online = 5039, --Used to store online minutes
     
		autoOpinion = function(cid)
			if not isPlayer(cid) then 
				return true 
			end
			doCreatureSetStorage(cid, rep.online, getCreatureStorage(cid, rep.online)+1)
			if getCreatureStorage(cid, rep.online) >= rep.interval then
				doCreatureSetStorage(cid, rep.online, 0)
				doSendAnimatedText(getThingPos(cid), '+1', TEXTCOLOR_LIGHTBLUE)
				doCreatureSetStorage(cid, rep.opinion, getCreatureStorage(cid, rep.opinion)+1)
				doPlayerSendTextMessage(cid, 27, 'You have just obtained an opinion point.')
			end
			repEvent = addEvent(rep.autoOpinion, 60 * 1000, cid)
		end,
		
		getArticle = function(cid, uppercase)
            return (getPlayerSex(cid) ==  0 and (uppercase and 'Sh' or 'sh') or (uppercase and 'H' or 'h')) .. 'e'
        end,
   
        getPoints = function(cid)
            local result = db.getResult('SELECT `rep` FROM `players` WHERE `id` = '.. getPlayerGUID(cid))
			local data = result:getDataInt('rep')
			result:free()
			return data
        end,
   
        getPower = function(points)
            local power = {{0,1},{300,2},{500,3},{1000,4},{1500,5},{2000,6},{5000,7}}
            table.sort(power, function(a, b) return a[1] > b[1] end)
            for _, t in ipairs(power) do     
                if math.abs(points) >= t[1] then
                    return t[2]
                end
            end
            return power[1][2]
        end,
   
        getRank = function(points)
            local ranks = {
                {-5000, 'Power Abuser (*<<==========)'},
                {-2000, 'Evil (=*<==========)'},
                {-1500, 'Slayer (==*==========)'},
                {-1000, 'Killer (===|=========)'},
                {-500, 	'Villain (====|========)'},
                {-300, 	'Creeping (=====|=======)'},
                {0, 	'Unknown (======|======)'},
                {300, 	'Avowed (=======|=====)'},
                {500, 	'Popular (========|====)'},
                {1000, 	'Hailed (=========|===)'},
                {1500, 	'Acclaimed (==========+==)'},
                {2000, 	'Hero (==========>+=)'},
                {5000,	'Legend (==========>>+)'}
            }
            if points > -1 then
                table.sort(ranks, function(a, b) return a[1] > b[1] end)
                for _, t in ipairs(ranks) do if points >= t[1] then return t[2] end end
            else
                table.sort(ranks, function(a, b) return a[1] < b[1] end)
                for _, t in ipairs(ranks) do if points <= t[1] then return t[2] end end
            end        
            return ranks[1][2]
        end,
   
        set = function(cid, points)
            db.executeQuery('UPDATE `players` SET `rep` = ' .. points .. ' WHERE `id` = ' .. getPlayerGUID(cid))
        end,

        add = function(cid, amount, color)
            db.executeQuery('UPDATE `players` SET `rep` = `rep` + ' .. amount .. ' WHERE `id` = ' .. getPlayerGUID(cid))
            doSendAnimatedText(getThingPos(cid), '+REP', color and color or math.random(255))
            doPlayerSendCancel(cid, 'You have just been hailed and gained '.. amount ..' reputation points.')
        end,
   
        remove = function(cid, amount, color)
            db.executeQuery('UPDATE `players` SET `rep` = `rep` - ' .. amount .. ' WHERE `id` = ' .. getPlayerGUID(cid))
            doSendAnimatedText(getThingPos(cid), '-REP',  color and color or math.random(255))
            doPlayerSendCancel(cid, 'You have just been repudiated and lost '.. amount ..' reputation points.')
        end,
		
		format = function(str)
			str = tostring(str):reverse()
			str = str:gsub("(%d)(%d)(%d)", '%1%2%3' .. (',' or ' '), math.ceil(str:len() / 3)-1)
			return str:reverse()
		end,
    }
]]></config>

<event type="login" name="repRegister" event="script"><![CDATA[
    domodlib('repSystem')
    function onLogin(cid)
        repEvent = addEvent(rep.autoOpinion, 60 * 1000, cid)
		if getCreatureStorage(cid, rep.opinion) == -1 then
            doCreatureSetStorage(cid, rep.online, 0)
			doCreatureSetStorage(cid, rep.opinion, 0)
        end
        registerCreatureEvent(cid, "repLook")
		registerCreatureEvent(cid, "repKill")
		registerCreatureEvent(cid, "repMonster")
        return true
    end
]]></event>

<event type="logout" name="repCancel" event="script"><![CDATA[
	domodlib('repSystem')
	function onLogout(cid)
		stopEvent(repEvent)
		return true
	end
]]></event>
       
<event type="look" name="repLook" event="script"><![CDATA[
    domodlib('repSystem')
    function onLook(cid, thing, position, lookDistance)
        if isPlayer(thing.uid) and thing.uid ~= cid then
            doPlayerSetSpecialDescription(thing.uid,'\n'.. rep.getArticle(thing.uid, true)..' is ' .. rep.getRank(rep.getPoints(thing.uid)) ..'.')
			return true
		elseif thing.uid == cid then     
			local string = 'You see yourself.'
			if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
				string = string..' You are '.. getPlayerGroupName(cid) ..'.'
			elseif getPlayerVocation(cid) ~= 0 then
				string = string..' You are '.. getPlayerVocationName(cid) ..'.'
			else
				string = string..' You have no vocation.'
			end
			string = string..' You are '.. rep.getRank(rep.getPoints(cid)) ..'.'
	
			if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
				string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.'
			end
	
			if getPlayerGuildId(cid) > 0 then 
				string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
				string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
			end 
	
			if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
				string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
				string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
			end
	
			if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
				string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
			end
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)  
			return false
		end
		return true
    end]]>
</event>
               
<event type="kill" name="repKill" event="script"><![CDATA[
    domodlib('repSystem')
    local t = {
        [SKULL_WHITE] = 15,
        [SKULL_RED] = 20,
        [SKULL_BLACK] = 40,
        [SKULL_NONE] = -30,
    }

    function onKill(cid, target, lastHit)
        if isPlayer(cid) and isPlayer(target) and getPlayerIp(cid) ~= getPlayerIp(target) and getCreatureStorage(cid, rep.lastKilled) ~= getPlayerGUID(target) and not getTileInfo(getThingPos(cid)).nopvp or not getTileInfo(getThingPos(cid)).optional then
        --THE KILLER
            if t[getCreatureSkullType(target)] and getPlayerLevel(target) >= rep.pvpLevel then
                doSendAnimatedText(getThingPos(cid), getCreatureSkullType(target) == 0 and '-REP' or '+REP', math.random(255))
                doCreatureSetStorage(cid, rep.lastKilled, getPlayerGUID(target))
				rep.set(cid, rep.getPoints(cid)+t[getCreatureSkullType(target)])
                doPlayerSendCancel(cid, 'You '.. (getCreatureSkullType(target) == 0 and 'lose' or 'gain') ..' reputation because you killed a player.')
            end
        --THE VICTIM
            if rep.getPoints(target) == 0 then
                return true
            elseif rep.getPoints(target) > 0 then
                rep.remove(target, 5, TEXTCOLOR_RED)
                doPlayerSendCancel(target, 'You lose reputation because you were killed by a player.')
            else
                rep.add(target, 5, TEXTCOLOR_LIGHTBLUE)
                doPlayerSendCancel(target, 'You lose reputation because you were killed by a player.')
            end
        end
        return true
    end]]>
</event>
               
<event type="kill" name="repMonster" event="script"><![CDATA[
    domodlib('repSystem')
    local monster = { --add monsters names only in lowercase
        ['demon'] = 3,
        ['behemoth'] = 4,
        ['hellfire fighter'] = 5,
        ['orshabaal'] = 10,
    }
    function onKill(cid, target, lastHit)
        if isPlayer(cid) and isMonster(target) and monster[getCreatureName(target):lower()] and lastHit then
            rep.add(cid, monster[getCreatureName(target):lower()])
        end
        return true
    end]]>
</event>
       
<talkaction log="yes" words="/hail;/fuck;/set" access="4" event="buffer">
	<![CDATA[
		domodlib('repSystem')
        if param == '' then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,'[REP_SYSTEM] You must write a player\'s name.')
            return true
        end

        local t = string.explode(param, ',')
        local tid = getPlayerByNameWildcard(t[1])

        if not isPlayer(tid) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '[REP_SYSTEM] Player ' .. param .. ' not found.')
            return true
        end
       
        if not t[2] and isPlayer(tid) then  
            if words == '/hail' then
                rep.add(tid, 5, TEXTCOLOR_TEAL)
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '[REP_SYSTEM] You added +5 rep points to ' .. getPlayerName(tid) .. ', and now ' .. rep.getArticle(tid, false) .. ' has ' .. rep.getPoints(tid) .. ' points.')
                return true
            end
               
            if words == '/fuck' then
                rep.remove(tid, 5, TEXTCOLOR_RED)
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '[REP_SYSTEM] You removed -5 rep points to ' .. getPlayerName(tid) .. ', and now ' .. rep.getArticle(tid, false) .. ' has ' .. rep.getPoints(tid) .. ' points.')
                return true
            end
        end
       
        if t[2] and isInArray({'/set','/hail','fuck'}, words) then
            if not tonumber(t[2]) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '[REP_SYSTEM] Reputation amount is invalid.')
				return true
            end                                    
        end
       
        if words == '/hail' then
            rep.add(tid, t[2], TEXTCOLOR_TEAL)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '[REP_SYSTEM] You added ' .. t[2] .. ' rep points to ' .. getPlayerName(tid) .. ', and now ' .. rep.getArticle(tid, false) .. ' has ' .. rep.getPoints(tid) .. ' points.')
			return true
        end
               
        if words == '/fuck' then
            rep.remove(tid, t[2], TEXTCOLOR_RED)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '[REP_SYSTEM] You removed ' .. t[2] .. ' rep points to ' .. getPlayerName(tid) .. ', and now ' .. rep.getArticle(tid, false) .. ' has ' .. rep.getPoints(tid) .. ' points.')
			return true
        end
               
        if t[2] and words == '/set' then
            rep.set(tid, t[2])
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '[REP_SYSTEM] You have set ' .. getPlayerName(tid) .. '\'s points to ' .. rep.getPoints(tid))
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '[REP_SYSTEM] Absolute reputation amount not specified.')
			return true
        end
       
        if not t[2] then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '[REP_SYSTEM] Absolute reputation amount not specified.')
			return true
        end    
    return true]]>
</talkaction>
              
<talkaction words="!rep" event="buffer"><![CDATA[
    domodlib('repSystem')
	if exhaustion.check(cid, rep.exhaust) then
		doPlayerSendCancel(cid, 'You can\'t use this command yet['..exhaustion.get(cid, rep.exhaust)..'].')
		return true
	else
		exhaustion.set(cid, rep.exhaust, rep.exhaustion)
	end
	
	if param ~= '' then
		local str, value, name, result = '', '',' ', 0, nil
		if isInArray({'hero','pos','1','+'}, param) then
			str,value,name = '[#]-[Name]-[Points]-[Rank]\n--[Positive Reputation Highscores]--\n','rep','name'
			result = db.getResult('SELECT `name`, `rep` FROM `players` WHERE `rep` > 0 AND `name` NOT LIKE "%Sample" AND `name`!= "Account Manager" AND `deleted` = 0 AND `group_id` = 1 ORDER BY `rep` DESC LIMIT 10;')
		elseif isInArray({'evil','neg','2','-'}, param) then
			str,value,name = '[#]-[Name]-[Points]-[Rank]\n--[Negative Reputation Highscores]--\n','rep','name'
			result = db.getResult('SELECT `name`, `rep` FROM `players` WHERE `rep` < 0 AND `name` NOT LIKE "%Sample" AND `name`!= "Account Manager" AND `deleted` = 0 AND `group_id` = 1 ORDER BY `rep` ASC LIMIT 10;')
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Unknown parameter, use only +, -, 1, 2.')
			return true
		end

		if isInArray({-1,nil,false,''},result:getID()) then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'No results were found.')
			return true
		end
		local i = 1
		while true do
			str = str .. '\n ' .. i .. '. ' .. result:getDataString('name') .. ' - [' .. result:getDataInt(value) .. '] - ' .. rep.getRank(result:getDataInt(value))
			i = i + 1
			if not(result:next()) then
				break
			end
		end
		result:free()
		doPlayerPopupFYI(cid, str)
		return true
	elseif param == '' then
		local points, action, name = rep.getPoints(cid), false, getPlayerNameByGUID(getCreatureStorage(cid, rep.lastName), false, false)
		doPlayerSendTextMessage(cid, 27, 'You have '.. rep.format(points) ..' reputation points. You have ' .. getCreatureStorage(cid, rep.opinion) .. ' opinion points and you will gain one '.. (getCreatureStorage(cid, rep.opinion) > 0 and 'more ' or '') ..'in '.. rep.interval - getCreatureStorage(cid, rep.online) ..' minutes.'.. (rep.power and ' Your Rep Power is ' .. rep.getPower(points) ..'.' or '')..(name ~= nil and ' You last reputed ' .. name .. '.' or ''))
		if points > 4999 then --female rep+++ queen outfit
			disguise, text, action = getPlayerSex(cid) == 0 and 331 or 332, getPlayerSex(cid) == 0 and 'Queen!!' or 'King!!', true
		elseif points > 1999 then --rep++ cm outfit
			disguise, text, action = 73, 'Hero!!', true
		elseif points > 1499 then --rep+ hero outfit
			disguise, text, action = 63, 'Acclaimed!!', true
		elseif points < -4999 then --rep*** devil outfit
			disguise, text, action = 334, 'P.O.!', true
		elseif points < -1999  then --rep** pig outfit
			disguise, text, action = 306, 'Evil!!', true
		elseif points < -1499 then --rep* orc outfit
			disguise, text, action = 5, "Slayer!!", true  
		end
		
		if action and getCreatureOutfit(cid).lookType ~= disguise then
			doSetCreatureOutfit(cid, {lookType = disguise}, -1)
			doSendAnimatedText(getThingPos(cid), text, math.random(255))
			return true
		end
	end
	return true]]>
</talkaction>
       
<talkaction words="!hail;!fuck" event="buffer"><![CDATA[
    domodlib('repSystem')
    if param == '' then
		doPlayerSendCancel(cid, 'Command requires a player\'s name.')
		return true
    end
       
    local target = getPlayerByNameWildcard(param)
   
    if not isPlayer(target) then
		doPlayerSendCancel(cid, 'That player does not exist or is offline.')
		return true
    end
                                   
    if getPlayerLevel(cid) < rep.minLevel then
		doPlayerSendCancel(cid,'You may repute from level ' .. rep.minLevel ..' onwards.')
		return true
    end
       
    if getPlayerIp(cid) == getPlayerIp(target) then
        doPlayerSendCancel(cid, 'You may not repute neither yourself nor anyone in your IP.')  
		return true
    end
	
	if getPlayerGUID(target) == getCreatureStorage(cid, rep.lastName) then
        doPlayerSendCancel(cid, 'You may not repute that player two times in a row.')  
		return true
    end
   
    if getCreatureStorage(cid, rep.opinion) < rep.required then
		doPlayerSendCancel(cid, 'You do not have enough opinion points to repute.')  
		return true
    end
		                                 
    if words == '!hail' then
        doCreatureSetStorage(cid, rep.lastName, getPlayerGUID(target))
		doCreatureSetStorage(cid, rep.opinion, getCreatureStorage(cid, rep.opinion)-rep.required)
        doPlayerSendCancel(cid, 'You have just reputed ' .. getCreatureName(target) .. '. You have ' .. getCreatureStorage(cid, rep.opinion) .. ' opinion points left.')
		rep.add(target, rep.power and rep.getPower(rep.getPoints(cid)) or 5, TEXTCOLOR_LIGHTBLUE)
    elseif words == '!fuck' then
        doCreatureSetStorage(cid, rep.lastName, getPlayerGUID(target))
		doCreatureSetStorage(cid, rep.opinion, getCreatureStorage(cid, rep.opinion)-rep.required)
        doPlayerSendCancel(cid, 'You have just reputed ' .. getCreatureName(target) .. '. You have ' .. getCreatureStorage(cid, rep.opinion) .. ' opinion points left.')
		rep.remove(target, rep.power and rep.getPower(rep.getPoints(cid)) or 5, TEXTCOLOR_RED)
    end
	return true
]]></talkaction>
</mod>


YOU CAN FIX MOD?, HERE IS
 
As soon as I get back to my pc, i'll release new vr ;d (0.4 only)
 
I'm getting this error when trying to kill ppl :
Lua:
[23/08/2011 14:57:43] [Error - CreatureScript Interface] 
[23/08/2011 14:57:43] buffer:onKill
[23/08/2011 14:57:43] Description: 
[23/08/2011 14:57:43] [string "loadBuffer"]:10: attempt to call global 'getPVPOption' (a nil value)
[23/08/2011 14:57:43] stack traceback:
[23/08/2011 14:57:43] 	[string "loadBuffer"]:10: in function <[string "loadBuffer"]:9>
 
yes, this is the next version which now uses player storages instead of sql columns
XML:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Cyber's REP++ System" rev="7.0" tfs="0.3.7" author="Cybermaster" web="OTLand.net" enabled="no">    
    <functions>
        rep.getPoints(cid)
        ->Returns the amount of a player's reputation points
        
        rep.getData(points) 
        ->Returns an array regarding player's rep information:
            rep.getData(points,1) ->Returns rep rank
            rep.getData(points,2) ->Returns id of rank
            rep.getData(points,3) ->Returns rep power based on the specified reputation amount
            rep.getData(points,4) ->Returns rep outfit looktype
            rep.getData(points,5) ->Returns rep outfit message

        rep.set(amount)
        ->Sets absolute reputation points to target.

        rep.add(cid, amount[, color])
        ->Adds reputation amount to target with animated colored text.

        rep.remove(cid, amount[, color])
        ->Subtracts reputation amount to target with animated colored text.

        rep.format(n)
        ->Used to format rep amount with comma    
    </functions>
    
    <config name="repSystem">
        <![CDATA[
            rep = {
            --[[ MAIN CONFIG ]]--
                
                interval = 3 * 60, 
                --THIS IS [3] HOURS, IN MINUTES. TIME IN MINUTES TO BE ONLINE TO GAIN [1] OPINION POINT
                
                minLevel = 20, 
                --FROM THIS LEVEL ONWARDS PLAYERS CAN USE COMMANDS
                
                pvpLevel = 30, 
                --MINIMUM LEVEL FOR PVP REPPING
                
                required = 5, 
                --OPINION POINTS REQUIRED TO REPUTE WITH TALKACTION COMMAND
                
                default = 5,
                --DEFAULT REP POINTS ADDED/REMOVED
                
                results = 10,
                --RESULTS TO APPEAR FOR REP HIGHSCORES
                
                exhaustion = 5 * 60, 
                --SECONDS TO WAIT TO BE ABLE TO USE !REP COMMAND AGAIN, DEFAULT IS 5 MINUTES
                
                allowMultiRepByCommand = 'yes', 
                --ALLOW PLAYERS TO REPUTE AGAIN LAST REPUTED PLAYER? Options: 'yes' - 'no' 
                
                allowMultiRepByKill = 'no', 
                --ALLOW PLAYERS GAIN/LOSE REP WHEN KILLING VICTIM TWICE? Options: 'yes' - 'no' 
                
                allowRepInPvPTile = 'no',
                --PLAYERS GAIN/LOSE REP WHEN KILLING/KILLED AT PVP(HARDCORE) TILES? Options: 'yes' - 'no' 
                
                usePower = 'no',
                --USE REP POWER FEATURE? Options: 'yes' - 'no' 
            
            --[[ PLAYER STORAGES ]]--
                
                points = 5044,
                --STORES PLAYERS REP POINTS
                
                exhaust = 5045, 
                --EXHAUSTION FOR !REP COMMAND
                
                lastName = 5036, 
                --STORES LAST REPPED'S GUID
                
                lastKilled = 5037, 
                --STORES LAST KILLED'S GUID, USED ONLY IF allowMultiRepByKill == 'no'
                
                opinion = 5038, 
                --STORES OPINION POINTS
                
                online = 5039, 
                --STORES ONLINE MINUTES
                
                alert = {
                    [1] = 'You have just obtained an opinion point.',
                    [2] = 'You have just been hailed and gained %d reputation points.',
                    [3] = 'You have just been repudiated and lost %d reputation points.',
                    [4] = 'You %s reputation because you killed a player.',
                    [5] = 'You lose reputation because you were killed by a player.',
                    [6] = '[REP_SYSTEM] You must write a player\'s name.',
                    [7] = '[REP_SYSTEM] Player %s not found.',
                    [8] = '[REP_SYSTEM] You %s %d rep points to %s, and now %s has %d points.',
                    [9] = '[REP_SYSTEM] Reputation amount is invalid.',
                    [10] = '[REP_SYSTEM] You have set %s\'s rep points to %d',
                    [11] = 'You can not use this command yet[%d].',
                    [12] = 'Unknown parameter, use only (+|-|1|2).',
                    [13] = 'No results were found.',
                    [14] = 'Player %s not found.',
                    [15] = 'You may repute from level %d onwards.',
                    [16] = 'You may not repute neither yourself nor anyone in your IP.',
                    [17] = 'You are not allowed to repute same player two times in a row.',
                    [18] = 'You do not have enough opinion points.',
                    [19] = 'You have just reputed %s. You have %d opinion points left.',                    
                },
                
                skull = {
                    [SKULL_WHITE] = 15,
                    [SKULL_RED] = 20,
                    [SKULL_BLACK] = 40,
                    [SKULL_NONE] = -30,
                },
                
                monster = { --[monstername in lowercase] = +rep amount
                    ['demon'] = 3,
                    ['behemoth'] = 4,
                    ['hellfire fighter'] = 5,
                    ['orshabaal'] = 10,
                },
             
                doOpinion = function(cid)
                    if isPlayer(cid) then 
                        doCreatureSetStorage(cid, rep.online, getCreatureStorage(cid, rep.online)+1)
                        if getCreatureStorage(cid, rep.online) >= rep.interval then
                            doCreatureSetStorage(cid, rep.online, 0)
                            doCreatureSetStorage(cid, rep.opinion, getCreatureStorage(cid, rep.opinion)+1)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, rep.alert[1])
                        end
                        repEvent = addEvent(rep.doOpinion, 60*1000, cid)
                    end
                end,
                                
                getArticle = function(cid, uppercase)
                    return (getPlayerSex(cid)==0 and (uppercase and 'Sh' or 'sh') or (uppercase and 'H' or 'h'))..'e'
                end,
           
                getPoints = function(cid)
                    return getCreatureStorage(cid, rep.points)
                end,
           
                getData = function(points, data)
                    table = { --[FROM, TO] = {RANK, ID, POWER[[, OUTFIT LOOKTYPE, OUTFIT MESSAGE]]}
                            [{-math.huge, -5000}] = {'Power Abuser (*<<==========)',13,7,40,'Devil!!!'},
                            [{-4999, -2000}] = {'Evil (=*<==========)',12,6,60,'Pig!!'},
                            [{-1999, -1500}] = {'Slayer (==*==========)',11,5,5,'Orc!'},
                            [{-1499, -1000}] = {'Killer (===|=========)',10,4},
                            [{-999, -500}] = {'Villain (====|========)',9,3},
                            [{-499, -300}] = {'Creeping (=====|=======)',8,2},
                            [{-299, 299}] = {'Unknown (======|======)',7,1},
                            [{300, 499}] = {'Avowed (=======|=====)',6,2},
                            [{500, 999}] = {'Popular (========|====)',5,3},
                            [{1000, 1499}] = {'Hailed (=========|===)',4,4},
                            [{1500, 1999}] = {'Acclaimed (==========+==)',3,5,266,'Famous!'},
                            [{2000, 4999}] = {'Hero (==========>+=)',2,6,266,'Hero!!'},
                            [{5000, math.huge}] = {'Legend (==========>>+)',1,7,331,'Legend!!!'},
                        }
                    for a, b in pairs(table) do
                        if points >= a[1] and points <= a[2] then
                            return b[data]
                            --[[
                                b[1] = rank
                                b[2] = id
                                b[3] = power
                                b[4] = looktype
                                b[5] = message
                            ]]--
                        end
                    end
                end,           
           
                set = function(cid, points)
                    doCreatureSetStorage(cid, rep.points, points)
                end,

                add = function(cid, amount, color)
                    doCreatureSetStorage(cid, getCreatureStorage(cid,rep.points)+amount, points)
                    doSendAnimatedText(getThingPos(cid), '+REP', color or math.random(255))
                    doPlayerSendCancel(cid, rep.alert[2]:format(amount))
                end,
                           
                remove = function(cid, amount, color)
                    doCreatureSetStorage(cid, getCreatureStorage(cid,rep.points)-amount, points)
                    doSendAnimatedText(getThingPos(cid), '-REP', color or math.random(255))
                    doPlayerSendCancel(cid, rep.alert[3]:format(amount))
                end                
            }
        ]]>
    </config>

    <event type="login" name="repRegister" event="script">
        <![CDATA[
            domodlib('repSystem')
            function onLogin(cid)
                repEvent = addEvent(rep.doOpinion, 60*1000, cid)
                if getCreatureStorage(cid, rep.opinion) == EMPTY_STORAGE then
                    doCreatureSetStorage(cid, rep.points, 0)
                    doCreatureSetStorage(cid, rep.online, 0)
                    doCreatureSetStorage(cid, rep.opinion, 0)
                end
                registerCreatureEvent(cid, "repLook")
                registerCreatureEvent(cid, "repKill")
                registerCreatureEvent(cid, "repMonster")
                return 1
            end
        ]]>
    </event>
           
    <event type="look" name="repLook" event="script">
        <![CDATA[
            domodlib('repSystem')
            function onLook(cid, thing, position, lookDistance)
                if isPlayer(thing.uid) and thing.uid ~= cid then
                    return doPlayerSetSpecialDescription(thing.uid,'\n'.. rep.getArticle(thing.uid, 1)..' is ' .. rep.getData(rep.getPoints(thing.uid),1))
                elseif thing.uid == cid then     
                    local string = 'You see yourself.'
                    if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
                        string = string..' You are '.. getPlayerGroupName(cid) ..'.'
                    elseif getPlayerVocation(cid) ~= 0 then
                        string = string..' You are '.. getPlayerVocationName(cid) ..'.'
                    else
                        string = string..' You have no vocation.'
                    end
                                
                    if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
                        string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.'
                    end
            
                    if getPlayerGuildId(cid) > 0 then 
                        string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
                        string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
                    end 
                    
                    string = string..'\nYou are '.. rep.getData(rep.getPoints(cid),1) .. '.'
            
                    if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
                        string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
                        string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
                    end
            
                    if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
                        string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
                    end
                    return false, doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)  
                end
                return 1
            end
        ]]>
    </event>
                   
    <event type="kill" name="repKill" event="script">
        <![CDATA[
            domodlib('repSystem')
            function onKill(cid, target, damage, flags)
                if not isPlayer(target) or not isInArray({1,3},flags) or getPlayerIp(cid) == getPlayerIp(target) then
                    return 1
                end
                    
                if not getBooleanFromString(rep.allowMultiRepByKill) and getCreatureStorage(cid, rep.lastKilled) == getPlayerGUID(target) then
                    return 1
                end
                    
                if not getBooleanFromString(rep.allowRepInPvpTile) and getTileInfo(getThingPos(cid)).hardcore then
                    return 1
                end
                
            --THE KILLER
                if rep.skull[getCreatureSkullType(target)] and getPlayerLevel(target) >= rep.pvpLevel then
                    doSendAnimatedText(getThingPos(cid), getCreatureSkullType(target) == 0 and '-REP' or '+REP', math.random(255))
                    rep.set(cid, rep.getPoints(cid)+rep.skull[getCreatureSkullType(target)])
                    doPlayerSendCancel(cid, rep.alert[4]:format(getCreatureSkullType(target) == 0 and 'lose' or 'gain'))
                    if not getBooleanFromString(rep.allowMultiRepByKill) then
                        doCreatureSetStorage(cid, rep.lastKilled, getPlayerGUID(target))
                    end
                end
            --THE VICTIM
                if rep.getPoints(target) == 0 then
                    return 1
                elseif rep.getPoints(target) > 0 then
                    rep.remove(target, 5, COLOR_RED)
                    doPlayerSendCancel(target, rep.alert[5])
                else
                    rep.add(target, 5, COLOR_LIGHTBLUE)
                    doPlayerSendCancel(target, rep.alert[5])
                end
                return 1
            end
        ]]>
    </event>
                       
    <event type="kill" name="repMonster" event="script">
        <![CDATA[
            domodlib('repSystem')
            function onKill(cid, target, damage, flags)
                if isMonster(target) and rep.monster[getCreatureName(target):lower()] and isInArray({1,3},flags) then
                    rep.add(cid, rep.monster[getCreatureName(target):lower()])
                end
                return 1
            end
        ]]>
    </event>
           
    <talkaction log="yes" words="/hail;/fuck;/set" access="4" event="buffer">
        <![CDATA[
            domodlib('repSystem')
            if param == '' then
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,rep.alert[6])
            end

            local t = string.explode(param, ',')
            local tid = getPlayerByNameWildcard(t[1])

            if not isPlayer(tid) then
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[7]:format(param))
            end
           
            if not t[2] then
                if words == '/hail' then
                    rep.add(tid, rep.default, COLOR_TEAL)
                    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[8]:format('added',rep.default,getCreatureName(tid),rep.getArticle(tid),rep.getPoints(tid)))
                elseif words == '/fuck' then
                    rep.remove(tid, rep.default, COLOR_RED)
                    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[8]:format('removed',rep.default,getCreatureName(tid),rep.getArticle(tid),rep.getPoints(tid)))
                end
            end
           
            if not isNumeric(t[2]) then
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[9])
            end
           
            if words == '/hail' then
                rep.add(tid, math.abs(t[2]), COLOR_TEAL)
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[8]:format('added',math.abs(t[2]),getCreatureName(tid),rep.getArticle(tid),rep.getPoints(tid)))
            elseif words == '/fuck' then                
                rep.remove(tid, math.abs(t[2]), COLOR_RED)
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[8]:format('removed',math.abs(t[2]),getCreatureName(tid),rep.getArticle(tid),rep.getPoints(tid)))
            elseif words == '/set' then
                rep.set(tid, t[2])
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[10]:format(getCreatureName(tid),rep.getPoints(tid)))
            end           
        ]]>
    </talkaction>
                  
    <talkaction words="!rep" event="buffer">
        <![CDATA[
            domodlib('repSystem')
            if exhaustion.check(cid, rep.exhaust) then
                return doPlayerSendCancel(cid, rep.alert[11]:format(exhaustion.get(cid, rep.exhaust)))
            end
            
            exhaustion.set(cid, rep.exhaust, rep.exhaustion)
            
            if param ~= '' then
                local str, value, name, result = '', '',' ', 0, nil
                if isInArray({'hero','pos','1','+'}, param) then
                    str,value,name = '[#]-[Name]-[Points]-[Rank]\n--[Positive Reputation Highscores]--\n','rep','name'
                    result = db.getResult('SELECT `name`, `rep` FROM `players` WHERE `rep` > 0 AND `name` NOT LIKE "%Sample" AND `name`!= "Account Manager" AND `deleted` = 0 AND `group_id` = 1 ORDER BY `rep` DESC LIMIT '.. rep.results)
                elseif isInArray({'evil','neg','2','-'}, param) then
                    str,value,name = '[#]-[Name]-[Points]-[Rank]\n--[Negative Reputation Highscores]--\n','rep','name'
                    result = db.getResult('SELECT `name`, `rep` FROM `players` WHERE `rep` < 0 AND `name` NOT LIKE "%Sample" AND `name`!= "Account Manager" AND `deleted` = 0 AND `group_id` = 1 ORDER BY `rep` ASC LIMIT '.. rep.results)
                else
                    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[12])
                end

                if isInArray({-1,nil,false,''},result:getID()) then
                    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[13])
                end
                local i = 1
                while 1 do
                    str = str .. '\n ' .. i .. '. ' .. result:getDataString('name') .. ' - [' .. result:getDataInt(value) .. '] - ' .. rep.getData(result:getDataInt(value),1)
                    i = i + 1
                    if not(result:next()) then
                        break
                    end
                end
                result:free()
                return doPlayerPopupFYI(cid, str)
            elseif param == '' then
                local points, name = rep.getPoints(cid), getPlayerNameByGUID(getCreatureStorage(cid, rep.lastName), false, false)
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'You have '.. doNumberFormat(points) ..' reputation points. You have ' .. getCreatureStorage(cid, rep.opinion) .. ' opinion points and you will gain one '.. (getCreatureStorage(cid, rep.opinion) > 0 and 'more ' or '') ..'in '.. rep.interval - getCreatureStorage(cid, rep.online) ..' minutes.'.. (getBooleanFromString(rep.usePower) and ' Your Rep Power is ' .. rep.getData(points,3) ..'.' or '')..(name ~= nil and ' You last reputed ' .. name .. '.' or ''))

                if rep.getData(points,4) ~= nil and getCreatureOutfit(cid).lookType ~= rep.getData(points,4) then
                    doSetCreatureOutfit(cid, {lookType = rep.getData(points,4)}, -1)
                    doSendAnimatedText(getThingPos(cid), rep.getData(points,5), math.random(255))
                end
            end
            return 1
        ]]>
    </talkaction>
           
    <talkaction words="!hail;!fuck" event="buffer">
        <![CDATA[
            domodlib('repSystem')               
            local target = getPlayerByNameWildcard(param)
           
            if not isPlayer(target) then
                return doPlayerSendCancel(cid, rep.alert[14]:format(param))
            end
                                           
            if getPlayerLevel(cid) < rep.minLevel then
                return doPlayerSendCancel(cid, rep.alert[15]:format(rep.minLevel))
            end
               
            if getPlayerIp(cid) == getPlayerIp(target) then
                return doPlayerSendCancel(cid, rep.alert[16])  
            end
            
            if not getBooleanFromString(rep.allowMultiRepByCommand) and getPlayerGUID(target) == getCreatureStorage(cid, rep.lastName) then
                return doPlayerSendCancel(cid, rep.alert[17])
            end
           
            if getCreatureStorage(cid, rep.opinion) < rep.required then
                return doPlayerSendCancel(cid, rep.alert[18])  
            end
                                                 
            doCreatureSetStorage(cid, rep.lastName, getPlayerGUID(target))
            doCreatureSetStorage(cid, rep.opinion, getCreatureStorage(cid, rep.opinion)-rep.required)
            doPlayerSendCancel(cid, rep.alert[19]:format(getCreatureName(target),getCreatureStorage(cid, rep.opinion)))
            if words == '!hail' then            
                return rep.add(target, getBooleanFromString(rep.usePower) and rep.getData(rep.getPoints(cid),3) or rep.default, COLOR_LIGHTBLUE)
            elseif words == '!fuck' then
                return rep.remove(target, getBooleanFromString(rep.usePower) and rep.getData(rep.getPoints(cid),3) or rep.default, COLOR_RED)
            end
        ]]>
    </talkaction>
</mod>
only for tfs 0.3.7(0.4) though
 
yes, this is the next version which now uses player storages instead of sql columns
XML:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Cyber's REP++ System" rev="7.0" tfs="0.3.7" author="Cybermaster" web="OTLand.net" enabled="no">    
    <functions>
        rep.getPoints(cid)
        ->Returns the amount of a player's reputation points
        
        rep.getData(points) 
        ->Returns an array regarding player's rep information:
            rep.getData(points,1) ->Returns rep rank
            rep.getData(points,2) ->Returns id of rank
            rep.getData(points,3) ->Returns rep power based on the specified reputation amount
            rep.getData(points,4) ->Returns rep outfit looktype
            rep.getData(points,5) ->Returns rep outfit message

        rep.set(amount)
        ->Sets absolute reputation points to target.

        rep.add(cid, amount[, color])
        ->Adds reputation amount to target with animated colored text.

        rep.remove(cid, amount[, color])
        ->Subtracts reputation amount to target with animated colored text.

        rep.format(n)
        ->Used to format rep amount with comma    
    </functions>
    
    <config name="repSystem">
        <=!=[=C=D=A=T=A=[
            rep = {
            --[[ MAIN CONFIG ]]--
                
                interval = 3 * 60, 
                --THIS IS [3] HOURS, IN MINUTES. TIME IN MINUTES TO BE ONLINE TO GAIN [1] OPINION POINT
                
                minLevel = 20, 
                --FROM THIS LEVEL ONWARDS PLAYERS CAN USE COMMANDS
                
                pvpLevel = 30, 
                --MINIMUM LEVEL FOR PVP REPPING
                
                required = 5, 
                --OPINION POINTS REQUIRED TO REPUTE WITH TALKACTION COMMAND
                
                default = 5,
                --DEFAULT REP POINTS ADDED/REMOVED
                
                results = 10,
                --RESULTS TO APPEAR FOR REP HIGHSCORES
                
                exhaustion = 5 * 60, 
                --SECONDS TO WAIT TO BE ABLE TO USE !REP COMMAND AGAIN, DEFAULT IS 5 MINUTES
                
                allowMultiRepByCommand = 'yes', 
                --ALLOW PLAYERS TO REPUTE AGAIN LAST REPUTED PLAYER? Options: 'yes' - 'no' 
                
                allowMultiRepByKill = 'no', 
                --ALLOW PLAYERS GAIN/LOSE REP WHEN KILLING VICTIM TWICE? Options: 'yes' - 'no' 
                
                allowRepInPvPTile = 'no',
                --PLAYERS GAIN/LOSE REP WHEN KILLING/KILLED AT PVP(HARDCORE) TILES? Options: 'yes' - 'no' 
                
                usePower = 'no',
                --USE REP POWER FEATURE? Options: 'yes' - 'no' 
            
            --[[ PLAYER STORAGES ]]--
                
                points = 5044,
                --STORES PLAYERS REP POINTS
                
                exhaust = 5045, 
                --EXHAUSTION FOR !REP COMMAND
                
                lastName = 5036, 
                --STORES LAST REPPED'S GUID
                
                lastKilled = 5037, 
                --STORES LAST KILLED'S GUID, USED ONLY IF allowMultiRepByKill == 'no'
                
                opinion = 5038, 
                --STORES OPINION POINTS
                
                online = 5039, 
                --STORES ONLINE MINUTES
                
                alert = {
                    [1] = 'You have just obtained an opinion point.',
                    [2] = 'You have just been hailed and gained %d reputation points.',
                    [3] = 'You have just been repudiated and lost %d reputation points.',
                    [4] = 'You %s reputation because you killed a player.',
                    [5] = 'You lose reputation because you were killed by a player.',
                    [6] = '[REP_SYSTEM] You must write a player\'s name.',
                    [7] = '[REP_SYSTEM] Player %s not found.',
                    [8] = '[REP_SYSTEM] You %s %d rep points to %s, and now %s has %d points.',
                    [9] = '[REP_SYSTEM] Reputation amount is invalid.',
                    [10] = '[REP_SYSTEM] You have set %s\'s rep points to %d',
                    [11] = 'You can not use this command yet[%d].',
                    [12] = 'Unknown parameter, use only (+|-|1|2).',
                    [13] = 'No results were found.',
                    [14] = 'Player %s not found.',
                    [15] = 'You may repute from level %d onwards.',
                    [16] = 'You may not repute neither yourself nor anyone in your IP.',
                    [17] = 'You are not allowed to repute same player two times in a row.',
                    [18] = 'You do not have enough opinion points.',
                    [19] = 'You have just reputed %s. You have %d opinion points left.',                    
                },
                
                skull = {
                    [SKULL_WHITE] = 15,
                    [SKULL_RED] = 20,
                    [SKULL_BLACK] = 40,
                    [SKULL_NONE] = -30,
                },
                
                monster = { --[monstername in lowercase] = +rep amount
                    ['demon'] = 3,
                    ['behemoth'] = 4,
                    ['hellfire fighter'] = 5,
                    ['orshabaal'] = 10,
                },
             
                doOpinion = function(cid)
                    if isPlayer(cid) then 
                        doCreatureSetStorage(cid, rep.online, getCreatureStorage(cid, rep.online)+1)
                        if getCreatureStorage(cid, rep.online) >= rep.interval then
                            doCreatureSetStorage(cid, rep.online, 0)
                            doCreatureSetStorage(cid, rep.opinion, getCreatureStorage(cid, rep.opinion)+1)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, rep.alert[1])
                        end
                        repEvent = addEvent(rep.doOpinion, 60*1000, cid)
                    end
                end,
                                
                getArticle = function(cid, uppercase)
                    return (getPlayerSex(cid)==0 and (uppercase and 'Sh' or 'sh') or (uppercase and 'H' or 'h'))..'e'
                end,
           
                getPoints = function(cid)
                    return getCreatureStorage(cid, rep.points)
                end,
           
                getData = function(points, data)
                    table = { --[FROM, TO] = {RANK, ID, POWER[[, OUTFIT LOOKTYPE, OUTFIT MESSAGE]]}
                            [{-math.huge, -5000}] = {'Power Abuser (*<<==========)',13,7,40,'Devil!!!'},
                            [{-4999, -2000}] = {'Evil (=*<==========)',12,6,60,'Pig!!'},
                            [{-1999, -1500}] = {'Slayer (==*==========)',11,5,5,'Orc!'},
                            [{-1499, -1000}] = {'Killer (===|=========)',10,4},
                            [{-999, -500}] = {'Villain (====|========)',9,3},
                            [{-499, -300}] = {'Creeping (=====|=======)',8,2},
                            [{-299, 299}] = {'Unknown (======|======)',7,1},
                            [{300, 499}] = {'Avowed (=======|=====)',6,2},
                            [{500, 999}] = {'Popular (========|====)',5,3},
                            [{1000, 1499}] = {'Hailed (=========|===)',4,4},
                            [{1500, 1999}] = {'Acclaimed (==========+==)',3,5,266,'Famous!'},
                            [{2000, 4999}] = {'Hero (==========>+=)',2,6,266,'Hero!!'},
                            [{5000, math.huge}] = {'Legend (==========>>+)',1,7,331,'Legend!!!'},
                        }
                    for a, b in pairs(table) do
                        if points >= a[1] and points <= a[2] then
                            return b[data]
                            --[[
                                b[1] = rank
                                b[2] = id
                                b[3] = power
                                b[4] = looktype
                                b[5] = message
                            ]]--
                        end
                    end
                end,           
           
                set = function(cid, points)
                    doCreatureSetStorage(cid, rep.points, points)
                end,

                add = function(cid, amount, color)
                    doCreatureSetStorage(cid, getCreatureStorage(cid,rep.points)+amount, points)
                    doSendAnimatedText(getThingPos(cid), '+REP', color or math.random(255))
                    doPlayerSendCancel(cid, rep.alert[2]:format(amount))
                end,
                           
                remove = function(cid, amount, color)
                    doCreatureSetStorage(cid, getCreatureStorage(cid,rep.points)-amount, points)
                    doSendAnimatedText(getThingPos(cid), '-REP', color or math.random(255))
                    doPlayerSendCancel(cid, rep.alert[3]:format(amount))
                end                
            }
        ]=]=>
    </config>

    <event type="login" name="repRegister" event="script">
        <=!=[=C=D=A=T=A=[
            domodlib('repSystem')
            function onLogin(cid)
                repEvent = addEvent(rep.doOpinion, 60*1000, cid)
                if getCreatureStorage(cid, rep.opinion) == EMPTY_STORAGE then
                    doCreatureSetStorage(cid, rep.points, 0)
                    doCreatureSetStorage(cid, rep.online, 0)
                    doCreatureSetStorage(cid, rep.opinion, 0)
                end
                registerCreatureEvent(cid, "repLook")
                registerCreatureEvent(cid, "repKill")
                registerCreatureEvent(cid, "repMonster")
                return 1
            end
        ]=]=>
    </event>
           
    <event type="look" name="repLook" event="script">
        <=!=[=C=D=A=T=A=[
            domodlib('repSystem')
            function onLook(cid, thing, position, lookDistance)
                if isPlayer(thing.uid) and thing.uid ~= cid then
                    return doPlayerSetSpecialDescription(thing.uid,'\n'.. rep.getArticle(thing.uid, 1)..' is ' .. rep.getData(rep.getPoints(thing.uid),1))
                elseif thing.uid == cid then     
                    local string = 'You see yourself.'
                    if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
                        string = string..' You are '.. getPlayerGroupName(cid) ..'.'
                    elseif getPlayerVocation(cid) ~= 0 then
                        string = string..' You are '.. getPlayerVocationName(cid) ..'.'
                    else
                        string = string..' You have no vocation.'
                    end
                                
                    if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
                        string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.'
                    end
            
                    if getPlayerGuildId(cid) > 0 then 
                        string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
                        string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
                    end 
                    
                    string = string..'\nYou are '.. rep.getData(rep.getPoints(cid),1) .. '.'
            
                    if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
                        string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
                        string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
                    end
            
                    if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
                        string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
                    end
                    return false, doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)  
                end
                return 1
            end
        ]=]=>
    </event>
                   
    <event type="kill" name="repKill" event="script">
        <=!=[=C=D=A=T=A=[
            domodlib('repSystem')
            function onKill(cid, target, damage, flags)
                if not isPlayer(target) or not isInArray({1,3},flags) or getPlayerIp(cid) == getPlayerIp(target) then
                    return 1
                end
                    
                if not getBooleanFromString(rep.allowMultiRepByKill) and getCreatureStorage(cid, rep.lastKilled) == getPlayerGUID(target) then
                    return 1
                end
                    
                if not getBooleanFromString(rep.allowRepInPvpTile) and getTileInfo(getThingPos(cid)).hardcore then
                    return 1
                end
                
            --THE KILLER
                if rep.skull[getCreatureSkullType(target)] and getPlayerLevel(target) >= rep.pvpLevel then
                    doSendAnimatedText(getThingPos(cid), getCreatureSkullType(target) == 0 and '-REP' or '+REP', math.random(255))
                    rep.set(cid, rep.getPoints(cid)+rep.skull[getCreatureSkullType(target)])
                    doPlayerSendCancel(cid, rep.alert[4]:format(getCreatureSkullType(target) == 0 and 'lose' or 'gain'))
                    if not getBooleanFromString(rep.allowMultiRepByKill) then
                        doCreatureSetStorage(cid, rep.lastKilled, getPlayerGUID(target))
                    end
                end
            --THE VICTIM
                if rep.getPoints(target) == 0 then
                    return 1
                elseif rep.getPoints(target) > 0 then
                    rep.remove(target, 5, COLOR_RED)
                    doPlayerSendCancel(target, rep.alert[5])
                else
                    rep.add(target, 5, COLOR_LIGHTBLUE)
                    doPlayerSendCancel(target, rep.alert[5])
                end
                return 1
            end
        ]=]=>
    </event>
                       
    <event type="kill" name="repMonster" event="script">
        <=!=[=C=D=A=T=A=[
            domodlib('repSystem')
            function onKill(cid, target, damage, flags)
                if isMonster(target) and rep.monster[getCreatureName(target):lower()] and isInArray({1,3},flags) then
                    rep.add(cid, rep.monster[getCreatureName(target):lower()])
                end
                return 1
            end
        ]=]=>
    </event>
           
    <talkaction log="yes" words="/hail;/fuck;/set" access="4" event="buffer">
        <=!=[=C=D=A=T=A=[
            domodlib('repSystem')
            if param == '' then
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,rep.alert[6])
            end

            local t = string.explode(param, ',')
            local tid = getPlayerByNameWildcard(t[1])

            if not isPlayer(tid) then
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[7]:format(param))
            end
           
            if not t[2] then
                if words == '/hail' then
                    rep.add(tid, rep.default, COLOR_TEAL)
                    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[8]:format('added',rep.default,getCreatureName(tid),rep.getArticle(tid),rep.getPoints(tid)))
                elseif words == '/fuck' then
                    rep.remove(tid, rep.default, COLOR_RED)
                    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[8]:format('removed',rep.default,getCreatureName(tid),rep.getArticle(tid),rep.getPoints(tid)))
                end
            end
           
            if not isNumeric(t[2]) then
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[9])
            end
           
            if words == '/hail' then
                rep.add(tid, math.abs(t[2]), COLOR_TEAL)
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[8]:format('added',math.abs(t[2]),getCreatureName(tid),rep.getArticle(tid),rep.getPoints(tid)))
            elseif words == '/fuck' then                
                rep.remove(tid, math.abs(t[2]), COLOR_RED)
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[8]:format('removed',math.abs(t[2]),getCreatureName(tid),rep.getArticle(tid),rep.getPoints(tid)))
            elseif words == '/set' then
                rep.set(tid, t[2])
                return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[10]:format(getCreatureName(tid),rep.getPoints(tid)))
            end           
        ]=]=>
    </talkaction>
                  
    <talkaction words="!rep" event="buffer">
        <=!=[=C=D=A=T=A=[
            domodlib('repSystem')
            if exhaustion.check(cid, rep.exhaust) then
                return doPlayerSendCancel(cid, rep.alert[11]:format(exhaustion.get(cid, rep.exhaust)))
            end
            
            exhaustion.set(cid, rep.exhaust, rep.exhaustion)
            
            if param ~= '' then
                local str, value, name, result = '', '',' ', 0, nil
                if isInArray({'hero','pos','1','+'}, param) then
                    str,value,name = '[#]-[Name]-[Points]-[Rank]\n--[Positive Reputation Highscores]--\n','rep','name'
                    result = db.getResult('SELECT `name`, `rep` FROM `players` WHERE `rep` > 0 AND `name` NOT LIKE "%Sample" AND `name`!= "Account Manager" AND `deleted` = 0 AND `group_id` = 1 ORDER BY `rep` DESC LIMIT '.. rep.results)
                elseif isInArray({'evil','neg','2','-'}, param) then
                    str,value,name = '[#]-[Name]-[Points]-[Rank]\n--[Negative Reputation Highscores]--\n','rep','name'
                    result = db.getResult('SELECT `name`, `rep` FROM `players` WHERE `rep` < 0 AND `name` NOT LIKE "%Sample" AND `name`!= "Account Manager" AND `deleted` = 0 AND `group_id` = 1 ORDER BY `rep` ASC LIMIT '.. rep.results)
                else
                    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[12])
                end

                if isInArray({-1,nil,false,''},result:getID()) then
                    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, rep.alert[13])
                end
                local i = 1
                while 1 do
                    str = str .. '\n ' .. i .. '. ' .. result:getDataString('name') .. ' - [' .. result:getDataInt(value) .. '] - ' .. rep.getData(result:getDataInt(value),1)
                    i = i + 1
                    if not(result:next()) then
                        break
                    end
                end
                result:free()
                return doPlayerPopupFYI(cid, str)
            elseif param == '' then
                local points, name = rep.getPoints(cid), getPlayerNameByGUID(getCreatureStorage(cid, rep.lastName), false, false)
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'You have '.. doNumberFormat(points) ..' reputation points. You have ' .. getCreatureStorage(cid, rep.opinion) .. ' opinion points and you will gain one '.. (getCreatureStorage(cid, rep.opinion) > 0 and 'more ' or '') ..'in '.. rep.interval - getCreatureStorage(cid, rep.online) ..' minutes.'.. (getBooleanFromString(rep.usePower) and ' Your Rep Power is ' .. rep.getData(points,3) ..'.' or '')..(name ~= nil and ' You last reputed ' .. name .. '.' or ''))

                if rep.getData(points,4) ~= nil and getCreatureOutfit(cid).lookType ~= rep.getData(points,4) then
                    doSetCreatureOutfit(cid, {lookType = rep.getData(points,4)}, -1)
                    doSendAnimatedText(getThingPos(cid), rep.getData(points,5), math.random(255))
                end
            end
            return 1
        ]=]=>
    </talkaction>
           
    <talkaction words="!hail;!fuck" event="buffer">
        <=!=[=C=D=A=T=A=[
            domodlib('repSystem')               
            local target = getPlayerByNameWildcard(param)
           
            if not isPlayer(target) then
                return doPlayerSendCancel(cid, rep.alert[14]:format(param))
            end
                                           
            if getPlayerLevel(cid) < rep.minLevel then
                return doPlayerSendCancel(cid, rep.alert[15]:format(rep.minLevel))
            end
               
            if getPlayerIp(cid) == getPlayerIp(target) then
                return doPlayerSendCancel(cid, rep.alert[16])  
            end
            
            if not getBooleanFromString(rep.allowMultiRepByCommand) and getPlayerGUID(target) == getCreatureStorage(cid, rep.lastName) then
                return doPlayerSendCancel(cid, rep.alert[17])
            end
           
            if getCreatureStorage(cid, rep.opinion) < rep.required then
                return doPlayerSendCancel(cid, rep.alert[18])  
            end
                                                 
            doCreatureSetStorage(cid, rep.lastName, getPlayerGUID(target))
            doCreatureSetStorage(cid, rep.opinion, getCreatureStorage(cid, rep.opinion)-rep.required)
            doPlayerSendCancel(cid, rep.alert[19]:format(getCreatureName(target),getCreatureStorage(cid, rep.opinion)))
            if words == '!hail' then            
                return rep.add(target, getBooleanFromString(rep.usePower) and rep.getData(rep.getPoints(cid),3) or rep.default, COLOR_LIGHTBLUE)
            elseif words == '!fuck' then
                return rep.remove(target, getBooleanFromString(rep.usePower) and rep.getData(rep.getPoints(cid),3) or rep.default, COLOR_RED)
            end
        ]=]=>
    </talkaction>
</mod>
only for tfs 0.3.7(0.4) though

y will test ;)
 
what if i got at another mod also function event type look
and i'm seting description too by doPlayerSetSpecialDescription ?
will my description and ur about rep system shown both ?
or i have to connect it some how ?
Lua:
function onLook(cid, thing, position, lookDistance)
                if isPlayer(thing.uid) and thing.uid ~= cid then
                    return doPlayerSetSpecialDescription(thing.uid,'\n'' 'some description...')
                elseif thing.uid == cid then     
                    local string = 'You see yourself.'
                    if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
                        string = string..' You are '.. getPlayerGroupName(cid) ..'.'
                    elseif getPlayerVocation(cid) ~= 0 then
                        string = string..' You are '.. getPlayerVocationName(cid) ..'.'
                    else
                        string = string..' You have no vocation.'
                    end
 
                    if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
                        string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.'
                    end
 
                    if getPlayerGuildId(cid) > 0 then 
                        string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
                        string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
                    end 
 
                    string = string..'\nYou are '.. rep.getData(rep.getPoints(cid),1) .. '.'
 
                    if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
                        string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
                        string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
                    end
 
                    if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
                        string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
                    end
                    return false, doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)  
                end
                return 1
            end
 
[24/08/2011 13:55:32] [Error - TalkAction Interface]
[24/08/2011 13:55:32] buffer
[24/08/2011 13:55:32] Description:
[24/08/2011 13:55:32] [string "loadBuffer"]:39: attempt to call global 'doNumberFormat' (a nil value)
 
sorry double post..
the script have problems in

advance, onlook, quest completed, etc... :S help? look.


PHP:
[24/08/2011 13:53:58] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:53:58] [Error - CreatureScript Interface] 
[24/08/2011 13:53:58] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:53:58] Description: 
[24/08/2011 13:53:58] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:53:58] stack traceback:
[24/08/2011 13:53:58] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:53:58] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:53:58] [Error - CreatureScript Interface] 
[24/08/2011 13:53:58] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:53:58] Description: 
[24/08/2011 13:53:58] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:53:58] stack traceback:
[24/08/2011 13:53:58] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:53:58] [Error - CreatureScript Interface] 
[24/08/2011 13:53:58] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:53:58] Description: 
[24/08/2011 13:53:58] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:53:59] stack traceback:
[24/08/2011 13:53:59] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:53:59] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:53:59] [Error - CreatureScript Interface] 
[24/08/2011 13:53:59] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:53:59] Description: 
[24/08/2011 13:53:59] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:53:59] stack traceback:
[24/08/2011 13:53:59] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:53:59] [Error - CreatureScript Interface] 
[24/08/2011 13:53:59] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:53:59] Description: 
[24/08/2011 13:53:59] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:53:59] stack traceback:
[24/08/2011 13:53:59] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:53:59] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:00] [Error - CreatureScript Interface] 
[24/08/2011 13:54:00] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:00] Description: 
[24/08/2011 13:54:00] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:00] stack traceback:
[24/08/2011 13:54:00] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:00] [Error - CreatureScript Interface] 
[24/08/2011 13:54:00] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:00] Description: 
[24/08/2011 13:54:00] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:54:00] stack traceback:
[24/08/2011 13:54:00] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:54:00] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:00] [Error - CreatureScript Interface] 
[24/08/2011 13:54:00] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:01] Description: 
[24/08/2011 13:54:01] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:01] stack traceback:
[24/08/2011 13:54:01] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:01] [Error - CreatureScript Interface] 
[24/08/2011 13:54:01] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:01] Description: 
[24/08/2011 13:54:01] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:54:01] stack traceback:
[24/08/2011 13:54:01] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:54:01] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:01] [Error - CreatureScript Interface] 
[24/08/2011 13:54:01] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:01] Description: 
[24/08/2011 13:54:02] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:02] stack traceback:
[24/08/2011 13:54:02] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:02] [Error - CreatureScript Interface] 
[24/08/2011 13:54:02] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:02] Description: 
[24/08/2011 13:54:02] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:54:02] stack traceback:
[24/08/2011 13:54:02] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:54:02] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:02] [Error - CreatureScript Interface] 
[24/08/2011 13:54:02] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:02] Description: 
[24/08/2011 13:54:02] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:02] stack traceback:
[24/08/2011 13:54:03] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:03] [Error - CreatureScript Interface] 
[24/08/2011 13:54:03] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:03] Description: 
[24/08/2011 13:54:03] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:54:03] stack traceback:
[24/08/2011 13:54:03] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:54:03] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:03] [Error - CreatureScript Interface] 
[24/08/2011 13:54:03] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:03] Description: 
[24/08/2011 13:54:03] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:03] stack traceback:
[24/08/2011 13:54:03] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:04] [Error - CreatureScript Interface] 
[24/08/2011 13:54:04] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:04] Description: 
[24/08/2011 13:54:04] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:54:04] stack traceback:
[24/08/2011 13:54:04] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:54:04] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:04] [Error - CreatureScript Interface] 
[24/08/2011 13:54:04] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:04] Description: 
[24/08/2011 13:54:04] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:05] stack traceback:
[24/08/2011 13:54:05] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:05] [Error - CreatureScript Interface] 
[24/08/2011 13:54:05] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:05] Description: 
[24/08/2011 13:54:05] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:54:05] stack traceback:
[24/08/2011 13:54:05] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:54:05] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:05] [Error - CreatureScript Interface] 
[24/08/2011 13:54:05] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:05] Description: 
[24/08/2011 13:54:05] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:06] stack traceback:
[24/08/2011 13:54:06] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:06] [Error - CreatureScript Interface] 
[24/08/2011 13:54:06] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:06] Description: 
[24/08/2011 13:54:06] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:54:06] stack traceback:
[24/08/2011 13:54:06] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:54:06] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:06] [Error - CreatureScript Interface] 
[24/08/2011 13:54:06] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:06] Description: 
[24/08/2011 13:54:06] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:07] stack traceback:
[24/08/2011 13:54:07] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:07] [Error - CreatureScript Interface] 
[24/08/2011 13:54:07] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:07] Description: 
[24/08/2011 13:54:07] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:54:07] stack traceback:
[24/08/2011 13:54:07] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:54:07] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:08] [Error - CreatureScript Interface] 
[24/08/2011 13:54:08] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:08] Description: 
[24/08/2011 13:54:08] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:08] stack traceback:
[24/08/2011 13:54:08] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:08] [Error - CreatureScript Interface] 
[24/08/2011 13:54:08] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:08] Description: 
[24/08/2011 13:54:08] data/creaturescripts/scripts/FragsOnLook.lua:13: attempt to call field 'insert' (a nil value)
[24/08/2011 13:54:08] stack traceback:
[24/08/2011 13:54:08] 	data/creaturescripts/scripts/FragsOnLook.lua:13: in function 'getPlayerFrags'
[24/08/2011 13:54:09] 	data/creaturescripts/scripts/FragsOnLook.lua:36: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:09] [Error - CreatureScript Interface] 
[24/08/2011 13:54:09] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:09] Description: 
[24/08/2011 13:54:09] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:09] stack traceback:
[24/08/2011 13:54:09] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:09] [Error - CreatureScript Interface] 
[24/08/2011 13:54:09] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:09] Description: 
[24/08/2011 13:54:09] data/creaturescripts/scripts/FragsOnLook.lua:22: attempt to call field 'maxn' (a nil value)
[24/08/2011 13:54:09] stack traceback:
[24/08/2011 13:54:09] 	data/creaturescripts/scripts/FragsOnLook.lua:22: in function 'getPlayerFrags'
[24/08/2011 13:54:10] 	data/creaturescripts/scripts/FragsOnLook.lua:39: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:10] [Error - CreatureScript Interface] 
[24/08/2011 13:54:10] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:10] Description: 
[24/08/2011 13:54:10] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:10] stack traceback:
[24/08/2011 13:54:10] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>

[24/08/2011 13:54:10] [Error - CreatureScript Interface] 
[24/08/2011 13:54:10] data/creaturescripts/scripts/FragsOnLook.lua:onLook
[24/08/2011 13:54:10] Description: 
[24/08/2011 13:54:11] data/creaturescripts/scripts/FragsOnLook.lua:22: attempt to call field 'maxn' (a nil value)
[24/08/2011 13:54:11] stack traceback:
[24/08/2011 13:54:11] 	data/creaturescripts/scripts/FragsOnLook.lua:22: in function 'getPlayerFrags'
[24/08/2011 13:54:11] 	data/creaturescripts/scripts/FragsOnLook.lua:39: in function <data/creaturescripts/scripts/FragsOnLook.lua:34>

[24/08/2011 13:54:11] [Error - CreatureScript Interface] 
[24/08/2011 13:54:11] data/creaturescripts/scripts/questLook.lua:onLook
[24/08/2011 13:54:11] Description: 
[24/08/2011 13:54:11] data/creaturescripts/scripts/questLook.lua:7: attempt to call field '?' (a nil value)
[24/08/2011 13:54:11] stack traceback:
[24/08/2011 13:54:11] 	data/creaturescripts/scripts/questLook.lua:7: in function <data/creaturescripts/scripts/questLook.lua:1>
 
Status
Not open for further replies.
Back
Top