Skocz do zawartości
Paweł

[CS:GO] Opisy Convarów z poziomu pluginu. (KeyValues)

Rekomendowane odpowiedzi

Jeżeli ktoś robi configi w KV tak jak ja i chciałby dodawać opis do danego ConVara z poziomu pluginu to udostępniam krótki kodzik ;) 

Spoiler

/* [ Includes ] */
#include <sourcemod>
#include <sdktools>

/* [ Defines ] */
#define MaxCvars 	8
#define KeyValue	"Test - Config"

/* [ Integers ] */
int g_iCvar[MaxCvars];

/* [ Chars ] */
char g_sCvInfo[MaxCvars][3][32] =  {
	{ "cvar_1", "1", "Opis 1" }, 
	{ "cvar_2", "2", "Opis 2" }, 
	{ "cvar_3", "3", "Opis 3" }, 
	{ "cvar_4", "4", "Opis 4" }, 
	{ "cvar_5", "5", "Opis 5" }, 
	{ "cvar_6", "6", "Opis 6" }, 
	{ "cvar_7", "7", "Opis 7" }, 
	{ "cvar_8", "8", "Opis 8" }
};

/* [ Standard Actions ] */
public void OnMapStart() {
	LoadConfig();
}

/* [ Config ] */
void LoadConfig() {
	char sPath[PLATFORM_MAX_PATH];
	BuildPath(Path_SM, sPath, sizeof(sPath), "configs/test.cfg");
	KeyValues kv = new KeyValues(KeyValue);
	if (!kv.ImportFromFile(sPath))
		if (!FileExists(sPath)) {
		GenerateConfig();
		delete kv;
	}
	
	for (int i = 0; i < sizeof(g_sCvInfo); i++)
	g_iCvar[i] = kv.GetNum(g_sCvInfo[i][0]);
	delete kv;
}

void GenerateConfig() {
	char sPath[PLATFORM_MAX_PATH], sBuffer[256];
	BuildPath(Path_SM, sPath, sizeof(sPath), "configs/test.cfg");
	File fFile = OpenFile(sPath, "a");
	Format(sBuffer, sizeof(sBuffer), "\"%s\"", KeyValue);
	fFile.WriteLine(sBuffer);
	fFile.WriteLine("{");
	for (int i = 0; i < sizeof(g_sCvInfo); i++) {
		Format(sBuffer, sizeof(sBuffer), "	\"%s\"		\"%s\"		// %s", g_sCvInfo[i][0], g_sCvInfo[i][1], g_sCvInfo[i][2]);
		fFile.WriteLine(sBuffer);
	}
	fFile.WriteLine("}");
	delete fFile;
	LoadConfig();
} 

 

 

W rezultacie otrzymujemy taką zawartość pliku:

Spoiler

"Test - Config"
{
	"cvar_1"		"1"		// Opis 1
	"cvar_2"		"2"		// Opis 2
	"cvar_3"		"3"		// Opis 3
	"cvar_4"		"4"		// Opis 4
	"cvar_5"		"5"		// Opis 5
	"cvar_6"		"6"		// Opis 6
	"cvar_7"		"7"		// Opis 7
	"cvar_8"		"8"		// Opis 8
}

 

 

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ę...