Dookie Posted September 7, 2013 Share Posted September 7, 2013 Hi, ive got this in .lua 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 = 1 -- XP needed for level 1lvl2xp = 5 -- XP needed for level 2lvl3xp = 15 -- XP needed for level 3 ------------------------------------------------------------------------ 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 itfunction 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) endend 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 endend function isBot(playerID) if et.gentity_get(playerID,"ps.ping") == 0 then return true endend Any this in my server.cfg: // Lua APIset lua_modules "kspree.lua;autopromo.lua"set lua_allowedModules "" Anf ofc i uploaded lua file in my silent folder, but its still not working, when any of this XP's are reached nothing happends. Any ideas? thanks Quote Link to comment Share on other sites More sharing options...
Dragonji Posted September 7, 2013 Share Posted September 7, 2013 Yes, one have to respawn before he receives promotion. Quote Link to comment Share on other sites More sharing options...
Dookie Posted September 7, 2013 Author Share Posted September 7, 2013 Hey thanks! Works, but only up to lvl 2, when i reach over xp 15, and die, it doesnt promote me to lvl 3, it stays on 2. Any ideas? Quote Link to comment Share on other sites More sharing options...
Subscriber tapir76 Posted September 7, 2013 Subscriber Share Posted September 7, 2013 Hey thanks! Works, but only up to lvl 2, when i reach over xp 15, and die, it doesnt promote me to lvl 3, it stays on 2. Any ideas? does not promote at level 4. you do not have a defined lvl4 and lvl 5 lvl1xp = 1 -- XP needed for level 1lvl2xp = 5 -- XP needed for level 2lvl3xp = 15 -- XP needed for level 3lvl4xp ="???"lvl5xp =" ???" Quote Link to comment Share on other sites More sharing options...
Dragonji Posted September 7, 2013 Share Posted September 7, 2013 Hey thanks! Works, but only up to lvl 2, when i reach over xp 15, and die, it doesnt promote me to lvl 3, it stays on 2. Any ideas?Change this part:-- 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 and valXP < lvl5xp then setlevel(clientNum,4,lvl4xp) elseif valXP >= lvl5xp then setlevel(clientNum,5,lvl5xp) end endWith this:-- 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 then setlevel(clientNum,3,lvl3xp) end end Quote Link to comment Share on other sites More sharing options...
Management TheSilencerPL Posted September 7, 2013 Management Share Posted September 7, 2013 Best would be to create an array of levels and do the comparison in the loop or something. This way you could extend the number of levels without modifying the et_ClientSpawn function. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.