Skocz do zawartości
Paweł

[CS:GO] Simple Advertisements

Rekomendowane odpowiedzi

  • Lubię to! 4

O Pluginie:

  • Plugin wyświetla reklamy na chacie.
  • Plugin korzysta z "multicolors", więc można używać tagów z tej biblioteki tzn. {darkred}, {lime} itd. .

 

Instalacja:

  • Plik .smx wrzucamy do addons/sourcemod/plugins/
  • Plik .sp wrzucamy do addons/sourcemod/scripting/
  • Plik .cfg wrzucamy do addons/sourcemod/configs/

 

Kod Pluginu:

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

/* [ Compiler Options ] */
#pragma newdecls required
#pragma semicolon 1

/* [ Defines ] */
#define PluginTag 	"[ TAG PRZED REKLAMĄ ]"

/* [ Handles ] */
Handle g_hTimer;

/* [ KeyValues ] */
KeyValues kv;

/* [ Plugin Author and Informations ] */
public Plugin myinfo =
{
	name = "[CS:GO] Advertisements",
	author = "Yamakashi",
	description = "Plugin wyświetla reklamy na chacie.",
	version = "1.0",
	url = "https://steamcommunity.com/id/yamakashisteam"
};

/* [ Plugin Startup ] */
public void OnPluginStart()
{
	/* [ Commands ] */
	RegAdminCmd("sm_reload", ReloadAdvertisements_CMD, ADMFLAG_ROOT, "[ Reklamy ] Wywołuje reload pliku .cfg");
}

/* [ Standart Actions ] */
public void OnMapStart()
{
	Load_Advertisemensts();
	g_hTimer = CreateTimer(35.0, Print_Advertisement, _, TIMER_REPEAT);
}

public void OnMapEnd()
{
	KillTimer(g_hTimer, false);
	g_hTimer = INVALID_HANDLE;
}

/* [ Commands ] */
public Action ReloadAdvertisements_CMD(int client, int args)
{
	Load_Advertisemensts();
	return Plugin_Handled;
}

/* [ Timers ] */
public Action Print_Advertisement(Handle timer)
{
	char sAdvertisement[512];
	kv.GetString("advertisement", sAdvertisement, sizeof(sAdvertisement));
	
	CPrintToChatAll(sAdvertisement, PluginTag);
	if(!kv.GotoNextKey()) 
	{
        kv.Rewind();
        kv.GotoFirstSubKey();
    }
}

/* [ Config ] */
public void Load_Advertisemensts()
{
	delete kv;
	kv = CreateKeyValues("Advertisements");

	char sPath[PLATFORM_MAX_PATH];
	BuildPath(Path_SM, sPath, sizeof(sPath), "configs/Advertisements.cfg");

	if(!FileExists(sPath))
		SetFailState("[ X REKLAMY X ] Nie odnaleziono pliku konfiguracyjnego: %s", sPath);

	kv.ImportFromFile(sPath);
	kv.GotoFirstSubKey();
}

 

 

Przykładowy plik konfiguracyjny:

Spoiler
"Advertisements"
{
	"Reklama - 1"
	{
		"advertisement"		"%s {darkred}Przykładowa reklama numer {lime}1."
	}
}

 

 

Download:

Edytowane przez Yamakashi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Patrząc okiem judasza nie rozumiem paru rzeczy:

  • Do tak prostego pluginu naje&*&*( komentarzy
  • Accessowanie się do obiektu kv co adverta zamiast buforowania ich
  • Użycie komendy "sm_reload" (może kolidować z innym pluginem, każdy "ogarnięty" to ogarnie ale lajk może mieć mindfucka ;p)
  • Użycie PLATFORM_MAX_PATH w tym przypadku
  • Użycie niepełnej notacji węgierskiej (oznaczenia globalne)
  • 8 godzin temu, Yamakashi napisał:

    Standart

  • Nie zrobienie tagu w kv
  • ServerAdvertisments better (okiem judasza)

Oczywiście, to są moje spostrzeżenia/rzeczy niezrozumiałe.

KOMENTARZ NAPISANY W CELACH HUMORYSTYCZNYCH NIE MIAŁ NA CELU NIKOGO URAZIĆ. PANIE KOMENDANCIE PROSZĘ NIE BLOKOWAĆ MI MOŻLIWOŚCI PISANIA POSTÓW!

Edytowane przez dev

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
8 godzin temu, masnuwa_ni napisał:

Patrząc okiem judasza nie rozumiem paru rzeczy:

  • Do tak prostego pluginu naje&*&*( komentarzy
  • Accessowanie się do obiektu kv co adverta zamiast buforowania ich
  • Użycie komendy "sm_reload" (może kolidować z innym pluginem, każdy "ogarnięty" to ogarnie ale lajk może mieć mindfucka ;p)
  • Użycie PLATFORM_MAX_PATH w tym przypadku
  • Użycie niepełnej notacji węgierskiej (oznaczenia globalne)
  •  
  • Nie zrobienie tagu w kv
  • ServerAdvertisments better (okiem judasza)

Oczywiście, to są moje spostrzeżenia/rzeczy niezrozumiałe.

KOMENTARZ NAPISANY W CELACH HUMORYSTYCZNYCH NIE MIAŁ NA CELU NIKOGO URAZIĆ. PANIE KOMENDANCIE PROSZĘ NIE BLOKOWAĆ MI MOŻLIWOŚCI PISANIA POSTÓW!

 

Server advertisments lepszy z tego powodu że yama napisał simple advertisments stąd ta nazwa dlatego funkcji jest dużo dużo mniej. 

 

Dla mniej wymagających plugin jest dobry. 

 

Jak ktoś chce użyć czegos lepszego to użyje serveradvertisments z alliedow

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

jak dodać żeby na serwerze wyświetlało się kilka reklam a nie tylko jedna ?!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
10 minut temu, Lyyu napisał:

jak dodać żeby na serwerze wyświetlało się kilka reklam a nie tylko jedna ?!

Dodaj je do pliku konfiguracyjnego? 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
4 godziny temu, Mesharsky napisał:

Dodaj je do pliku konfiguracyjnego? 

dodałem , zrobiłem kilka i wyświetla tylko jedną.. 😕

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Hey, powiedział byś jak dodać wiadomość w tak jakby ramce? Np.

======================================

Tekst wiadomosci

======================================

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