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
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
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