Skocz do zawartości
Bluzy To Smok

Pytanie o plugin BB

Rekomendowane odpowiedzi

Witam, chce założyć mój własny server basebuilder do pouczenia się paru rzeczy na tym trybie, lecz nie znajduje pluginu w internecie, który kończy się ''sp'' i nie mogę go wkleić do source mod plugin compiler żeby go przerobił wie ktoś jak pomoc? Dziękuje.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <cstrike>
#include <basebuilder>
#include <emitsoundany>
#include <smlib>
#include <sdkhooks>
//#include <fpvm_interface>
#include <multicolors>

#pragma newdecls required

#include "basebuilder/bb_globals.sp"
#include "basebuilder/bb_natives.sp"
#include "basebuilder/bb_timers.sp"
#include "basebuilder/bb_cvars.sp"
#include "basebuilder/bb_disableradar.sp"
#include "basebuilder/bb_downloadprecache.sp"
#include "basebuilder/bb_sounds.sp"
#include "basebuilder/bb_functions.sp"
#include "basebuilder/bb_blockmoving.sp"
#include "basebuilder/bb_blocklocking.sp"
#include "basebuilder/bb_nofalldamage.sp"
#include "basebuilder/bb_removenotusedblocks.sp"
#include "basebuilder/bb_blocksuicide.sp"
#include "basebuilder/bb_respawn.sp"
#include "basebuilder/bb_colors.sp"
#include "basebuilder/bb_zombies.sp"
#include "basebuilder/bb_teamswitch.sp"
#include "basebuilder/bb_weapons.sp"
#include "basebuilder/bb_shop.sp"
#include "basebuilder/bb_party.sp"
#include "basebuilder/bb_grenades.sp"
#include "basebuilder/bb_goldenak.sp"
#include "basebuilder/bb_resetarmor.sp"
#include "basebuilder/bb_superknife.sp"
#include "basebuilder/bb_givemoney.sp"
#include "basebuilder/bb_admin.sp"
#include "basebuilder/bb_help.sp"
#include "basebuilder/bb_nothisbase.sp"
#include "basebuilder/bb_laddergravity.sp"
#include "basebuilder/bb_randomspawnangle.sp"
#include "basebuilder/bb_overlays.sp"

EngineVersion g_Game;

public Plugin myinfo = 
{
	name = "Basebuilder 2.3.2",
	author = PLUGIN_AUTHOR,
	description = "Gamemode from cs 1.6  - Basebuilder .",
	version = PLUGIN_VERSION,
	url = "http://steamcommunity.com/id/boomix69 | http://zipcore.net/"
};

public void OnPluginStart()
{
	g_Game = GetEngineVersion();
	if(g_Game != Engine_CSGO)
		SetFailState("This plugin is for CS:GO only.");	
	
	//** 	Events	 **//
	HookEvent("round_start", 	BB_RoundStart);
	HookEvent("player_spawn", 	BB_PlayerSpawn, 	EventHookMode_Post);
	HookEvent("player_blind", 	Event_PlayerBlind, 	EventHookMode_Post);
	HookEvent("player_death", 	BB_PlayerDeath);
	HookEvent("round_end",	 	BB_RoundEnd);
	HookEvent("player_hurt", 	BB_PlayerHurt, 		EventHookMode_Pre);
	HookEvent("player_team", 	BB_PlayerTeam, 		EventHookMode_Pre);
	HookEvent("weapon_fire", 	BB_WeaponFire);
	
	//** 	Commands 	**//
	RegConsoleCmd("sm_lm", 			CMD_LastMover, 	"Last mover");
	RegConsoleCmd("sm_lastmover", 	CMD_LastMover, 	"Last mover 2");
	RegConsoleCmd("sm_respawn", 	CMD_Respawn,	"Respawn");
	RegConsoleCmd("sm_revive", 		CMD_Respawn,	"Respawn 2");
	RegConsoleCmd("sm_colors", 		CMD_Colors,		"Colors");
	RegConsoleCmd("sm_class", 		CMD_ZMClass, 	"Change class");
	RegConsoleCmd("sm_zclass", 		CMD_ZMClass, 	"Change class 2");
	RegConsoleCmd("sm_zombie", 		CMD_ZMClass, 	"Change class");
	RegConsoleCmd("sm_shop", 		CMD_Shop, 		"Open shop!");
	RegConsoleCmd("sm_guns", 		CMD_Guns);
	RegConsoleCmd("sm_bb", 			CMD_AdminPanel);
	RegConsoleCmd("sm_deleteblock", CMD_DeleteBlock);
	
	
	//Locking
	AddCommandListener(BB_LockBlock, "drop");
	AddCommandListener(BB_BlockKill, "kill");
	AddCommandListener(BB_BlockKill, "explode");
	AddCommandListener(BB_BlockKill, "explodevector");
	AddCommandListener(BB_BlockKill, "killvector");
	AddCommandListener(BB_BlockTeamChange, "jointeam");
	
	BuildPath(Path_SM, g_sBasebuilderConfig, sizeof(g_sBasebuilderConfig), "configs/basebuilder/bb_main.cfg");
	BuildPath(Path_SM, g_sBasebuilderConfig2, sizeof(g_sBasebuilderConfig2), "configs/basebuilder/bb_zombies.cfg");
	BuildPath(Path_SM, g_sBasebuilderConfig3, sizeof(g_sBasebuilderConfig3), "configs/basebuilder/bb_zmshop.cfg");
	BuildPath(Path_SM, g_sBasebuilderConfig4, sizeof(g_sBasebuilderConfig4), "configs/basebuilder/bb_ctshop.cfg");
	
	AddNormalSoundHook(SoundHook);
	
	NoFallDamage_OnPluginStart();
	Party_OnPluginStart();
	Grenades_OnPluginStart();
	
	//Translation
	LoadTranslations("basebuilder.phrases");

}

public void OnConfigsExecuted()
{

	LoadCvars();
	
	//Load up configs
	kvMainCfg = new KeyValues("bb_config");
	kvZombies = new KeyValues("bb_zombies");
	kvZmShop =  new KeyValues("zm_shop");
	kvCtShop =  new KeyValues("ct_shop");
	kvMainCfg.ImportFromFile(g_sBasebuilderConfig);
	kvZombies.ImportFromFile(g_sBasebuilderConfig2);
	kvZmShop.ImportFromFile(g_sBasebuilderConfig3);
	kvCtShop.ImportFromFile(g_sBasebuilderConfig4);
	
	if (!kvMainCfg.JumpToKey("config")) 
		return;
		
	char g_sBuildTime[10];
	char g_sPrepTime[10];
	char g_sRoundTime[10];
	char g_sMaxLocks[10];
	char g_sRemoveNotUsedBlocks[10];
	char g_sRemoveBlockAfterDeath[10];
	char g_sMoneyPerKill[10];
	char g_sPushPlayersOfBlocks[10];
	kvMainCfg.GetString("Buildtime", 			g_sBuildTime, 				sizeof(g_sBuildTime));
	kvMainCfg.GetString("PrepTime", 			g_sPrepTime,				sizeof(g_sPrepTime));
	kvMainCfg.GetString("BuildTimeMessage", 	g_sBuildTimeMsg,			sizeof(g_sBuildTimeMsg));
	kvMainCfg.GetString("PrepTimeMessage", 		g_sPrepTimeMsg,				sizeof(g_sPrepTimeMsg));
	kvMainCfg.GetString("ReleaseMessage", 		g_sReleaseMsg,				sizeof(g_sReleaseMsg));
	kvMainCfg.GetString("Prefix", 				Prefix,						sizeof(Prefix));
	kvMainCfg.GetString("RoundTime", 			g_sRoundTime, 				sizeof(g_sRoundTime));
	kvMainCfg.GetString("MaxLocks", 			g_sMaxLocks, 				sizeof(g_sMaxLocks));
	kvMainCfg.GetString("RemoveNotUsedBlocks", 	g_sRemoveNotUsedBlocks, 	sizeof(g_sRemoveNotUsedBlocks));
	kvMainCfg.GetString("RemoveBlockAfterDeath",g_sRemoveBlockAfterDeath, 	sizeof(g_sRemoveBlockAfterDeath));
	kvMainCfg.GetString("MoneyPerKill", 		g_sMoneyPerKill,			sizeof(g_sMoneyPerKill));
	kvMainCfg.GetString("PushPlayersOfBlocks", 	g_sPushPlayersOfBlocks,		sizeof(g_sPushPlayersOfBlocks));
	
	
	g_fBuildTime	= StringToFloat(g_sBuildTime);
	g_fPrepTime	 	= StringToFloat(g_sPrepTime);
	
	g_iRoundTime 	= StringToInt(g_sRoundTime);
	g_iMaxLocks 	= StringToInt(g_sMaxLocks);
	
	g_iRemoveNotUsedBlocks 		= StringToInt(g_sRemoveNotUsedBlocks);
	g_iRemoveBlockAfterDeath 	= StringToInt(g_sRemoveBlockAfterDeath);
	g_iPushPlayersOfBlocks 		= StringToInt(g_sPushPlayersOfBlocks);
	
	g_iMoneyPerRound = StringToInt(g_sMoneyPerKill);
	
	delete kvMainCfg;
	
	ReplaceString(g_sBuildTimeMsg, sizeof(g_sBuildTimeMsg), "{TIME}", "%i");
	ReplaceString(g_sPrepTimeMsg, sizeof(g_sPrepTimeMsg), "{TIME}", "%i");
	
	FixPrefix();
	GetTeleportCoords();
	OverLays_OnCofigsExecuted();

}

