• Страница 1 из 1
  • 1
Модератор форума: admin, TweIk  
Создаем игровой автомат
adminДата: Воскресенье, 20.03.2011, 12:47:01 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869
Сейчас мы сделаем простенький скрипт игрового автомата. Суть в том, что кидаешь деньги, тебе дает рандомный выигрыш. Все очень просто, может кому пригодится, а может кто-то доработает для себя это в более интересный вид. Здесь мы используем диалог с выбором суммы, которую вольем в автомат.

Для начала, находим:

Code
public OnPlayerCommandText(playerid, cmdtext[])

После какой-нибудь команды вставляем:

Code

if(strcmp(cmd, "/odb", true) == 0) // Заменить на свою команду.
     {
         if(IsPlayerConnected(playerid))
            {
                 if (PlayerToPoint(3.0, playerid, координаты x,y,z))//Заменить на свои координаты, это наша проверка на координаты местонахождения автомата.
                 {
                     ShowPlayerDialog(playerid,9756,DIALOG_STYLE_LIST,"{EE4000}Игровой автомат","Закинуть 5$\nЗакинуть 10$\nЗакинуть 20$\nЗакинуть 30$\nЗакинуть 50$\nЗакинуть 100$","Начать","Отмена");//9756 - ID диалога, можно заменить на свой.
                 }
                 else
                 {
                 SendClientMessage(playerid, COLOR_WHITE, "* Вы не у автомата.");//Если игрок не у автомата, то выдаем ему такое сообщение.
                 }
         }
}  

Ищем:

Code

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

После какого-либо диалога добавляем:

Code

