 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[FAQ] Банкоматы на диалогах
| |
| SMOUK | Дата: Вторник, 30.03.2010, 11:54 | Сообщение # 1 |
|
Местный
Группа:
Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус: 
| В этой теме хотел бы показать как сделать снятие денег со чета в банкомате на диалогах. И так начнём. Создаем паблик Code public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) (Если уже есть такой то просто вставите код из моего)) Далее добавляем наш код снятия денег с банкомата в паблик . Я сделал так. Первая сттрочка-.2000. 2-ая.30000. 3-я.100000. И добавляем кодик в паблик для вывода диалога для снятия Code if(dialogid ==0) { if(response) { if(listitem == 0) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "БАНКОМАТ", "2000$\n30000$\n100000$", "Выбор", "Отмена"); } return 1; } } В итоге у нас паблик выглядит вот так: Code public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid ==0) { if(response) { if(listitem == 0) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "БАНКОМАТ", "2000$\n30000$\n100000$", "Выбор", "Отмена"); } return 1; } } if(dialogid ==1) { if(response) { if(listitem == 1) { new string[125]; new curfunds = PlayerInfo[playerid][pAccount]; new cashdeposit; new cashdep = 2000; if(PlayerInfo[playerid][pAccount] <= 2000) return SendClientMessage(playerid, COLOR_LIGHTGREEN," У вас нет такой суммы на счете!"); PlayerInfo[playerid][pAccount]=PlayerInfo[playerid][pAccount]-2000; GetPlayerMoney(playerid,cashdeposit-2000); GivePlayerMoney(playerid,cashdep); SendClientMessage(playerid, COLOR_GREEN, "|____ КВИТАНЦИЯ ____|"); format(string, sizeof(string), " Старый баланс: $%d", curfunds); SendClientMessage(playerid, COLOR_GRAD2, string); format(string, sizeof(string), " Снято: $%d",cashdep); SendClientMessage(playerid, COLOR_GRAD4, string); SendClientMessage(playerid, COLOR_GREEN, "|------------------------------|"); format(string, sizeof(string), " Новый баланс: $%d", PlayerInfo[playerid][pAccount]); SendClientMessage(playerid, COLOR_WHITE, string); } if(listitem == 1) { new string[125]; new curfunds = PlayerInfo[playerid][pAccount]; new cashdeposit; new cashdep = 30000; if(PlayerInfo[playerid][pAccount] <= 30000) return SendClientMessage(playerid, COLOR_LIGHTGREEN," У вас нет такой суммы на счете!"); PlayerInfo[playerid][pAccount]=PlayerInfo[playerid][pAccount]-30000; GetPlayerMoney(playerid,cashdeposit-30000); GivePlayerMoney(playerid,cashdep); SendClientMessage(playerid, COLOR_GREEN, "|____ КВИТАНЦИЯ ____|"); format(string, sizeof(string), " Старый баланс: $%d", curfunds); SendClientMessage(playerid, COLOR_GRAD2, string); format(string, sizeof(string), " Снято: $%d",cashdep); SendClientMessage(playerid, COLOR_GRAD4, string); SendClientMessage(playerid, COLOR_GREEN, "|------------------------------|"); format(string, sizeof(string), " Новый баланс: $%d", PlayerInfo[playerid][pAccount]); SendClientMessage(playerid, COLOR_WHITE, string); } if(listitem == 2) { new string[125]; new curfunds = PlayerInfo[playerid][pAccount]; new cashdeposit; new cashdep = 100000; if(PlayerInfo[playerid][pAccount] <= 100000) return SendClientMessage(playerid, COLOR_LIGHTGREEN," У вас нет такой суммы на счете!"); PlayerInfo[playerid][pAccount]=PlayerInfo[playerid][pAccount]-100000; GetPlayerMoney(playerid,cashdeposit-100000); GivePlayerMoney(playerid,cashdep); SendClientMessage(playerid, COLOR_GREEN, "|____ КВИТАНЦИЯ ____|"); format(string, sizeof(string), " Старый баланс: $%d", curfunds); SendClientMessage(playerid, COLOR_GRAD2, string); format(string, sizeof(string), " Снято: $%d",cashdep); SendClientMessage(playerid, COLOR_GRAD4, string); SendClientMessage(playerid, COLOR_GREEN, "|------------------------------|"); format(string, sizeof(string), " Новый баланс: $%d", PlayerInfo[playerid][pAccount]); SendClientMessage(playerid, COLOR_WHITE, string); } } } return 1; } Так, теперь чтобы подходя к банкомату у нас вылезал диалог нам надо поставить пикап. Делаем это вот так: В public OnGameModeInit() Добовляем наши пикапы: У меня вот что, три пикапа на три банкомата. Code bank = CreatePickup(1239, 1, -2019.6946,-101.0430,35.1641); bank1 = CreatePickup(1239, 1, 1748.1620,-1862.8341,13.5758); bank2 = CreatePickup(1239, 1, 1464.0524,-1749.2156,15.4453); И не забываем ставить new , ко всем new ставим new bank; new bank1; new bank2; Такс, теперь нам надо дать действие пикапу. Чтобы когда игрок становиться на него выполнялось какое либо действие, у нас открытие диалога. Идем в public OnPlayerPickUpPickup Там добавляем наш кодик. Code if(pickupid == bank) ShowPlayerDialog(playerid, 7, DIALOG_STYLE_LIST, "БАНКОМАТ", "Снять деньги\nДр информация", "Выбор", "Отмена");(bank); if(pickupid == bank1) ShowPlayerDialog(playerid, 7, DIALOG_STYLE_LIST, "БАНКОМАТ", "Снять деньги\nДр информация", "Выбор", "Отмена");(bank1); if(pickupid == bank2) ShowPlayerDialog(playerid, 7, DIALOG_STYLE_LIST, "БАНКОМАТ", "Снять деньги\nДр информация", "Выбор", "Отмена");(bank2); После эого паблик должен выглядить вот так: (у меня так) public OnPlayerPickUpPickup(playerid, pickupid) { if(pickupid == bank) ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "БАНКОМАТ", "Снять деньги\nДр информация", "Выбор", "Отмена");(bank); if(pickupid == bank1) ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "БАНКОМАТ", "Снять деньги\nДр информация", "Выбор", "Отмена");(bank1); if(pickupid == bank2) ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "БАНКОМАТ", "Снять деньги\nДр информация", "Выбор", "Отмена");(bank2); return 1; } Так вроде-бы всё! А неет, нам нужно поставить сами банкоматы, объекты тоесть. Вот три банкомата в 1 городе два и у АШ в 2-ом. Code CreateObject(2754, 1464.069336, -1750.423340, 15.347457, 0.000000*(90/1.56), 0.000000*(90/1.56), -1.570796*(90/1.56)); CreateObject(2754, 1748.195435, -1864.029297, 13.476862, 0.000000*(90/1.56), 0.000000*(90/1.56), -1.570796*(90/1.56)); CreateObject(2754, -2019.860229, -102.560760, 35.066208, 0.000000*(90/1.56), 0.000000*(90/1.56), -1.570796*(90/1.56)); Вроде-бы всё! Я надеюсь не будет ошибок в коде, по FAQ делал на мод их ерроов небыло кроме старых варнингов мода. Если-же у кого то возникнут проблемы/вопросы то пишите в тему помогу чем смогу.

|
| |
|
|
| [-Smart-] | Дата: Вторник, 30.03.2010, 12:17 | Сообщение # 2 |
|
Группа:
I'm V.I.P.
Сообщений: 249
Награды: 3
Город: Казань
Репутация: 229
Замечания: 20%
Статус: 
| Респект за FAQ + от меня и награда за создание думаю пригодится. За сёднешний день ужэ 2 FAQ
Сообщение отредактировал Ilya_Good - Вторник, 30.03.2010, 12:18 |
| |
|
|
| _LexA_ | Дата: Вторник, 30.03.2010, 16:08 | Сообщение # 3 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1437
Награды: 161
Город: Ростов-на-Дону
Репутация: 563
Замечания: 20%
Статус: 
| smouk87, зачем вписывать в диалог суммы, которые можно снять, если можно использовать DIALOG_STYLE_INPUT для ручного ввода суммы денег?
|
| |
|
|
| Maccer | Дата: Вторник, 30.03.2010, 16:20 | Сообщение # 4 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 7
Город: Санкт-Петербург
Репутация: 100
Замечания: 40%
Статус: 
| Quote (smouk87) if(PlayerInfo[playerid][pAccount] <= 2000) return SendClientMessage(playerid, COLOR_LIGHTGREEN," У вас нет такой суммы на счете!"); PlayerInfo[playerid][pAccount]=PlayerInfo[playerid][pAccount]-2000; GetPlayerMoney(playerid,cashdeposit-2000); Надо говорить где не прав или сам поймешь? И еще, скажи, ты не думал что можно не писать один и тот же код несколько раз? А только один раз задать нужное значение cashdep.
есть вопросы по sa-mp или pawn? помогу за $$
|
| |
|
|
| SMOUK | Дата: Вторник, 30.03.2010, 16:31 | Сообщение # 5 |
|
Местный
Группа:
Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус: 
| Народ я в скрипте не так уж и крут как вы! Так что для меня это лучший и удобный и понятный вариант! Думаю для таких как для меня или новечков в скриптинге он самый подходящий! ФАК работает вы скажите самое главное ?

|
| |
|
|
| Maccer | Дата: Вторник, 30.03.2010, 16:37 | Сообщение # 6 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 7
Город: Санкт-Петербург
Репутация: 100
Замечания: 40%
Статус: 
| Quote (smouk87) ФАК работает вы скажите самое главное ? А ты че, даже не проверял? мне кажется у тебя там 2 раза идет проверка на if(listitem == 1) и то что я жирным выделил в прошлом посту, первое надо подправить, второе убрать
есть вопросы по sa-mp или pawn? помогу за $$
|
| |
|
|
| SMOUK | Дата: Вторник, 30.03.2010, 16:40 | Сообщение # 7 |
|
Местный
Группа:
Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус: 
| Нет, я проверял сё работает , просто у меня руки корявые, мог намудрить че нить не то! Quote мне кажется у тебя там 2 раза идет проверка на if(listitem == 1) и то что я жирным выделил в прошлом посту, первое надо подправить, второе убрать Ненадо пожалуйста тут в теме флудить о том как сделать лучше и что тут не правельно. У темы не эта задача!

|
| |
|
|
| Eakwarp | Дата: Вторник, 30.03.2010, 16:50 | Сообщение # 8 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус: 
| Эм, большое такое "ЭМ", причем тут FAQ?... Где тут FAQ?... Я наверное слепой безглазый фантазер с половинкой мозга, но я вижу туториал.
More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.
Valakas Roleplay on Twitter
Платные консультации, разработка, в ICQ. Дорого.
|
| |
|
|
| Maccer | Дата: Вторник, 30.03.2010, 16:56 | Сообщение # 9 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 7
Город: Санкт-Петербург
Репутация: 100
Замечания: 40%
Статус: 
| Quote (smouk87) Ненадо пожалуйста тут в теме флудить о том как сделать лучше и что тут не правельно. долбоеб чтоли? я те говорю что у тебя ошибки в коде, если listitem равен 1, сначала снимутся 2000, потом еще 30000 никому твой багнутый код не нужен, не умеешь - не пиши Quote (smouk87) У темы не эта задача! Интересно а какая у нее задача? показать всем какой ты молодец и какой говнокод писать умеешь?
есть вопросы по sa-mp или pawn? помогу за $$
|
| |
|
|
|
 |
|
 | |
| |
|