admin Дата: Вторник, 13.12.2011, 21:50:59 | Сообщение # 1
Группа: Администраторы
Сообщений: 3869
Две реакции типа (Ввод часть) и (математика часть), -Математика включает в себя три вида математической операции (сложение "+", вычитание '-', '*' умножение) И так начнем уроку! Верху мода: Code
#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() и туда вставляем: Code
ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1);
Примерно так должен быть public: Code
public OnGameModeInit() { ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1); return 1; }
После этого ищем public OnGameModeExit() и туда вставляем: Code
KillTimer(ReactionTimer);
Примерно так должен быть public: Code
public OnGameModeExit() { KillTimer(ReactionTimer); return 1; }
После этого ищем public OnPlayerText и туда вставляем: Code
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: Code
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: Code
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 Урок by - 26_RUSSS
zm-jail.ru Разработка сайта samp-pawno.ru
Сообщение Две реакции типа (Ввод часть) и (математика часть), -Математика включает в себя три вида математической операции (сложение "+", вычитание '-', '*' умножение) И так начнем уроку! Верху мода: Code
#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() и туда вставляем: Code
ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1);
Примерно так должен быть public: Code
public OnGameModeInit() { ReactionTimer = SetTimerEx("Contest_Function", (1000*60*CONTEST_TIME), false, "i", 1); return 1; }
После этого ищем public OnGameModeExit() и туда вставляем: Code
KillTimer(ReactionTimer);
Примерно так должен быть public: Code
public OnGameModeExit() { KillTimer(ReactionTimer); return 1; }
После этого ищем public OnPlayerText и туда вставляем: Code
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: Code
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: Code
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 Урок by - 26_RUSSS Автор - admin Дата добавления - 13.12.2011 в 21:50:59