public OnGameModeInit() { print("\n~~~~~~~~~=========================~~~~~~~~~~~~~"); print(" ...::: AMM0 V. 1.0 Загружен ! :::..."); //------------------------------------------------------------------------------ Pickup = CreatePickup(1254,2,1366.8088,-1274.1390,13.5469); // Входной ПикАп Create3DTextLabel("::]ОРУЖИЕ[::",0xFFFF00FF,1366.8088,-1274.1390,13.5469,40.0,0,0);// 3D-Текст return; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/ammo", cmdtext, true, 10) == 0) { SetPlayerPos(playerid,1363.3793,-1284.1129,13.5469); SendClientMessage(playerid,0x00FF00AA,"Подойдите к {FFFFFF}значку {00FF00}, что бы купить оружие !"); return 1; } return 0; } public OnPlayerPickUpPickup(playerid, pickupid) { if(pickupid == Pickup) // Сдесь название пикапа { ShowPlayerDialog(playerid,1428,DIALOG_STYLE_LIST,"Оружейный Магазин","Пистолеты\nВинтовки\nДробовики\nП.-Пулемёты\nТяжелое Оружие\nХолодное Оружие\nАмуниция","Выбор","Выход"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { //------------------------------------------------------------------------------ | Главное Оружейное Меню :::... if(dialogid == 1428) { if(response) { if(listitem == 0) { ShowPlayerDialog(playerid,1425,DIALOG_STYLE_LIST,"Пистолеты","Desert Eagle [6.000$]\n9MM[+Глушитель] [4.500$]\nColt 1911 [3.500$]","Купить","Выход"); } if(listitem == 1) { ShowPlayerDialog(playerid,1420,DIALOG_STYLE_LIST,"Винтовки","Rife [7.500$]\nSniper Rife [9.800$]\nAK-47 [7.500$]\nM4 [9.500$]","Купить","Выход"); } if(listitem == 2) { ShowPlayerDialog(playerid,1415,DIALOG_STYLE_LIST,"Дробовики","ShotGun [5.000$]\nSawnOff [4.000$]\nCombat ShotGun [10.000$]","Купить","Выход"); } if(listitem == 3) { ShowPlayerDialog(playerid,1410,DIALOG_STYLE_LIST,"Тяжелое Оружие","RPG-7 [25.000$]","Купить","Выход"); } if(listitem == 4) { ShowPlayerDialog(playerid,1405,DIALOG_STYLE_LIST,"Холодное Оружие","Нож [0.800$]\nБита [1.000$]\nКатана [3.500$]\nДубинка [1.800$]","Купить","Выход"); } if(listitem == 5) { ShowPlayerDialog(playerid,1400,DIALOG_STYLE_LIST,"Амуниция","Аптечка [2.000$]\nБронижелет [4.000$]\nДжет-Пак [12.000$]","Купить","Выход"); } } } //------------------------------------------------------------------------------ //----------- П и с т о л е т ы ------------------
if(dialogid == 1425) { if(response) { if(listitem == 0) { if(GetPlayerMoney(playerid) <6000) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,24, 56); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}Desert Eagle {FFFFFF}приобретён за {FFFF00}6 000 $ {FFFFFF}!"); GivePlayerMoney(playerid,-6000); } if(listitem == 1) { if(GetPlayerMoney(playerid) <4500) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,23, 56); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}9MM(+Глушитель) {FFFFFF}приобретён за {FFFF00}4 500 $ {FFFFFF}!"); GivePlayerMoney(playerid,-4500); } if(listitem == 2) { if(GetPlayerMoney(playerid) <3500) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,22, 145); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}Colt 1911 {FFFFFF}приобретён за {FFFF00}3 500 $ {FFFFFF}!"); GivePlayerMoney(playerid,-3500); } } } //-------------- В и н т о в к и ----------------------------------------------- if(dialogid == 1420) { if(response) { if(listitem == 0) { if(GetPlayerMoney(playerid) <7500) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,33, 36); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}Rife {FFFFFF}приобретён за {FFFF00}7 500 $ {FFFFFF}!"); GivePlayerMoney(playerid,-7500); } if(listitem == 1) { if(GetPlayerMoney(playerid) <9800) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,34, 56); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}Sniper Rife {FFFFFF}приобретён за {FFFF00}9 800 $ {FFFFFF}!"); GivePlayerMoney(playerid,-9800); } if(listitem == 2) { if(GetPlayerMoney(playerid) <7500) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,30, 240); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}AK-47 {FFFFFF}приобретён за {FFFF00}7 500 $ {FFFFFF}!"); GivePlayerMoney(playerid,-7500); } if(listitem == 3) { if(GetPlayerMoney(playerid) <7500) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,31, 210); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}M4 {FFFFFF}приобретён за {FFFF00}9 500 $ {FFFFFF}!"); GivePlayerMoney(playerid,-7500); } } } //-------------- Д р о б о в и к и --------------------------------------------- if(dialogid == 1415) { if(response) { if(listitem == 0) { if(GetPlayerMoney(playerid) <5000) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,25, 40); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}ShotGun {FFFFFF}приобретён за {FFFF00}5 000 $ {FFFFFF}!"); GivePlayerMoney(playerid,-5000); } if(listitem == 1) { if(GetPlayerMoney(playerid) <4000) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,26, 35); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}SawnOff {FFFFFF}приобретён за {FFFF00}4 000 $ {FFFFFF}!"); GivePlayerMoney(playerid,-4000); } if(listitem == 2) { if(GetPlayerMoney(playerid) <10000) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,27, 36); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}Combat ShotGun {FFFFFF}приобретён за {FFFF00}10 000 $ {FFFFFF}!"); GivePlayerMoney(playerid,-10000); } } } //-------------- Т я ж е л о е О р у ж и е ------------------------------------ if(dialogid == 1410) { if(response) { if(listitem == 0) { if(GetPlayerMoney(playerid) <25000) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,36, 1); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}RPG-7 {FFFFFF}приобретён за {FFFF00}25 000 $ {FFFFFF}!"); GivePlayerMoney(playerid,-25000); } } } //-------------- Х о л о д н о е О р у ж и е ---------------------------------- if(dialogid == 1405) { if(response) { if(listitem == 0) { if(GetPlayerMoney(playerid) <800) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,4, 1); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}Нож {FFFFFF}приобретён за {FFFF00}800 $ {FFFFFF}!"); GivePlayerMoney(playerid,-800); }
if(listitem == 1) { if(GetPlayerMoney(playerid) <1000) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,5, 1); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}Бита {FFFFFF}приобретена за {FFFF00}1 000 $ {FFFFFF}!"); GivePlayerMoney(playerid,-1000); } if(listitem == 2) { if(GetPlayerMoney(playerid) <3500) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,8, 1); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}Катана {FFFFFF}приобретена за {FFFF00}3 500 $ {FFFFFF}!"); GivePlayerMoney(playerid,-3500); } if(listitem == 3) { if(GetPlayerMoney(playerid) <1800) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); GivePlayerWeapon(playerid,3, 1); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}Дубинка {FFFFFF}приобретена за {FFFF00}1 800 $ {FFFFFF}!"); GivePlayerMoney(playerid,-1800); } } } //-------------- А м у н и ц и я ----------------------------------------------- if(dialogid == 1400) { if(response) { if(listitem == 0) { if(GetPlayerMoney(playerid) <2000) return SendClientMessage(playerid, 0xFF0000AA, "НаеBаTb нас вздумал ? Тащи сюда деньги !"); SetPlayerHealth(playerid,100); SendClientMessage(playerid,0xFFFFFFAA,"{00FF00}Аптчка {FFFFFF}приобретена за {FFFF00}25 000 $ {FFFFFF}!"); GivePlayerMoney(playerid,-2000); }
Добавлено (05.12.2014, 18:47) --------------------------------------------- Ну не прям такой, но подправить надо на swich/case и уменьшить код,если первая работа то сойдет
1. - Создал бы коллбек на проверку денег и выдачу сообщения
Код
stock checkMoney(playerid, ammount) { if(GetPlayerMoney(playerid)<ammount) return SendClientMessage(playerid, -1, "У вас недостаточно денег на оплату товара. Приходите когда найдете необходимые деньги."); }
У этого способа куча приемуществ: a) - Полная замена сообщения, хотя можно было и через #define, но в этом случае происходит полная настройка. b) - Добавление дополнительных проверок или форматирования текста. Например можно будет выводить стоимость оружия, а после сколько не хватает для покупки c) - Уменьшение веса .pwn и, =>, .amx файлов. То есть уменьшение нагрузки на жесткий диск, пусть не существенное уменьшение, но все же уменьшение. Может сыграть свою роль при высоком онлайне, да и чем уменьшение нагрузки кому-то мешает?
2. Как и сказали выше, switch/case здесь более уместен, все выглядеть будет намного лучше и прекраснее, да и работать быстрее будет. 3. Все цены и разные подробности лучше было бы разложить по массиву, выглядело бы куда приятнее, хотя думаю пока это будет сложновато для вас.
Собственно все, в остальном система отлично подойдет под DM/Stunt мод ушел, не вернусь <_<