public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max)
{
	RegPluginLibrary("basebuilder");
	
	CreateNatives();
	
	g_OnBuildTimeStart = CreateGlobalForward("BaseBuilder_OnBuildTimeStart", ET_Ignore);
	g_OnPrepTimeStart = CreateGlobalForward("BaseBuilder_OnPrepTimeStart", ET_Ignore);
	g_OnPrepTimeEnd = CreateGlobalForward("BaseBuilder_OnPrepTimeEnd", ET_Ignore);
	
	return APLRes_Success;
}

public Action BB_RoundStart(Handle event, const char[] name, bool dontBroadcast)
{
	
	g_IsBuildTime = true;
	
	/* Forward: BaseBuilder_OnBuildTimeStart */
	Call_StartForward(g_OnBuildTimeStart);
	Call_Finish();
	
	KillTimers2();
	
	TimeTimer = CreateTimer(g_fBuildTime, BB_BuildTime);
	
	
	//Setting round time
	GameRules_SetProp("m_iRoundTime", g_iRoundTime, 16);

}

public Action BB_LockBlock(int client, const char[] cmd, int argc) 
{
	LockBlock(client, 0, true);
}

public Action CMD_LastMover(int client, int args)
{

	int entity = GetTargetBlock(client);
	
	if(IsValidEntity(entity)) {
		int lastmover = GetLastMover(entity);
		if(lastmover > 0) {
			char username[MAX_NAME_LENGTH];
			GetClientName(lastmover, username, sizeof(username));
			CPrintToChat(client, "%s%T", Prefix, "Last mover", client, username);
		} else {
			CPrintToChat(client, "%s%T", Prefix, "Not moved", client);
		}
	}

}

public Action BB_BuildTime(Handle tmr)
{
	Call_StartForward(g_OnPrepTimeStart);
	Call_Finish();
	
	g_IsBuildTime = false;
	g_IsPrepTime = true;
	
	TimeTimer = CreateTimer(g_fPrepTime, BB_PrepTime);
}

public Action BB_PrepTime(Handle tmr)
{
	g_IsPrepTime = false;
	KillTimers2();
	
	Call_StartForward(g_OnPrepTimeEnd);
	Call_Finish();
}

public void KillTimers2() 
{

	if (TimeTimer != INVALID_HANDLE)
	{
		KillTimer(TimeTimer);
		TimeTimer = INVALID_HANDLE;
	}
	
}

