В этой теме хочу рассказать как сделать простые ларьки с хотдогами для пополнения здоровья. Разумеется для некоторых это будет не ново и не интересно, однако многим может пригодиться.
Все достаточно просто и не займет много времени.
Для начала нам нужно расставить палатки, если их так можно назвать. Для этого в public OnGameModeInit() добавляем следующие строки.
[pwn]CreateObject(1340,1540.9914550781,-1697.4248046875,13.674461364746,0,0,180.67541503906);//hotdogs lspd CreateObject(1340,1462.6568603516,-1044.7604980469,23.955711364746,0,0,89.730041503906);//hotdogs bank CreateObject(1340,427.06262207031,-1725.3531494141,9.6279668807983,0,0,79.760009765625);//hotdogs beach[/pwn]
В моем примере палатки расположены около LSPD, Банка, и около дороги недалеко от пляжа. Разумеется вы можете поставить их куда вам угодно и сколько угодно.
Далее мы делаем пикапы, на которых будет работать команда для покупки хотдога. Добавляем их в тот же public OnGameModeInit() [pwn]AddStaticPickup(1239, 1, 427.3026,-1724.0068,9.5372); //hotdog AddStaticPickup(1239, 1, 1539.6381,-1697.4041,13.5469); //hotdog AddStaticPickup(1239, 1, 1462.7971,-1043.6611,23.8281); //hotdog[/pwn]
В моем примере хотдог стоит 50$ и дает 100hp. Больше 100hp игрок не сможет получить, поедая хотдоги.
И затем в public CustomPickups() вставляем следующий код, который показывает, находясь на пикапе, сообщение о том какую команду нужно вводить что бы съесть хотдог.
во-первых, hotdogs. без ' во-вторых. лучше действия делать через /me. если юзать маски и прочее... в-третьих. советую добавить анимацию еды, иначе во время ДМа некоторые будут хилиться
Спасибо,себе поставил,ух буду етими хотдогами заселять 3 города)
не че менять я думаю не стоит все на +5 для хотдога
Добавлено (25.04.2010, 02:46) --------------------------------------------- Я так понял скоко ставишь хп стока он не будет давать, а максимально поставит стока
А ты можешь исправить команду чтобы при использовании давал по 15хп?пожалуйста^^
народ леха пытался мне обьяснить как сделать таймер, ну чтобы сьеть 1 раз в 3мин было можно Но я не пойму , не получается если можете распишите как сделать чтобы было можно сьесть следущий раз через 3минуты За раннее спасибо
Что именно я непонятно объяснил? Создаем новую переменную, т.е. в начало мода кидаем : [pwn]new primer;[/pwn] затем в public OnPlayerConnect ставим переменной значение 1 : [pwn]primer=1;[/pwn] в команде делаем проверку на эту переменную, затем ставим переменной значение 0 и запускаем таймер : [pwn]if(strcmp(cmd, "/hotdog", true) == 0) { if(IsPlayerConnected(playerid)) { if(primer==1) { if(IsPlayerInRangeOfPoint(playerid,3.0,427.3026,-1724.0068,9.5372) || IsPlayerInRangeOfPoint(playerid,3.0,1539.6381,-1697.4041,13.5469)|| IsPlayerInRangeOfPoint(playerid,3.0,1462.7971,-1043.6611,23.8281)) { SetPlayerHealth(playerid, 100); ApplyAnimation(playerid,"FOOD","EAT_Burger",4.1,0,1,1,1,1); PlayerPlaySound(playerid, 1055, 0.0, 0.0, 0.0); GivePlayerMoney(playerid, - 50); GameTextForPlayer(playerid, "~r~ - 50 $", 5000, 1); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "* %s купил хотдог, и неспеша съел его.", sendername); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); primer=0; SetTimerEx("TimerPrimer", 180000, 0, "i", playerid); } else { SendClientMessage(playerid, COLOR_GREY, "Здесь нельзя купить хотдог."); } } else { SendClientMessage(playerid, COLOR_GREY, " Еще не прошло 3-х минут. "); } } return 1; }[/pwn] и создаем паблик таймера. по истечении таймера присваиваем переменной значение 1 [pwn]forward TimerPrimer(playerid); public TimerPrimer(playerid) { primer=1; SendClientMessage(playerid, COLOR_GREY, " 3 минуты истекли, снова можно жрать. "); return 1; }[/pwn]