Skocz do zawartości
Sqower

[Rozwiązane] Losowanie tekstu plugin

Rekomendowane odpowiedzi

Witam szukam pluginu lub jak by ktoś mógł zrobić lub wytłumaczyć jak zrobić żeby po wpisaniu komendy losowało słowo lub zdanie

+ dodanie że można użyć raz na dzień

z góry dziękuje 

Przez MAGNET,

Przeniesiono do odpowiedniego działu

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

w sensie, że losuje słowo i kto pierwszy je wpisze na czacie to jakieś profity ma?

 

Spoiler

char wordTab[][] = {
"tu",
"moja",
"lista",
"slow"};

PrintToChat(client, "Wylosowano: %s", wordTab[GetRandomInt(0, sizeof(wordTab)]);

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Znaczy że wpisuję np !losuj i losuje jakieś słowo i może je raz na dzień wylosować bez profitów

 

Edytowane przez Sqower

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

nie rozumiem tej drugiej części o profitach - co miałoby dawać jakieś wylosowane słowo? ? trochę nie doprecyzowałeś

 

czy te słowo może wylosować codziennie każdy użytkownik, i trzeba to rozpatrywać indywidualnie dla każdego gracza, czy po prostu jedno słowo globalnie?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ogólnie chodzi mi o to że gracz po wpisaniu np !losuj losuje mu z puli jakiś zdanie np Cytat i może ten cytat wylosować raz dziennie i żeby każdy, i żeby dla każdego gracza coś innego wylosowywało 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ktoś może zrobić jeszcze zapisywanie.

 

#pragma semicolon 1
#pragma newdecls required

char g_sWordTable[][] =
{
	"testowe zdanie",
	"testowe zdanie1",
	"testowe zdanie2",
	"testowe zdanie3",
	"testowe zdanie4"
};

bool g_bUseTableIndex[sizeof(g_sWordTable)];

public void OnPluginStart()
{
    RegConsoleCmd("sm_losuj", CMD_Rand);
}

public Action CMD_Rand(int client, int args)
{
	int iRandom = GetRandomInt(0, sizeof(g_sWordTable));

	if(g_bUseTableIndex[iRandom])
	{
		PrintToChat(client, "Cytat został już wylosowany");
		return Plugin_Handled;
	}
 
	g_bUseTableIndex[iRandom] = true;
	PrintToChat(client, "Wylosowany Cytat: %s", g_sWordTable[iRandom]);
	return Plugin_Handled;
}

 

Udostępnij tę odpowiedź


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

Ktoś może zrobić jeszcze zapisywanie.

 


#pragma semicolon 1
#pragma newdecls required

char g_sWordTable[][] =
{
	"testowe zdanie",
	"testowe zdanie1",
	"testowe zdanie2",
	"testowe zdanie3",
	"testowe zdanie4"
};

bool g_bUseTableIndex[sizeof(g_sWordTable)];

public void OnPluginStart()
{
    RegConsoleCmd("sm_losuj", CMD_Rand);
}

public Action CMD_Rand(int client, int args)
{
	int iRandom = GetRandomInt(0, sizeof(g_sWordTable));

	if(g_bUseTableIndex[iRandom])
	{
		PrintToChat(client, "Cytat został już wylosowany");
		return Plugin_Handled;
	}
 
	g_bUseTableIndex[iRandom] = true;
	PrintToChat(client, "Wylosowany Cytat: %s", g_sWordTable[iRandom]);
	return Plugin_Handled;
}

 

Ogólnie o to mi chodziło tylko nie wiem czemu po wpisaniu 2 raz tego nie wyświetla się informacja "Cytat został wylosowany"

Udostępnij tę odpowiedź


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

char g_sWordTable[][] =
{
	"testowe zdanie",
	"testowe zdanie1",
	"testowe zdanie2",
	"testowe zdanie3",
	"testowe zdanie4"
};

bool g_bUseTableIndex[sizeof(g_sWordTable)];
bool g_bPlayerUseRand[MAXPLAYERS + 1];

public void OnPluginStart()
{
    RegConsoleCmd("sm_losuj", CMD_Rand);
}

public Action CMD_Rand(int client, int args)
{
	int iRandom = GetRandomInt(0, sizeof(g_sWordTable));

	if(g_bPlayerUseRand[client])
	{
		PrintToChat(client, "Użyłeś już losowania");
		return Plugin_Handled;
	}

	if(g_bUseTableIndex[iRandom])
	{
		PrintToChat(client, "Cytat został już wylosowany");
		return Plugin_Handled;
	}
 
	g_bUseTableIndex[iRandom] = g_bPlayerUseRand[client] = true;
	PrintToChat(client, "Wylosowany Cytat: %s", g_sWordTable[iRandom]);
	return Plugin_Handled;
}

Tylko tak jak napisałem, trzeba dorobić zapis. W tym przypadku najłatwiej będzie zapisać to do cookie.

Udostępnij tę odpowiedź


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

Tylko tak jak napisałem, trzeba dorobić zapis. W tym przypadku najłatwiej będzie zapisać to do cookie.

 

Dokładnie. Jeśli nie musisz posiadać informacji o tym który cytat został wylosowany przez gracza, nie ma potrzeby tworzyć jakiejś bazy danych.

 

Ciasteczka wykorzystywałem tutaj: 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...