Exemplo n.º 1
0
local void Cmakefake(const char *tc, const char *params, Player *p, const Target *target)
{
	CreateFakePlayer(params, p->arena, SHIP_SPEC, 9999);
}


local void Ckillfake(const char *tc, const char *params, Player *p, const Target *target)
{
	if (target->type == T_PLAYER)
		EndFaked(target->u.p);
}


local Ifake _int =
{
	INTERFACE_HEAD_INIT(I_FAKE, "fake")
	CreateFakePlayer, EndFaked
};

EXPORT const char info_fake[] = CORE_MOD_INFO("fake");

EXPORT int MM_fake(int action, Imodman *mm_, Arena *arena)
{
	if (action == MM_LOAD)
	{
		mm = mm_;
		pd = mm->GetInterface(I_PLAYERDATA, ALLARENAS);
		aman = mm->GetInterface(I_ARENAMAN, ALLARENAS);
		cmd = mm->GetInterface(I_CMDMAN, ALLARENAS);
		net = mm->GetInterface(I_NET, ALLARENAS);
		chatnet = mm->GetInterface(I_CHATNET, ALLARENAS);
Exemplo n.º 2
0
             
	        mysql->Query(NULL, NULL, 0, "INSERT INTO hs_transactions (srcplayer, tgtplayer, action, amount) VALUES(#,#,#,#)",
					database->getPerPlayerData(cplayer)->id,
					database->getPerPlayerData(cplayer)->id,
					MONEY_TYPE_GRANT,
					newAmount);
		  }
		}
	}
	/* stop the loving from above... */
}
      

local Ihscoremoney interface =
{
	INTERFACE_HEAD_INIT(I_HSCORE_MONEY, "hscore_money")
	giveMoney, setMoney, getMoney, getMoneyType,
	giveExp, setExp, getExp,
};

EXPORT const char info_hscore_moneycjf[] = "v1.0 Dr Brain <*****@*****.**>; CypherJF <*****@*****.**>";