if(dialogid == 9756)
{
if(response)
{
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 5)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(10);
GivePlayerMoney(playerid, -5);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 5$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 1:
{
if(GetPlayerMoney(playerid) < 10)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(18);
GivePlayerMoney(playerid, -10);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 10$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 2:
{
if(GetPlayerMoney(playerid) < 20)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(28);
GivePlayerMoney(playerid, -20);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 20$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 3:
{
if(GetPlayerMoney(playerid) < 30)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(40);
GivePlayerMoney(playerid, -30);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 30$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 4:
{
if(GetPlayerMoney(playerid) < 50)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(70);
GivePlayerMoney(playerid, -50);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 50$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 5:
{
if(GetPlayerMoney(playerid) < 100)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(150);
GivePlayerMoney(playerid, -100);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 100$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
}
}
}  

FAQ:

1. new randod = 1 + random(150); - Создаем рандомный выигрыш, 150 максимальная сумма выигрыша.

2. GivePlayerMoney(playerid, сумма); - отнимаем у игрока деньги, которые он закинул.

3. GivePlayerMoney(playerid,randod); - выдаем игроку рандомный выигрыш.

4. Если есть вопросы - пишите, отвечу.

5. if(GetPlayerMoney(playerid) < Кол-во) - проверка на деньги игрока.

Вариант №II

Здесь нам не потребуется вводить команду, на пикапе нам сразу вылезет диалог с меню игрового автомата.

Начнем.

В начало мода ко всем new:

Code

new avtomatdialog;

Ищем:

Code

public OnGameModeInit()

Вставляем ко всем пикапам:

Code

avtomatdialog = CreatePickup(1239,2,x,y,z);// Заменить на свои координаты x,y,z

Ищем:

Code

public OnPlayerPickUpPickup(playerid, pickupid)

Code

if(pickupid == avtomatdialog)
{
if(IsPlayerConnected(playerid))
{
ShowPlayerDialog(playerid,9756,DIALOG_STYLE_LIST,"{EE4000}Игровой автомат","Закинуть 5$\nЗакинуть 10$\nЗакинуть 20$\nЗакинуть 30$\nЗакинуть 50$\nЗакинуть 100$","Начать","Отмена");//9756 - ID диалога, можно заменить на свой.
}
}  

Находим:

Code

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

Вставляем после любого диалога:

Code

if(dialogid == 9756)
{
if(response)
{
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 5)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(10);
GivePlayerMoney(playerid, -5);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 5$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 1:
{
if(GetPlayerMoney(playerid) < 10)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(18);
GivePlayerMoney(playerid, -10);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 10$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 2:
{
if(GetPlayerMoney(playerid) < 20)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(28);
GivePlayerMoney(playerid, -20);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 20$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 3:
{
if(GetPlayerMoney(playerid) < 30)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(40);
GivePlayerMoney(playerid, -30);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 30$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 4:
{
if(GetPlayerMoney(playerid) < 50)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(70);
GivePlayerMoney(playerid, -50);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 50$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 5:
{
if(GetPlayerMoney(playerid) < 100)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(150);
GivePlayerMoney(playerid, -100);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 100$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
}
}
}   


zm-jail.ru

Разработка сайта samp-pawno.ru


 
СообщениеСейчас мы сделаем простенький скрипт игрового автомата. Суть в том, что кидаешь деньги, тебе дает рандомный выигрыш. Все очень просто, может кому пригодится, а может кто-то доработает для себя это в более интересный вид. Здесь мы используем диалог с выбором суммы, которую вольем в автомат.

Для начала, находим:

Code
public OnPlayerCommandText(playerid, cmdtext[])

После какой-нибудь команды вставляем:

Code

if(strcmp(cmd, "/odb", true) == 0) // Заменить на свою команду.
     {
         if(IsPlayerConnected(playerid))
            {
                 if (PlayerToPoint(3.0, playerid, координаты x,y,z))//Заменить на свои координаты, это наша проверка на координаты местонахождения автомата.
                 {
                     ShowPlayerDialog(playerid,9756,DIALOG_STYLE_LIST,"{EE4000}Игровой автомат","Закинуть 5$\nЗакинуть 10$\nЗакинуть 20$\nЗакинуть 30$\nЗакинуть 50$\nЗакинуть 100$","Начать","Отмена");//9756 - ID диалога, можно заменить на свой.
                 }
                 else
                 {
                 SendClientMessage(playerid, COLOR_WHITE, "* Вы не у автомата.");//Если игрок не у автомата, то выдаем ему такое сообщение.
                 }
         }
}  

Ищем:

Code

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

После какого-либо диалога добавляем:

Code

if(dialogid == 9756)
{
if(response)
{
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 5)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(10);
GivePlayerMoney(playerid, -5);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 5$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 1:
{
if(GetPlayerMoney(playerid) < 10)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(18);
GivePlayerMoney(playerid, -10);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 10$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 2:
{
if(GetPlayerMoney(playerid) < 20)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(28);
GivePlayerMoney(playerid, -20);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 20$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 3:
{
if(GetPlayerMoney(playerid) < 30)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(40);
GivePlayerMoney(playerid, -30);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 30$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 4:
{
if(GetPlayerMoney(playerid) < 50)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(70);
GivePlayerMoney(playerid, -50);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 50$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 5:
{
if(GetPlayerMoney(playerid) < 100)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(150);
GivePlayerMoney(playerid, -100);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 100$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
}
}
}  

FAQ:

1. new randod = 1 + random(150); - Создаем рандомный выигрыш, 150 максимальная сумма выигрыша.

2. GivePlayerMoney(playerid, сумма); - отнимаем у игрока деньги, которые он закинул.

3. GivePlayerMoney(playerid,randod); - выдаем игроку рандомный выигрыш.

4. Если есть вопросы - пишите, отвечу.

5. if(GetPlayerMoney(playerid) < Кол-во) - проверка на деньги игрока.

Вариант №II

Здесь нам не потребуется вводить команду, на пикапе нам сразу вылезет диалог с меню игрового автомата.

Начнем.

В начало мода ко всем new:

Code

new avtomatdialog;

Ищем:

Code

public OnGameModeInit()

Вставляем ко всем пикапам:

Code

avtomatdialog = CreatePickup(1239,2,x,y,z);// Заменить на свои координаты x,y,z

Ищем:

Code

public OnPlayerPickUpPickup(playerid, pickupid)

Code

if(pickupid == avtomatdialog)
{
if(IsPlayerConnected(playerid))
{
ShowPlayerDialog(playerid,9756,DIALOG_STYLE_LIST,"{EE4000}Игровой автомат","Закинуть 5$\nЗакинуть 10$\nЗакинуть 20$\nЗакинуть 30$\nЗакинуть 50$\nЗакинуть 100$","Начать","Отмена");//9756 - ID диалога, можно заменить на свой.
}
}  

Находим:

Code

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

Вставляем после любого диалога:

Code

if(dialogid == 9756)
{
if(response)
{
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 5)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(10);
GivePlayerMoney(playerid, -5);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 5$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 1:
{
if(GetPlayerMoney(playerid) < 10)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(18);
GivePlayerMoney(playerid, -10);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 10$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 2:
{
if(GetPlayerMoney(playerid) < 20)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(28);
GivePlayerMoney(playerid, -20);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 20$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 3:
{
if(GetPlayerMoney(playerid) < 30)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(40);
GivePlayerMoney(playerid, -30);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 30$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 4:
{
if(GetPlayerMoney(playerid) < 50)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(70);
GivePlayerMoney(playerid, -50);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 50$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
case 5:
{
if(GetPlayerMoney(playerid) < 100)
{
SendClientMessage(playerid, COLOR_GRAD5, "{EE4000}[ОШИБКА]: {FFF8DC}У вас нет столько денег!");
return 1;
}
new randod = 1 + random(150);
GivePlayerMoney(playerid, -100);
GivePlayerMoney(playerid, randod);
format(string,sizeof(string), "Вы выиграли %d долларов\nЗа участие в игре  вы потратили 100$!",randod);
ShowPlayerDialog(playerid,9742,DIALOG_STYLE_MSGBOX,"Лотерея",string,"Выход","");
}
}
}
}   

Автор - admin
Дата добавления - 20.03.2011 в 12:47:01
  • Страница 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)

Вверх
09:24:46
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2024

vkontakte :samp-pawno.ru: