• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
pawno урок Reaction Contest
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
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
23:40:55
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2025

vkontakte :samp-pawno.ru: