Merlin
Умник
Две реакции типа (Ввод часть) и (математика часть),
-Математика включает в себя три вида математической операции (сложение "+", вычитание '-', '*' умножение)
И так начнем уроку!
Верху мода:
-Математика включает в себя три вида математической операции (сложение "+", вычитание '-', '*' умножение)
И так начнем уроку!
Верху мода:
PHP:
#define Loop(%0,%1) for(new %0 = 0; %0 != %1; %0++)
#define function%0(%1) forward%0(%1); public%0(%1)
#define CONTEST_PRIZE 40000
#define CONTEST_TIME 3
#define CONTEST_MATH 0
#define CONTEST_TYPE 1
forward Contest_Function(type);
#define COLOR_ORANGE 0xFF9600FF
#define COLOR_RED 0xFF0000FF
new rName[MAX_PLAYER_NAME], string[128], ReactionTest[2], ReactionTimer,
ContestType = -1, MathsResult, Characters[][] =
{
"A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M",
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y",
"Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x",
"y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
},
Chars[17] = "";
После этого ищем public OnGameModeInit() и туда вставляем:
PHP:
ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1);
Примерно так должен быть public:
PHP:
public OnGameModeInit()
{
ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1);
return 1;
}
осле этого ищем public OnGameModeExit() и туда вставляем:
PHP:
KillTimer(ReactionTimer);
Примерно так должен быть public:
PHP:
public OnGameModeExit()
{
KillTimer(ReactionTimer);
return 1;
}
После этого ищем public OnPlayerText и туда вставляем:
PHP:
switch(ContestType) {
case CONTEST_MATH:
{
if(strval(text) == MathsResult) {
GetPlayerName(playerid, rName, sizeof(rName));
ReactionTest[1] = GetTickCount();
new timeresult = ReactionTest[1] - ReactionTest[0];
format(string, sizeof(string), "[РЕАКЦИЯ]: %s ответ ''%i'' в %d миллисекунд, и был самым быстрым! Он выиграл $40,000!", rName, MathsResult, timeresult);
SendClientMessageToAll(COLOR_RED, string);
GivePlayerMoney(playerid, CONTEST_PRIZE);
ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1);
ContestType = false;
}
}
case CONTEST_TYPE:
{
if(!strcmp(Chars, text, false)) {
GetPlayerName(playerid, rName, sizeof(rName));
ReactionTest[1] = GetTickCount();
new timeresult = ReactionTest[1] - ReactionTest[0];
format(string, sizeof(string), "[РЕАКЦИЯ]: %s набранный ''%s'' в %d миллисекунд, и был самым быстрым! Он выиграл $40,000!", rName, Chars, timeresult);
SendClientMessageToAll(COLOR_RED, string);
GivePlayerMoney(playerid, CONTEST_PRIZE);
ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1);
ContestType = false;
}
}
}
Примерно так должен быть public:
PHP:
public OnPlayerText(playerid, text[])
{
switch(ContestType) {
case CONTEST_MATH:
{
if(strval(text) == MathsResult) {
GetPlayerName(playerid, rName, sizeof(rName));
ReactionTest[1] = GetTickCount();
new timeresult = ReactionTest[1] - ReactionTest[0];
format(string, sizeof(string), "[РЕАКЦИЯ]: %s ответ ''%i'' в %d миллисекунд, и был самым быстрым! Он выиграл $40,000!", rName, MathsResult, timeresult);
SendClientMessageToAll(COLOR_RED, string);
GivePlayerMoney(playerid, CONTEST_PRIZE);
ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1);
ContestType = false;
}
}
case CONTEST_TYPE:
{
if(!strcmp(Chars, text, false)) {
GetPlayerName(playerid, rName, sizeof(rName));
ReactionTest[1] = GetTickCount();
new timeresult = ReactionTest[1] - ReactionTest[0];
format(string, sizeof(string), "[РЕАКЦИЯ]: %s набранный ''%s'' в %d миллисекунд, и был самым быстрым! Он выиграл $40,000!", rName, Chars, timeresult);
SendClientMessageToAll(COLOR_RED, string);
GivePlayerMoney(playerid, CONTEST_PRIZE);
ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1);
ContestType = false;
}
}
}
return 1;
}
После этого в любое место вставляем сам public:
PHP:
public Contest_Function(type)
{
switch(type) {
case 0:
{
new xLength = (10);
format(Chars, sizeof(Chars), "");
Loop(x, xLength) format(Chars, sizeof(Chars), "%s%s", Chars, Characters[random(sizeof(Characters))][0]);
format(string, sizeof(string), "[РЕАКЦИЯ]: Win $40,000 by being the first to type: %s", Chars);
SendClientMessageToAll(COLOR_RED, string);
KillTimer(ReactionTimer);
ReactionTest[0] = GetTickCount();
ContestType = true;
ContestType = CONTEST_TYPE;
ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1);
return 1;
}
case 1:
{
new number1 = random(101), number2 = random(101), maths = random(2);
if(maths == 0) {
MathsResult = number1 + number2;
format(string, sizeof(string), "[РЕАКЦИЯ]: выигрыш $40,000став первым ответить: %d + %d", number1, number2);
}
else if (maths == 2) {
MathsResult = number1 - number2;
format(string, sizeof(string), "[РЕАКЦИЯ]: выигрыш $40,000 став первым ответить: %d - %d", number1, number2);
}
else {
MathsResult = number1 * number2;
format(string, sizeof(string), "[РЕАКЦИЯ]: выигрыш $40,000 став первым ответить: %d x %d", number1, number2);
}
SendClientMessageToAll(COLOR_RED, string);
KillTimer(ReactionTimer);
ReactionTest[0] = GetTickCount();
ContestType = true;
ContestType = CONTEST_MATH;
ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 0);
return 1;
}
}
return 1;
}
Автор:Kostas
Последнее редактирование модератором:
