Witam. Czy ktoś pootrafił by napisać plugin, do głosowania na kilka opcji, na czas włączenia pluginu? Z zapamiętaniem danego SID (czyli jedna osoba może zagłosować tylko raz)
Coś w stylu anty metori, ale bez łączenia z bazą danych, a jedynie z zapisaniem obecnego wyniku do pliku tekstowego np.
Pytanie
ODP 1 - tekst - liczba głosów
SID 1
SID 2
SID 3
ODP 2 - tekst - liczba głosów
SID 4
SID 5
Chodzi mi o robienie vote które mapy są fajnie, które nie.
Głosowanie powinno być wywoływane w dowolnym momencie gry poprzez wpisanie na chacie /glosuj
Pozdrawiam i z góry dziękuję
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
5 odpowiedzi w tym temacie
#1
Napisano 09.10.2011 20:39
#2
Napisano 10.10.2011 14:10
Opisz bardziej jak to ma działać. (to ma działać na podstawie komendy sm_vote ?)
Użytkownik Cypis' edytował ten post 10.10.2011 14:13
#3
Napisano 12.10.2011 01:19
ktoś po wpisaniu danej komendy (przyjmijmy /glosuj), dostaje pytanie na górze, a pod nim kilka opcji do wyboru
Pytanie XXX
OPCJA 1
OPCJA 2
OPCJA 3
OPCJA 4
Po wduszeniu dowolnej opcji możliwość głosowania się u niego wyłącza i dalej gra normalnie.
Natomiast w danym pliku zapisuje jego Steam ID (bądź nick, zależy co łatwiej) oraz jego odpowiedź (choćby w formie numerku odpowiedzi). Było by fajnie jakby plugin przy okazji blokował możliwość ponownego głosowania przez tę samą osobę (czyli najwygodniej aby zapisywało SIDy)
Wiem że nie jest to prosty plugin, ale może ktoś podejmie wyzwanie
Pytanie XXX
OPCJA 1
OPCJA 2
OPCJA 3
OPCJA 4
Po wduszeniu dowolnej opcji możliwość głosowania się u niego wyłącza i dalej gra normalnie.
Natomiast w danym pliku zapisuje jego Steam ID (bądź nick, zależy co łatwiej) oraz jego odpowiedź (choćby w formie numerku odpowiedzi). Było by fajnie jakby plugin przy okazji blokował możliwość ponownego głosowania przez tę samą osobę (czyli najwygodniej aby zapisywało SIDy)
Wiem że nie jest to prosty plugin, ale może ktoś podejmie wyzwanie
#4
Napisano 15.10.2011 22:55
sprawdź czy działa:
#pragma semicolon 1
#include <sourcemod>
public Plugin:myinfo =
{
name = "Fun Vote",
author = "Cypis",
description = "Fun Vote",
version = "1.0",
url = "http://www.amxx.pl/"
};
new Handle:g_Players = INVALID_HANDLE;
new String:file_name[2][128];
public OnPluginStart()
{
g_Players = CreateArray(ByteCountToCells(33));
RegConsoleCmd("glosuj", Command_Vote);
BuildPath(Path_SM, file_name[0], sizeof(file_name[]), "logs/pytania.txt");
BuildPath(Path_SM, file_name[1], sizeof(file_name[]), "logs/sidy.txt");
}
public OnConfigsExecuted()
{
if(!FileExists(file_name[1]))
return;
new Handle:file = OpenFile(file_name[1], "r");
while(!IsEndOfFile(file))
{
decl String:g_sid[32];
ReadFileLine(file, g_sid, sizeof(g_sid));
PushArrayString(g_Players, g_sid);
}
CloseHandle(file);
}
public Action:Command_Vote(client, args)
{
if(!IsClientConnected(client) || !IsClientInGame(client) || IsFakeClient(client) || IsVoteInProgress())
return Plugin_Handled;
if(MozeGlosowac(client))
return Plugin_Handled;
new Handle:menu = CreateMenu(Handle_VoteMenu);
SetMenuTitle(menu, "Pytanie XXX");
AddMenuItem(menu, "1", "OPCJA 1");
AddMenuItem(menu, "2", "OPCJA 2");
AddMenuItem(menu, "3", "OPCJA 3");
AddMenuItem(menu, "4", "OPCJA 4");
SetMenuExitButton(menu, false);
DisplayMenu(menu, client, 20);
return Plugin_Handled;
}
public Handle_VoteMenu(Handle:menu, MenuAction:action, param1, param2)
{
if(action == MenuAction_Select)
{
decl String:info[32];
GetMenuItem(menu, param2, info, sizeof(info));
decl String:name[32];
decl String:auth[32];
GetClientName(param1, name, sizeof(name));
GetClientAuthString(param1, auth, sizeof(auth));
LogToFile(file_name[0], "Gracz %s (%s) zagłosował na %s (%i)", name, auth, info, param2);
LogToFile(file_name[1], "%s", auth);
PushArrayString(g_Players, auth);
}
else if(action == MenuAction_End)
{
CloseHandle(menu);
}
}
stock bool:MozeGlosowac(client)
{
if(!GetArraySize(g_Players))
return false;
decl String:auth[32];
GetClientAuthString(client, auth, sizeof(auth));
for(new i=0; i<GetArraySize(g_Players); i++)
{
decl String:g_sid[32];
GetArrayString(g_Players, i, g_sid, sizeof(g_sid));
if(strcmp(auth, g_sid, false) == 0)
return true;
}
return false;
}
Użytkownik Cypis' edytował ten post 15.10.2011 23:03
#5
Napisano 16.10.2011 22:21
wszystko pięknie działa
#6
Napisano 17.10.2011 18:38
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Również z jednym lub większą ilością słów kluczowych: Nowy Plugin
|
Nowy Plugin
[KOSZ] pluginNapisany przez Frodo1981, 25.02.2024 nowy plugin |
|
|||
Nowy Plugin
vip pbNapisany przez One ShooT, 04.02.2024 nowy plugin |
|
||||
Nowy Plugin
Admin menuNapisany przez stół z powyłamywanymi, 22.09.2022 nowy plugin |
|
||||
Nowy Plugin
Prośba o napisanie pluginuNapisany przez stół z powyłamywanymi, 15.08.2022 nowy plugin |
|
||||
Nowy Plugin
PLUGIN NA DRplugin Napisany przez bawarskagolonka123, 25.06.2021 nowy plugin |
|
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych