AdminMod.de
https://www.adminmod.de/

script fix
https://www.adminmod.de/viewtopic.php?t=9941
Seite 1 von 1

Autor:  caramel [ 08.03.2007, 19:40 ]
Betreff des Beitrags:  script fix

Hi,
first, my code:
Code:

#include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>

#define VERSION 0.1

enum action 
{
	
	action_say,
	player_gag,
	player_kick,
	player_ban
};


new MAX_SPAM = 3;
new MAX_SPAM_TIME = 5;
new START_W_ACTION = player_gag;
new GAG_TIME = 20;  
new BAN_TIME = 360;  // ban player for 360 seconds :P

new LastText[MAX_PLAYERS][MAX_TEXT_LENGTH];
new SpamCount[MAX_PLAYERS];
new FirstTime[MAX_PLAYERS];
new GagTime[MAX_PLAYERS];

public hook_say(HLCommand, HLData, HLUserName, u) 
{
	new Data[MAX_DATA_LENGTH];
	new User[MAX_NAME_LENGTH];
	new s[MAX_TEXT_LENGTH];
	new Time[MAX_TEXT_LENGTH];
	new now;

	now = servertime(Time,MAX_TEXT_LENGTH);


	if ( GagTime[u] > now )
	return PLUGIN_HANDLED;

	convert_string(HLData,Data,MAX_DATA_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	
	strstripquotes(Data);


	if( (strlen(Data)>0) && (streq( Data, LastText[u] ) == 1) ) 
	{
		SpamCount[u] = SpamCount[u] + 1;

		
		if ( (SpamCount[u] >= MAX_SPAM) &&	((FirstTime[u] + MAX_SPAM_TIME) > now)) {
			switch ( START_W_ACTION ) {
				case action_say: 
				{
					snprintf(s,MAX_TEXT_LENGTH,"Don't spam idiot, %s.",User);
					say(s);
				}

				case player_gag: 
				{
					GagTime[u] = now + GAG_TIME;
					snprintf(s,MAX_TEXT_LENGTH,"%s has been gagged %d seconds for spamming.", User, GAG_TIME);
					say(s);
				}

				case player_kick: 
				{
					snprintf(s,MAX_TEXT_LENGTH,"%s has kicked because is an idiot an spam server",User);
					say(s);
					kick(User);
				}

				case player_ban: 
				{
					snprintf(s,MAX_TEXT_LENGTH,"%s has been banned %d minutes for spamming.",User,BAN_TIME);
					say(s);
					ban(User,BAN_TIME);
				}
			}
			SpamCount[u]=0;
			FirstTime[u]=0;
		}
	}

	else 
	{
		strcpy(LastText[u],Data,MAX_TEXT_LENGTH);
		FirstTime[u] = now;

	}

	return PLUGIN_CONTINUE;
}

public plugin_init() 
{
	new j; // the contor

	plugin_registerinfo("new plugin test","me",VERSION);
	plugin_registercmd("say","hook_say",0);

	for(j=0;j<MAX_PLAYERS;j++) 
	{
		SpamCount[j]=0;
		LastText[j][0]=0;
		FirstTime[j]=0;
	}
	return PLUGIN_CONTINUE;
}
1) I want to add cvars for set the ban time, gag time etc . Give me an example
2) Fix if have any bugs,

Initial i scripting amxx plugins, but i don't so somebody who interests adminmod coding, so i deside to make new plugins

So fix it,

Thanks

Autor:  Sir Drink a lot [ 08.03.2007, 20:10 ]
Betreff des Beitrags: 

oh ;) A new star is born *gg*

okay... some issues:

1. AdminMod uses different code than AMXMod. Download AdminMod and unzip it to your computer. Change to halflife-admin-2.50.60-win\Adminmod\scripting an take a look into \include folder. These functions you can use. Take also a look into \examples folder to see, how to register cmds and using public functions;)

2. You can't register cvars with AdminMod. You need to add vault.ini entries to store values.

3. AdminMod has an plugin_antiflood, which may be do same you want to do. Take a look.

If you need more help, ask again!

Autor:  caramel [ 08.03.2007, 20:16 ]
Betreff des Beitrags: 

ok, some revisions, little changes, and maybe submit :o
Have any suggestions for this ?

Autor:  Sir Drink a lot [ 08.03.2007, 20:51 ]
Betreff des Beitrags: 

oh... too many details to explain.

I maybe rewrite the plugin (if i got time) that it works. It is easier for you to understand then. If you donwload AdminMod Full Version and unzip it, you maybe can copy your plugin_test.sma to:

halflife-admin-2.50.60-win\Adminmod\scripting\myscripts

and hit "compile_all.bat"

Then you will see all error messages in plugin ;)

plugin_test.sma(7) Error [070]: rational number support was not enabled
plugin_test.sma(103) Error [035]: argument type mismatch (argument 3)

(7) and (103) are the line numbers.

Autor:  caramel [ 08.03.2007, 21:13 ]
Betreff des Beitrags: 

i solved. Thanks
Take a look here : forum/viewtopic.php?t=9942

Seite 1 von 1 Alle Zeiten sind UTC+01:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/