Dragonji Posted March 3, 2012 Share Posted March 3, 2012 (edited) File Name: AutoPromoFile Submitter: DragonFile Submitted: 20 Feb 2012File Category: LUA AutoPromo Lua script which automatically sets admin levels basing on player's XP. Installation:1. Unzip.2. Open the file with notepad and configure it for your needs.3. Upload it into "silent" folder located on your server.4. Add "autopromo.lua" to lua_modules cvar. Click here to download this file Edited August 6, 2012 by Dragon Meva and Chuckun 2 Link to comment Share on other sites More sharing options...
Dookie Posted May 23, 2012 Share Posted May 23, 2012 (edited) ow this is great! ty! can you just tell me what I need to write in notepad file if i want for example Level 1 when people reach 1000 xpLevel 2 when people reach 10000xpLevel 3 when people reach 50000xp thx Edited May 23, 2012 by Dookie Link to comment Share on other sites More sharing options...
Management TheSilencerPL Posted May 23, 2012 Management Share Posted May 23, 2012 Some comments to the code.function et_ClientSpawn calls getXP 9 times.getXP itself asks the game through the et_gentity_get To make it better, faster, less aggravating for the game store the XP locally and reuse it.For example: function et_ClientSpawn( clientNum, revived, teamChange, restoreHealth ) local valXP = getXP(clientNum) if valXP >= lvl1xp and valXP < lvl2xp then setlevel(clientNum,1,lvl1xp) elseif valXP >= lvl2xp and valXP < lvl3xp then setlevel(clientNum,2,lvl2xp) elseif valXP >= lvl3xp and valXP < lvl4xp then setlevel(clientNum,3,lvl3xp) elseif valXP >= lvl4xp and valXP < lvl5xp then setlevel(clientNum,4,lvl4xp) elseif valXP >= lvl5xp then setlevel(clientNum,5,lvl5xp) end end Dragonji 1 Link to comment Share on other sites More sharing options...
Chuckun Posted May 24, 2012 Share Posted May 24, 2012 Sweet LUA man Very cool for keeping your regulars 'awarded' Link to comment Share on other sites More sharing options...
Dookie Posted May 31, 2012 Share Posted May 31, 2012 yea, great feature! Link to comment Share on other sites More sharing options...
Dookie Posted July 5, 2012 Share Posted July 5, 2012 hey, ive got this all except 1 thing, what do I have to put in my server.cfg after ive put autopromotion.lua in my silent folder? Ive been reading about this lua_allowed_modules but haeavent found sum example or something? So lil help will be appreciated! Link to comment Share on other sites More sharing options...
Management gaoesa Posted July 5, 2012 Management Share Posted July 5, 2012 Only use lua_modules cvar. Don't put anything in lua_allowedModules. set lua_modules "autopromotion.lua" Link to comment Share on other sites More sharing options...
Hitman Posted November 24, 2013 Share Posted November 24, 2013 can u tell me how can i make like thisIf people get X number of xps and if that player is X level then only he gets promotion or not Link to comment Share on other sites More sharing options...
Management TheSilencerPL Posted November 24, 2013 Management Share Posted November 24, 2013 It's in the lua file you need to download and install on the server. To specify your own XP levels you have to edit that file.Click here to download the file. Then install it on the server, suit your needs by editing it and it's done. Link to comment Share on other sites More sharing options...
Hitman Posted November 24, 2013 Share Posted November 24, 2013 can u tell me how can i make like thisIf people get X number of xps and if that player is X level then only he gets promotion or notit is just X Number of xps if someone gains they will get promotion but i want likeif X number of xps gained and if the player is "X" level then only he will get promotion not just xps Link to comment Share on other sites More sharing options...
Management TheSilencerPL Posted November 24, 2013 Management Share Posted November 24, 2013 Something I've written ad-hoc to handle your case: LVL1 = 3 LVL2 = 4 LVL3 = 5 LVL4 = 6 function et_ClientSpawn(clientNum, revived, teamChange, restoreHealth) local valXP = getXP(clientNum) local level = et.G_shrubbot_level( clientNum ); if level == LVL1 then if valXP >= lvl2xp and valXP < lvl3xp then setlevel(clientNum,2,lvl2xp) end elseif level == LVL2 then if valXP >= lvl3xp and valXP < lvl4xp then setlevel(clientNum,3,lvl3xp) end elseif level == LVL3 then if valXP >= lvl4xp and valXP < lvl5xp then setlevel(clientNum,4,lvl4xp) end end endLVL1 .. LVL4 are levels you want to handle, only for those levels xp check will be done.The code inside if level == LVL1 thenis up to you, here is the behavior I would want, which is: check if the xp is of the higher level and if it is, give the higher level. Not tested. Link to comment Share on other sites More sharing options...
Hitman Posted November 24, 2013 Share Posted November 24, 2013 sorry but iam Really "Newbie" in lua things so i should write this lua like this? this is my lua so where i should write this code in this file? ---------------------------------------------------------------------- -- AutoPromo - An Enemy Territory Auto Promoting Mod ---------------------------------------------------------------------- description = "AutoPromo" version = "1.1" ---------------------------------------------------------------------- -- This script can be freely used and modified as long as the original -- authors are mentioned. -- Created by Perlo_0ung, edited by Dragon -- Adapted for silEnT mod 0.5.0 and higher ---------------------------------------------------------------------- -- CONFIGURATION ---------------------------------------------------------------------- lvl1xp = 1111 -- XP needed for level 1 lvl2xp = 2999 -- XP needed for level 2 lvl3xp = 4599 -- XP needed for level 3 lvl4xp = 100000 -- XP needed for level 4 ---------------------------------------------------------------------- -- DO NOT EDIT BELOW THIS LINE -- UNLESS YOU KNOW WHAT YOU'RE DOING ---------------------------------------------------------------------- function et_InitGame(levelTime,randomSeed,restart) local modname = string.format("%s v%s", description, version) et.G_Print(string.format("%s loaded\n", modname)) et.RegisterModname(modname) end -- TheSilencerPL - To make it better, faster and less aggravating -- for the game, store the XP locally and reuse it function et_ClientSpawn(clientNum, revived, teamChange, restoreHealth) local valXP = getXP(clientNum) if valXP >= lvl1xp and valXP < lvl2xp then setlevel(clientNum,1,lvl1xp) elseif valXP >= lvl2xp and valXP < lvl3xp then setlevel(clientNum,2,lvl2xp) elseif valXP >= lvl3xp and valXP < lvl4xp then setlevel(clientNum,3,lvl3xp) elseif valXP >= lvl4xp then setlevel(clientNum,4,lvl4xp) end end function getXP(playerID) return et.gentity_get(playerID, "ps.persistant", 0) end function getlevel(playerID) return et.G_shrubbot_level(playerID) end function setlevel(playerID, newlevel, xp) local name = et.gentity_get(playerID,"pers.netname") if isBot(playerID) or noGuid(playerID) then return end if newlevel <= getlevel(playerID) then return end et.trap_SendServerCommand(-1,"bp \"^nCongratulations ^7"..name.."^n, ^nyou have ^nbeen ^npromoted ^nto ^na ^nlevel ^7"..newlevel.." ^nuser!\"") et.trap_SendConsoleCommand( et.EXEC_APPEND, "setlevel ".. playerID.." "..newlevel.."\n" ) et.trap_SendConsoleCommand( et.EXEC_APPEND, "readconfig\n" ) end function noGuid(playerID) local userinfo = et.trap_GetUserinfo( playerID ) local guid = et.Info_ValueForKey( userinfo, "sil_guid" ) if guid == "NO_GUID" or guid == "unknown" then return true end end function isBot(playerID) if et.gentity_get(playerID,"ps.ping") == 0 then return true end end Link to comment Share on other sites More sharing options...
Recommended Posts