_wS_
|
Дата: Пятница, 23.03.2012, 14:37:09 | Сообщение # 16 |
|
Naykon, не знаю, я никогда не использовал другие 'MenuAction:', кроме стандартного, да и функцию SetVoteResultCallback. И эти все vote функции, они ж наверно требуют эти стандартные SM скрипты, как mapchooser, nextmap, basevotes - а я их все снёс и сделал все по-своему. Так что вникать в это зря не хочу, хотя, может позже.
|
|
| |
Naykon
|
Дата: Вторник, 23.10.2012, 19:09:54 | Сообщение # 17 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Как можно сделать так чтобы если игрок не выбрал пункт меню то сделать над ним действие??Добавлено (20.10.2012, 17:46:16) ---------------------------------------------
Code SetMenuExitButton(SkinMenu, false); DisplayMenu(SkinMenu, client, 10);
Если игрок ничего не выберет в меню через 10 сек (после закрытия меню) напишит в чат "Привет"... очень прошу отозваться!Добавлено (23.10.2012, 19:09:54) --------------------------------------------- подскажите
|
|
| |
_wS_
|
Дата: Вторник, 23.10.2012, 19:15:16 | Сообщение # 18 |
|
Уже обсуждалось..
Code public xz(Handle:menu, MenuAction:action, param1, param2) { if (action == MenuAction_Cancel && param2 == MenuCancel_Timeout) {
} }
|
|
| |
Naykon
|
Дата: Четверг, 06.12.2012, 18:48:45 | Сообщение # 19 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Code #include <sourcemod> #include <cstrike> #include <sdktools> #include <sdktools_entoutput> #include <sdktools_functions> #include <sdkhooks> #include <clientprefs> new Question[MAXPLAYERS+1] = 0; new Bad[MAXPLAYERS+1] = 0; new Good[MAXPLAYERS+1] = 0; new Next[MAXPLAYERS+1] = 1; public OnPluginStart() { RegConsoleCmd("sm_teston", UNAFKfunc); RegConsoleCmd("sm_testoff", UNAFKfunc2); }
public Action:UNAFKfunc(admin, args) { for (new client = 1; client <= MaxClients; client++) { Question[client] = GetRandomQuestion(); QuestionsRules(client); //Question[client] = 0; PrintToChatAll("Запуск"); } }
public Action:UNAFKfunc2(admin, args) { for (new client = 1; client <= MaxClients; client++) { Question[client] = 0; Bad[client] = 0; Good[client] = 0; Next[client] = 1; PrintToChatAll("Question[client] = %d", Question[client]); PrintToChatAll("Bad[client] = %d", Bad[client]); PrintToChatAll("Good[client] = %d", Good[client]); PrintToChatAll("Next[client] = %d", Next[client]); } } QuestionsRules(client) { new Handle:SkinMenu2 = CreateMenu(QuestionsRulesSelect); if (Question[client] == 1) { SetMenuTitle(SkinMenu2, "Вопрос №: %d \n Не правильных ответов: %d \n Максимально число неправильных ответов 3 \n Вопрос 1?\n \n", Next[client], Bad[client]); AddMenuItem(SkinMenu2, "1", "Ответ"); AddMenuItem(SkinMenu2, "2", "Правильно"); AddMenuItem(SkinMenu2, "3", "Ответ"); } if (Question[client] == 2) { SetMenuTitle(SkinMenu2, "Вопрос №: %d \n Не правильных ответов: %d \n Максимально число неправильных ответов 3 \n Вопрос 2?\n \n", Next[client], Bad[client]); AddMenuItem(SkinMenu2, "1", "Правильно"); AddMenuItem(SkinMenu2, "2", "Ответ"); AddMenuItem(SkinMenu2, "3", "Ответ"); } if (Question[client] == 3) { SetMenuTitle(SkinMenu2, "Вопрос №: %d \n Не правильных ответов: %d \n Максимально число неправильных ответов 3 \n Вопрос 3?\n \n", Next[client], Bad[client]); AddMenuItem(SkinMenu2, "1", "Ответ"); AddMenuItem(SkinMenu2, "2", "Ответ"); AddMenuItem(SkinMenu2, "3", "Правильно"); } SetMenuExitButton(SkinMenu2, false); DisplayMenu(SkinMenu2, client, 12); }
public QuestionsRulesSelect(Handle:menu, MenuAction:action, client, i) { if (action == MenuAction_End) { CloseHandle(menu); return; } else if (action == MenuAction_Select) { decl String:Info[300]; decl String:Skin[300]; GetMenuItem(menu, i, Info, sizeof(Info), _, Skin, sizeof(Skin)); if (Question[client] == 1) { if (StrEqual(Info, "1") || StrEqual(Info, "3")) { PrintToChatAll("Дошло"); Bad[client] += 1; Next[client] += 1; PrintToChatAll("Один НЕ Next[client] = %d", Next[client]); if (Next[client] < 4) { Vote(client); } else { PrintToChatAll("else Next[client] = %d", Next[client]); if (Good[client] > 1) { PrintToChatAll("\x04%N. Поздравляем вы ответили правильно на %d вопросов", client, Good[client]); } else PrintToChatAll("%N. К сожалению вы ответили правильно всего на %d вопросов", client, Good[client]); } } else { PrintToChatAll("Дошло"); Next[client] += 1; Good[client] += 1; PrintToChatAll("Один ДА Next[client] = %d", Next[client]); if (Next[client] < 4) { Vote(client); } else { PrintToChatAll("else Next[client] = %d", Next[client]); if (Good[client] > 1) { PrintToChatAll("\x04%N. Поздравляем вы ответили правильно на %d вопросов", client, Good[client]); } else PrintToChatAll("%N. К сожалению вы ответили правильно всего на %d вопросов", client, Good[client]); } } } if (Question[client] == 2) { if (StrEqual(Info, "2") || StrEqual(Info, "3")) { PrintToChatAll("Дошло"); Bad[client] += 1; Next[client] += 1; PrintToChatAll("Два НЕ Next[client] = %d", Next[client]); if (Next[client] < 4) { Vote(client); } else { PrintToChatAll("else Next[client] = %d", Next[client]); if (Good[client] > 1) { PrintToChatAll("\x04%N. Поздравляем вы ответили правильно на %d вопросов", client, Good[client]); } else PrintToChatAll("%N. К сожалению вы ответили правильно всего на %d вопросов", client, Good[client]); } } else { PrintToChatAll("Дошло"); Next[client] += 1; Good[client] += 1; PrintToChatAll("Два ДА Next[client] = %d", Next[client]); if (Next[client] < 4) { Vote(client); } else { PrintToChatAll("else Next[client] = %d", Next[client]); if (Good[client] > 1) { PrintToChatAll("\x04%N. Поздравляем вы ответили правильно на %d вопросов", client, Good[client]); } else PrintToChatAll("%N. К сожалению вы ответили правильно всего на %d вопросов", client, Good[client]); } } } if (Question[client] == 3) { if (StrEqual(Info, "1") || StrEqual(Info, "2")) { PrintToChatAll("Дошло"); Bad[client] += 1; Next[client] += 1; PrintToChatAll("Три НЕ Next[client] = %d", Next[client]); if (Next[client] < 4) { Vote(client); } else { PrintToChatAll("else Next[client] = %d", Next[client]); if (Good[client] > 1) { PrintToChatAll("\x04%N. Поздравляем вы ответили правильно на %d вопросов", client, Good[client]); } else PrintToChatAll("%N. К сожалению вы ответили правильно всего на %d вопросов", client, Good[client]); } } else { PrintToChatAll("Дошло"); Next[client] += 1; Good[client] += 1; PrintToChatAll("Три Да Next[client] = %d", Next[client]); if (Next[client] < 4) { Vote(client); } else { PrintToChatAll("else Next[client] = %d", Next[client]); if (Good[client] > 1) { PrintToChatAll("\x04%N. Поздравляем вы ответили правильно на %d вопросов", client, Good[client]); } else PrintToChatAll("%N. К сожалению вы ответили правильно всего на %d вопросов", client, Good[client]); } } }
} else if (i == MenuCancel_Timeout) { Next[client] += 1; PrintToChatAll("ВРЕМЯ Next[client] = %d", Next[client]); if (Next[client] < 4) { Vote(client); } else { PrintToChatAll("else Next[client] = %d", Next[client]); if (Good[client] > 1) { PrintToChatAll("\x04%N. Поздравляем вы ответили правильно на %d вопросов", client, Good[client]); } else PrintToChatAll("%N. К сожалению вы ответили правильно всего на %d вопросов", client, Good[client]); } } }
GetRandomQuestion() { new indexes[MaxClients+1], players = 0; for (new i = 1; i <= 3; i++) { indexes[players++] = i; } if (players > 0) return indexes[GetRandomInt(0, players-1)]; return 0; }
Vote(client) { Question[client] = 0; PrintToChatAll("Очистили Question[client]"); Question[client] = GetRandomQuestion(); QuestionsRules(client); return Plugin_Stop; }
По началу все ок но потом почему-то когда я отвечаю на вопрос выскакивает что как будто я отвечал на текущий вопрос и на вопрос 3. Ппц какой-то....
Гости не могут скачивать файлы
|
|
|
| |