AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Unapproved/Old Plugins (https://forums.alliedmods.net/forumdisplay.php?f=27)
-   -   Random Map on Server Startup (https://forums.alliedmods.net/showthread.php?t=52352)

DataMatrix 03-08-2007 21:58

Random Map on Server Startup
 
1 Attachment(s)
Well, I couldn't find one myself, and can't believe there isn't one (I think). So I decided to make one.

Changelog:
* v1.0.0 - Initial Release
* v1.1.0 - Optimised code greatly, and actually fixed it not changing :P
* v1.1.1 - Fixed again - this time, it WILL work xD
* v1.1.2 - Removed some useless crap...
* v1.2.0 - Implemented some of the changes that Hawk552 suggested (now you can't say I don't listen)
* v1.2.1 - Optimisation suggested by Hawk552
* v1.2.5 - Added a way to turn the script off with sv_randommap <0/1> (0 for off, 1 for on)

Cvars:
sv_randommap <1/0> - Set to 0 to disable the random map or set to 1 to enable it as normal.

To install:
1: Compile
2: Reference in plugins.ini
3: Start the server up (it will load your startup map then calculate a random map from maps.ini or mapcycle.txt and then change the map)

Suggestions? Problems? Let me know (IN HERE PLEASE).

For v1.2.5+ please make sure you have written the cvar sv_randommap in server.cfg or this may not work.

FormulaZero 03-08-2007 22:01

Re: Random Map on Server Startup
 
Problems:
Bad description
No file
Gaben?

DataMatrix 03-08-2007 22:03

Re: Random Map on Server Startup
 
Bad description? Have you even read the title? I think that explains it all.

No file? Are you blind?

FormulaZero 03-08-2007 22:07

Re: Random Map on Server Startup
 
1. You need to add a description and explain and get into more detail.
2. You uploaded the file when I was typing that.

DataMatrix 03-08-2007 22:10

Re: Random Map on Server Startup
 
1: No, I don't need to go into detail about a small plugin, it's self explanatory. Or shall I just post every function used just for a description?
2: Actually I deleted the file, and reuploaded it because I found a typo.

DataMatrix 03-09-2007 01:04

Re: Random Map on Server Startup
 
Okay guys, I just realised that the code was messed up so I have fixed it and optimised it.

Arkshine 03-09-2007 06:39

Re: Random Map on Server Startup
 
1 Attachment(s)
I've tried too. I think it's a little more efficient & optimize. Feel free to use or not.

Cvars :
  • sv_mapchanged "1"
    // <1|0> : Enable/Disable plugin
  • sv_mapcycle "0"
    // <0|1> Mapcycle choice :
    //
    // "0" : mapcycle.txt
    // "1" : maps.ini


Binary 03-09-2007 07:11

Re: Random Map on Server Startup
 
cool thx!

Hawk552 03-09-2007 15:34

Re: Random Map on Server Startup
 
DataMatrix obviously won't be able to maintain this. Unapproved.

DataMatrix 03-09-2007 17:00

Re: Random Map on Server Startup
 
Quote:

Originally Posted by Hawk552 (Post 450588)
DataMatrix obviously won't be able to maintain this. Unapproved.

Uhh... What? Not able to maintain this? What is there to maintain? It's a complete plugin...

vvg125 03-09-2007 17:20

Re: Random Map on Server Startup
 
Every plugin can break or have a bug. Just because it's simple doesn't guarantee anything.

DataMatrix 03-12-2007 02:57

Re: Random Map on Server Startup
 
v1.12 released

Styles 03-19-2007 17:57

Re: Random Map on Server Startup
 
Hehe, its a cool idea, give him a shot. Unapprove it later if he shows that he can't handel it. But if he can, hell give him a shot, You don't know if you don't give him a try ;)

Hawk552 03-19-2007 18:54

Re: Random Map on Server Startup
 
Quote:

Originally Posted by styles (Post 454414)
Hehe, its a cool idea, give him a shot. Unapprove it later if he shows that he can't handel it. But if he can, hell give him a shot, You don't know if you don't give him a try ;)

Really? How about no?
Code:
    new norandom[32]     get_cvar_string("sv_norandom",norandom,32)     if (!equal(norandom,"1"))     {         register_cvar("sv_norandom","")     }

What's this? Why not just use pcvars?

Code:
    else return PLUGIN_HANDLED

Uhh... why not just combine the RandomMap() function call into the if statement, which also justifies putting brackets in it? Also, why did you return PLUGIN_HANDLED? Why did you even return PLUGIN_CONTINUE? If you HAD to do this, the fastest way (typing-wise) would probably be to just use "return".

Code:
    public RandomMap() {

Okay, you got me here. Why is it public? Is it called anywhere outside of the plugin? Is it a forward? No? Drop the "public" keyword.

Code:
    new configsdir[256],file[256],mapname[256],junk     get_configsdir(configsdir,256)         format(file,256,"%s/maps.ini",configsdir)

I not only don't get why you don't just do this:

Code:
add(configsdir,255,"/maps.ini")

But I don't get why you missed a simple thing like the risk of a buffer overflow. You don't declare an array as 256 then use 256 as the max length, it's 255 to allow for the null terminator.

Code:
    if (!file_exists(file)) format(file,256,"mapcycle.txt")     else if (!file_exists(file))     {         server_print("[AMXX] WARNING! Could not find %s/maps.ini or mapcycle.txt in order to randomise startup map!",configsdir)         return PLUGIN_HANDLED     }

Why return PLUGIN_HANDLED? There's no point, the return value doesn't do anything. On top of that, you should use log_amx for people who don't have direct access to the console. It might also be a good idea to use copy instead of format, since there are no variables.

Code:
    new size = file_size(file,1)     new rand = random_num(0,size)     read_file(file,rand,mapname,256,junk)

Nothing really too wrong here, but if I were to do it, I would have declared the variables like this to save space:

Code:
new size = file_size(file,1), rand = random_num(0,size)

It's also probably better to use the "random" function, since you don't have to push an additional parameter onto the stack. The usage would be something like "random(size)"

Code:
        set_cvar_string("sv_norandom","1")     server_print("[AMXX] Randomising map...")     server_cmd("changelevel %s",mapname)

This may confuse server owners who think they should set this. Not really any way around it that I can think of, but also you should either use log_amx or just remove the server_print section entirely.

Code:
    return PLUGIN_CONTINUE

Useless, if you avoided the return that I mentioned earlier, you wouldn't need this.

In conclusion, this is staying here.

DataMatrix 03-21-2007 16:26

Re: Random Map on Server Startup
 
Uhh, if I remove
Code:
return PLUGIN_HANDLED
the code continues and the map changes regardless of the if statements.

You must end the current function with return if you don't want any other code to be executed. But meh, I like PHP better, I always thought of return PLUGIN_HANDLED as the equivalent to die();

Besides, do you see any other map randomisers? Well I don't, so if you can do better, please do, and who cares about an overflow, as soon as the map changes the damn plugin disables itself.

Hawk552 03-21-2007 20:38

Re: Random Map on Server Startup
 
Quote:

Originally Posted by DataMatrix (Post 455216)
Uhh, if I remove Code:
return PLUGIN_HANDLED

the code continues and the map changes regardless of the if statements.

You must end the current function with return if you don't want any other code to be executed. But meh, I like PHP better, I always thought of return PLUGIN_HANDLED as the equivalent to die();

Besides, do you see any other map randomisers? Well I don't, so if you can do better, please do, and who cares about an overflow, as soon as the map changes the damn plugin disables itself.

I don't think I've ever seen anyone here as dense as you. Instead of admitting your mistakes and fixing them, you shrug them off and blame me for your failure to code a 20 line plugin effectively.

You don't need the return statement because it can be rewritten:
Code:
    if (!equal(norandom,"1"))     {         register_cvar("sv_norandom","")     }     else return PLUGIN_HANDLED         RandomMap()         return PLUGIN_CONTINUE

->

Code:
if(!equali(norandom,"1") {     register_cvar("sv_norandom","")     RandomMap() }

If you don't want to fix the overflow, that's fine with me. This won't stand a prayer in hell of being approved, though.

DataMatrix 03-22-2007 15:19

Re: Random Map on Server Startup
 
v1.2.0 released.

Hawk552 03-22-2007 17:44

Re: Random Map on Server Startup
 
Also, I didn't notice at first but you can do:

Code:
if(get_cvar_num("sv_norandom") != 2)

Instead of your crazy stuff.

DataMatrix 03-23-2007 03:45

Re: Random Map on Server Startup
 
Quote:

Originally Posted by Hawk552 (Post 455642)
Also, I didn't notice at first but you can do:

Code:
if(get_cvar_num("sv_norandom") != 2)

Instead of your crazy stuff.

Done.

v1.2.1 released.

DataMatrix 03-27-2007 13:16

Re: Random Map on Server Startup
 
v1.2.5 released.

PS: Hawk552, what is the difference with pcvars and cvars?

Arkshine 03-27-2007 14:30

Re: Random Map on Server Startup
 
http://wiki.amxmodx.org/index.php/Op...#Cvar_Pointers

Dominion 04-12-2007 13:23

Re: Random Map on Server Startup
 
mhh didnt work, plugin runs and cvar sv_randommap 1 is set in server.cfg.

Rirre 05-14-2010 07:25

Re: Random Map on Server Startup
 
This plugin is in need of a new developer.
Current version doesn't work.

fysiks 05-14-2010 17:45

Re: Random Map on Server Startup
 
Quote:

Originally Posted by Rirre (Post 1179825)
This plugin is in need of a new developer.
Current version doesn't work.

Hence why it is unapproved.

KadiR 05-16-2010 13:14

Re: Random Map on Server Startup
 
http://forums.alliedmods.net/showpos...72&postcount=7

?

Rirre 05-19-2010 14:26

Re: Random Map on Server Startup
 
Quote:

Originally Posted by KadiR (Post 1182301)

Do not work either.


All times are GMT -4. The time now is 08:36.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.