public void FixPrefix()
{

	char ColorPre[150] = "\x1 ";
	ReplaceString(Prefix, sizeof(Prefix), "{WHITE}", "\x01");
	ReplaceString(Prefix, sizeof(Prefix), "{RED}", 	"\x02");
	ReplaceString(Prefix, sizeof(Prefix), "{TEAM}", "\x03");
	ReplaceString(Prefix, sizeof(Prefix), "{GREEN}", "\x04");
	ReplaceString(Prefix, sizeof(Prefix), "{LIME}", "\x05");
	ReplaceString(Prefix, sizeof(Prefix), "{LIGHTGREEN}", "\x06");
	ReplaceString(Prefix, sizeof(Prefix), "{LIGHTRED}", "\x07");
	ReplaceString(Prefix, sizeof(Prefix), "{GRAY}", "\x08");
	ReplaceString(Prefix, sizeof(Prefix), "{LIGHTOLIVE}", "\x09");
	ReplaceString(Prefix, sizeof(Prefix), "{OLIVE}", "\x10");
	ReplaceString(Prefix, sizeof(Prefix), "{PURPLE}", "\x0E");
	ReplaceString(Prefix, sizeof(Prefix), "{LIGHTBLUE}", "\x0B");
	ReplaceString(Prefix, sizeof(Prefix), "{BLUE}", "\x0C");
	
	StrCat(ColorPre, sizeof(ColorPre), Prefix);
	
	Prefix = ColorPre;

}

public bool IsBuildTime()
{
	if(g_IsBuildTime)
		return true;
	else return false;
}

public bool IsPrepTime()
{
	if(g_IsPrepTime)
		return true;
	else return false;
}

public bool IsAdmin(int client)
{
	if(Client_HasAdminFlags(client, ADMFLAG_GENERIC) || Client_HasAdminFlags(client, ADMFLAG_ROOT) || Client_HasAdminFlags(client, ADMFLAG_BAN))
		return true;
	else return false;
}

int GetBlockOwner(int entity)
{
	char entname[MAX_NAME_LENGTH];
	Entity_GetName(entity, entname, sizeof(entname));
	
	int entval = StringToInt(entname);
	
	return entval;
}

void SetBlockOwner(int entity, int owner)
{
	if(IsValidEntity(entity))
		Entity_SetName(entity, "%i", owner); 
}

void SetLastMover(int entity, int owner)
{
	Entity_SetGlobalName(entity, "%i", owner);
}

int GetLastMover(int entity)
{
	char entityname[10];
	Entity_GetGlobalName(entity, entityname, sizeof(entityname));
	int LastMover = StringToInt(entityname);
	return LastMover;
}

public Action BB_PlayerTeam(Handle event, const char[] name, bool dontBroadcast)
{
	int client = GetClientOfUserId(GetEventInt(event, "userid"));
	Respawn_PlayerTeam(client);
	return Plugin_Handled;
}


public Action BB_BlockTeamChange(int client, const char[] command, int args) 
{ 
	return Plugin_Handled;
}

A tutaj link do całości https://forums.alliedmods.net/showthread.php?t=277538
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dziękuję za odpowiedź!

 

Tylko wyskakuje mi error że muszę wypełnić to małe okienko ,,plugin short name" co należy tam wpisać? (Sory jeśli jestem ułomny ale to mój pierwszy raz doczynienia z pluginami)

Edytowane przez Bluzy To Smok

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zacznijmy od tego że nie skompilujesz tego w compilerze online. Musisz to zrobić lokalnie na swoim komputerze. W dziale z poradnikami znajdziesz jak to wykonać.

Odpowiadając na twoje pytanie. W tamto okienko możesz wpisać cokolwiek. "Plugin short name" - Krótka nazwa pluginu (de'facto nazwa pliku który otrzymasz np. Wpisują "mójbb" otrzymasz plik mójbb.smx )

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.


×
×
  • Dodaj nową pozycję...