serverbanner_maker.smx 源碼 (部份)
輸出serverbanner_maker.txt 的function源碼不公開 , function名為makefile()
複製內容到剪貼板
代碼:
#include
#define PLUGIN_VERSION "0.0 (10:00 14/11/10)"
#define CVAR_FLAGS FCVAR_PLUGIN
new Handle:plugin_onoff;
new Handle:plugin_debug;
new Handle:save_timer_interval;
new Handle:save_on_change;
new Handle:record_file = INVALID_HANDLE;
new Handle:save_timer = INVALID_HANDLE
public Plugin:myinfo =
{
name = "簽名檔製作器server banner maker(smx part)",
author = "dogwong/Marco Chan",//我的第15個插件
description = "no",
version = PLUGIN_VERSION,
url = "http://www..com/space.php?uid=4411"
}
public OnPluginStart(){
RegAdminCmd("sbm_make", make_record, ADMFLAG_ROOT);
RegConsoleCmd("sbm_ver", version);
plugin_onoff = CreateConVar("sbm_onoff", "1", "Auto generate serverbanner_maker.txt on/off(0=off, 1=on)", CVAR_FLAGS,true,0.0,true,1.0);
plugin_debug = CreateConVar("sbm_debug", "0", "SBM debug message on/off(0=off, 1=on)", CVAR_FLAGS,true,0.0,true,1.0);
save_timer_interval = CreateConVar("sbm_interval", "10.0", "Auto generate serverbanner_maker.txt interval", CVAR_FLAGS,true,1.0,true,60.0);
save_on_change = CreateConVar("sbm_onchange", "1", "Generate file on change(eg. player join/leave) on/off(0=off, 1=on)", CVAR_FLAGS,true,0.0,true,1.0);
HookConVarChange(save_timer_interval, save_timer_interval_change);
HookEvent("player_team", on_change);
//CreateTimer(10.0, update_timer_tick);
}
public save_timer_interval_change(Handle:convar, const String:oldValue[], const String:newValue[]){
if (save_timer != INVALID_HANDLE){
KillTimer(save_timer);
save_timer = CreateTimer(GetConVarFloat(save_timer_interval), save_timer_tick, _, TIMER_REPEAT);
} else {
save_timer = CreateTimer(GetConVarFloat(save_timer_interval), save_timer_tick, _, TIMER_REPEAT);
}
}
public OnMapStart(){
if (save_timer == INVALID_HANDLE){
save_timer = CreateTimer(GetConVarFloat(save_timer_interval), save_timer_tick, _, TIMER_REPEAT);
}
}
public OnMapEnd(){
if (save_timer != INVALID_HANDLE){
KillTimer(save_timer);
save_timer = INVALID_HANDLE;
}
}
/*OnClientConnect(client){
if (GetConVarInt(plugin_debug)){
PrintToServer("[SBM debug] event: OnClientConnect");
}
if (GetConVarInt(save_on_change)){
make_file();
}
}*/
OnClientConnected(client){
if (GetConVarInt(plugin_debug)){
PrintToServer("[SBM debug] event: OnClientConnected");
}
if (GetConVarInt(save_on_change) && GetConVarInt(plugin_onoff) == 1){
make_file();
}
}
OnClientDisconnect(client){
if (GetConVarInt(plugin_debug)){
PrintToServer("[SBM debug] event: OnClientDisconnect");
}
if (GetConVarInt(save_on_change) && GetConVarInt(plugin_onoff) == 1){
make_file();
}
}
OnClientPutInServer(client){
if (GetConVarInt(plugin_debug)){
PrintToServer("[SBM debug] event: OnClientPutInServer");
}
if (GetConVarInt(save_on_change) && GetConVarInt(plugin_onoff) == 1){
make_file();
}
}
public Action:on_change(Handle:event, const String:name[], bool:dontBroadcast){
if (GetConVarInt(plugin_onoff) == 1){
if (GetClientOfUserId(GetEventInt(event, "userid"))){
if (!IsFakeClient(GetClientOfUserId(GetEventInt(event, "userid")))){
if (GetConVarInt(plugin_debug)){
PrintToServer("[SBM debug] event: player_team");
}
if (GetConVarInt(save_on_change)){
make_file();
}
}
}
}
}
public Action:make_record(client, args){
if (client>0){
PrintToChat(client, "手動輸出serverbanner_maker.txt");
} else {
PrintToServer("手動輸出serverbanner_maker.txt");
}
make_file();
}
public Action:save_timer_tick(Handle:timer, any:client){
if (GetConVarInt(plugin_onoff) == 1){
make_file();
}
}
public Action:version(client, args){
if (client){
PrintToChat(client, "簽名檔製作器server banner maker(smx part) %s\n輸出serverbanner_maker.txt版本: v1.0", PLUGIN_VERSION);
} else {
PrintToServer("簽名檔製作器server banner maker(smx part) %s\n輸出serverbanner_maker.txt版本: v1.0", PLUGIN_VERSION);
}
}[
本帖最後由 dogwong 於 2010-11-18 10:02 編輯 ]