Коллекия функций/макросов
|
|
Великс | Дата: Понедельник, 28.02.2011, 22:01 | Сообщение # 1 |
Мастер джэдай
Группа:
Модераторы
Сообщений: 3931
Награды: 287
Город: Мухосранск
Репутация: 8429
Замечания: 0%
Статус:
| Делимся функциями/макросами, я начну: Проверка на наличие игрока в авто на каком либо сидении. Code stock IsAnyPlayerInVehicle(vehicleid,seat){ for(new i = 0; i < MAX_PLAYERS; i++){ if (IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == seat){ return 1; } } return 0; } P.S. - Закрепите тему, если народ будет делиться - тема станет полезной.
[cut=freestyle] ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ , СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ, ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ, ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ. УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА. ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ. ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ. ЛЕНАРУ ДАЙ УМА И ЛЕНУ НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ © Хасан [/cut]
|
|
|
|
Fus1 | Дата: Понедельник, 28.02.2011, 22:15 | Сообщение # 2 |
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
| Узнаёт в каком слоте лежит оружие Code stock GetWeaponSlot(gunid) { if(gunid == 1) return 0; else if(IsAMelee(gunid)) return 1; else if(IsAPistol(gunid)) return 2; else if(IsAShotgun(gunid)) return 3; else if(IsAMachineGun(gunid)) return 4; else if(IsAnAssault(gunid)) return 5; else if(IsARifle(gunid)) return 6; else if(IsAHeavyAssault(gunid)) return 7; else if(IsAGrenade(gunid)) return 8; else if(IsAStuff1(gunid)) return 9; else if(IsAGirlsStuff(gunid)) return 10; else if(IsAStuff2(gunid)) return 11; return -1; } Само оружие Code stock IsAPistol(gunid) { if(gunid >= 22 && gunid <=24) return 1; return 0; } stock IsAMelee(gunid) { if(gunid >= 2 && gunid <= 9) return 1; return 0; } stock IsAGirlsStuff(gunid) { if(gunid >= 10 && gunid <= 15) return 1; return 0; } stock IsAGrenade(gunid) { if((gunid >= 16 && gunid <= 18) || gunid == 39) return 1; return 0; } stock IsAShotgun(gunid) { if(gunid >= 25 && gunid <= 27) return 1; return 0; } stock IsAMachineGun(gunid) { if(gunid == 28 || gunid == 29 || gunid == 32) return 1; return 0; } stock IsAnAssault(gunid) { if(gunid == 30 || gunid == 31) return 1; return 0; } stock IsARifle(gunid) { if(gunid == 33 || gunid == 34) return 1; return 0; } stock IsAHeavyAssault(gunid) { if(gunid == 35 || gunid == 36 || gunid == 37) return 1; return 0; } stock IsAStuff1(gunid)//Баллончик { if(gunid >= 41 && gunid <= 43 ) return 1; return 0; } stock IsAStuff2(gunid) { if(gunid >= 44 && gunid <= 46 )//Парашют return 1; return 0; }
|
|
|
|
Великс | Дата: Вторник, 01.03.2011, 22:25 | Сообщение # 3 |
Мастер джэдай
Группа:
Модераторы
Сообщений: 3931
Награды: 287
Город: Мухосранск
Репутация: 8429
Замечания: 0%
Статус:
| Эмм, вопрос. Возможно ли сделать проверку на кол-во игроков в авто?Чет сам никак не допру
[cut=freestyle] ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ , СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ, ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ, ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ. УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА. ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ. ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ. ЛЕНАРУ ДАЙ УМА И ЛЕНУ НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ © Хасан [/cut]
|
|
|
|
Andrejs | Дата: Вторник, 01.03.2011, 22:55 | Сообщение # 4 |
Группа:
I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус:
| [MrVelix], возможно. Добавлено (01.03.2011, 22:55) --------------------------------------------- Fus1, всё можно сделать проще Quote stock WeaponSlot(weaponid) { switch (weaponid) { case 0,1: return 0; case 2..9: return 1; case 10..15: return 10; case 16..18,39: return 8; case 22..24: return 2; case 25..27: return 3; case 28,29,32: return 4; case 30,31: return 5; case 33,34: return 6; case 35..38: return 7; case 41..43: return 9; case 44..46: return 9; default: return 12; } return true; }
|
|
|
|
Fus1 | Дата: Среда, 02.03.2011, 05:44 | Сообщение # 5 |
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
| McSquizzy , ну легче то легче, но многие и в моде используют не всё оружие, а допустим только пистолеты, и тут можно просто IsAPistol
|
|
|
|
toneysix | Дата: Среда, 02.03.2011, 07:17 | Сообщение # 6 |
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус:
| Кстати говоря, конструкция switch/case работает быстрее операторов условий, проверено.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
|
|
|
Andrejs | Дата: Среда, 02.03.2011, 08:32 | Сообщение # 7 |
Группа:
I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус:
| Fus1, вот как раз если в моде используют не всё оружие, то моя будет удобнее, потому что Quote (toneysix) конструкция switch/case работает быстрее операторов условий что тоже могу подтвердить В любом случае, пользователь выберет удобный способ для себя, а мы предлагаем ему выбор
|
|
|
|
Fus1 | Дата: Среда, 02.03.2011, 15:08 | Сообщение # 8 |
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
| McSquizzy,это понятно что как хочет так и использует, но смотри просто это ведь всё равно вариант легче, допустим : Например, нам нужно узнать, ID 24 (дигл) - это пистолет или нет? Мы можем вызвать функцию WeaponSlot, чтобы узнать слот оружия, функция вернет значение 2. Но вдруг мы забыли, что номер слота для пистолетов - это 2 ? Нам прийдется делать отдельную проверку для этого. А так - мы просто вызвали функцию IsAPistol(пистолет это или нет?) и получили точный ответ: да или нет. В данном случае - да, т. к. дигл - это пистолет.
|
|
|
|
Andrejs | Дата: Четверг, 03.03.2011, 12:17 | Сообщение # 9 |
Группа:
I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус:
| Ладно, ладно. Главное, что работают, а там уже выберут кому что надо
|
|
|
|