EXPORT int MM_hscore_moneycjf(int action, Imodman *_mm, Arena *arena)
{
	if (action == MM_LOAD)
	{
		mm = _mm;

		lm = mm->GetInterface(I_LOGMAN, ALLARENAS);
		chat = mm->GetInterface(I_CHAT, ALLARENAS);
		cfg = mm->GetInterface(I_CONFIG, ALLARENAS);
Exemplo n.º 3
0
local void LogFile(const char *);
local void FlushLog(void);
local void ReopenLog(void);
local int flush_timer(void *dummy);

local FILE *logfile;
local pthread_mutex_t logmtx = PTHREAD_MUTEX_INITIALIZER;

local Iconfig *cfg;
local Ilogman *lm;
local Imainloop *ml;
local Icmdman *cmd;

local Ilog_smod _lfint =
{
	INTERFACE_HEAD_INIT(I_LOG_SMOD, "log_smod")
	FlushLog, ReopenLog
};


local helptext_t smodlog_help =
"Targets: none\n"
"Args: {flush} or {reopen}\n"
"Administers the log file that the server keeps. There are two possible\n"
"subcommands: {flush} flushes the log file to disk (in preparation for\n"
"copying it, for example), and {reopen} tells the server to close and\n"
"re-open the log file (to rotate the log while the server is running).\n";

local void Csmodlog(const char *tc, const char *params, Player *p, const Target *target)
{
	if (!strcasecmp(params, "flush"))
Exemplo n.º 4
0
local void ShipFreqChange(Player *p, int newship, int oldship, int newfreq, int oldfreq);
local void PlayerAction(Player *p, int action, Arena *a);

// Timers
local int UpdateScores(void *a);

// Commands
local helptext_t flagtime_help =
"Targets: none\n"
"Args: none\n"
"Displays a breakdown of the current flag time scores.";
local void C_flagtime(const char *command, const char *params, Player *p, const Target *target);

MYINTERFACE =
{
	INTERFACE_HEAD_INIT(I_HS_FLAGTIME, "hs_flagtime")
	GetFlagTeam,
	GetFlagOwner,
	GetFlagSeconds,
	GetStatus,
	SetStatus,
	Reset
};

DEF_GLOBALINTERFACE;

EXPORT const char info_hs_flagtime[] = "08.01.22 by D1st0rt <*****@*****.**>";
EXPORT int MM_hs_flagtime(int action, Imodman *mm_, Arena *arena)
{
	MM_FUNC_HEADER();
Exemplo n.º 5
0

local int HigherThan(Player *a, Player *b)
{
	char cap[MAXGROUPLEN+16];
	const char *bgrp = ((pdata*)PPDATA(b, pdkey))->group;
	snprintf(cap, sizeof(cap), "higher_than_%s", bgrp);
	return HasCapability(a, cap);
}


/* interface */

local Icapman capint =
{
	INTERFACE_HEAD_INIT(I_CAPMAN, "capman-groups")
	HasCapability, HasCapabilityByName, HasCapabilityInArena, HigherThan
};

local Igroupman grpint =
{
	INTERFACE_HEAD_INIT(I_GROUPMAN, "groupman")
	GetGroup, SetPermGroup, SetTempGroup,
	RemoveGroup,
	CheckGroupPassword
};

EXPORT const char info_capman[] = CORE_MOD_INFO("capman");

EXPORT int MM_capman(int action, Imodman *mm_, Arena *arena)
{
Exemplo n.º 6
0
		return;
	}

	ft = mm->GetInterface(I_FILETRANS, ALLARENAS);
	if (ft && ft->SendFile(p, "clients/update.exe", "", FALSE) != MM_OK)
		lm->Log(L_WARN, "<mapnewsdl> update request, but clients/update.exe doesn't exist");
	mm->ReleaseInterface(ft);
}



/* interface */

local Imapnewsdl _int =
{
	INTERFACE_HEAD_INIT(I_MAPNEWSDL, "mapnewsdl")
	SendMapFilename, GetNewsChecksum
};

EXPORT const char info_mapnewsdl[] = CORE_MOD_INFO("mapnewsdl");

EXPORT int MM_mapnewsdl(int action, Imodman *mm_, Arena *arena)
{
	if (action == MM_LOAD)
	{
		/* get interface pointers */
		mm = mm_;
		pd = mm->GetInterface(I_PLAYERDATA, ALLARENAS);
		net = mm->GetInterface(I_NET, ALLARENAS);
		lm = mm->GetInterface(I_LOGMAN, ALLARENAS);
		cfg = mm->GetInterface(I_CONFIG, ALLARENAS);
Exemplo n.º 7
0
local void aaction(Arena *arena, int action)
{
	jpdata *jpd = P_ARENA_DATA(arena, jpkey);
	LOCK();
	/* cfghelp: Kill:JackpotBountyPercent, arena, int, def: 0
	 * The percent of a player's bounty added to the jackpot on each
	 * kill. Units: 0.1%. */
	if (action == AA_CREATE || action == AA_CONFCHANGED)
		jpd->percent = cfg->GetInt(arena->cfg, "Kill", "JackpotBountyPercent", 0);
	UNLOCK();
}


local Ijackpot jpint =
{
	INTERFACE_HEAD_INIT(I_JACKPOT, "jackpot")
	ResetJP, AddJP, GetJP, SetJP
};

EXPORT const char info_jackpot[] = CORE_MOD_INFO("jackpot");

EXPORT int MM_jackpot(int action, Imodman *mm_, Arena *arena)
{
	if (action == MM_LOAD)
	{
		mm = mm_;
		aman = mm->GetInterface(I_ARENAMAN, ALLARENAS);
		cfg = mm->GetInterface(I_CONFIG, ALLARENAS);
		persist = mm->GetInterface(I_PERSIST, ALLARENAS);
		if (!aman || !cfg || !persist) return MM_FAIL;
Exemplo n.º 8
0
}

local int GetCanBufferPackets(BWLimit *bw)
{
	return 30;
}

local void GetInfo(BWLimit *bw, char *buf, int buflen)
{
	astrncpy(buf, "(no limit)", buflen);
}


local struct Ibwlimit bwint =
{
	INTERFACE_HEAD_INIT(I_BWLIMIT, "bw-nolimit")
	New, NoOp1,
	NoOp2, Check,
	NoOp1, NoOp1,
	GetCanBufferPackets, GetInfo
};

EXPORT const char info_bw_nolimit[] = CORE_MOD_INFO("bw_nolimit");

EXPORT int MM_bw_nolimit(int action, Imodman *mm, Arena *arena)
{
	if (action == MM_LOAD)
	{
		mm->RegInterface(&bwint, ALLARENAS);
		return MM_OK;
	}
Exemplo n.º 9
0
local int ClientEncrypt(ClientEncryptData *ced, byte *, int);
local int ClientDecrypt(ClientEncryptData *ced, byte *, int);
local void ClientVoid(ClientEncryptData *ced);


/* globals */

local int enckey;
local pthread_mutex_t mtx;

local Inet *net;
local Iplayerdata *pd;

local Iencrypt ienc =
{
	INTERFACE_HEAD_INIT("__unused__", "enc-vie")
	Encrypt, Decrypt, Void
};

local Iclientencrypt iclienc =
{
	INTERFACE_HEAD_INIT("__unused__", "enc-vie-client")
	ClientInit, ClientEncrypt, ClientDecrypt, ClientVoid
};

EXPORT const char info_enc_vie[] = CORE_MOD_INFO("enc_vie");

EXPORT int MM_enc_vie(int action, Imodman *mm, Arena *arena)
{
	if (action == MM_LOAD)
	{
Exemplo n.º 10
0
{
	char work[NAMELEN+PWLEN];
	check_state_t *st = amalloc(sizeof(*st));
	st->done = done;
	st->clos = clos;
	hash_password(name, pwd, st->given, work);
	persist->GetGeneric(
			KEY_PWCACHE,
			work, NAMELEN,
			st->expected, HASHLEN,
			check_done, st);
}

local Ipwcache pwint =
{
	INTERFACE_HEAD_INIT(I_PWCACHE, "pwcache")
	Set, Check
};

EXPORT const char info_pwcache[] = CORE_MOD_INFO("pwcache");

EXPORT int MM_pwcache(int action, Imodman *mm, Arena *arena)
{
	if (action == MM_LOAD)
	{
		persist = mm->GetInterface(I_PERSIST, ALLARENAS);
		if (!persist)
			return MM_FAIL;
		mm->RegInterface(&pwint, ALLARENAS);
		return MM_OK;
	}