В общем тема такая, недавно я играл на одном дарк рп сервере гмода, и нашёл одного чувака у которого в дубликаторе был сохранён детектор оружия, работал он значит так: Как только игрок проходил через Wire Ranger, то на EPG экране отображалось всё оружие которое было у него в инвентаре (не в кармане или сумке, а именно то которое использовалось, физган, тулган и т.д.). Ну в общем после этого я него пытался выпросить эту фигню скопировать но он не дал, сказал что типа это самый секретный код на е2 и тому подобное. Ну я давай гуглить этот детектор оружия на английских и американских форумах. Наткнулся значит на вот какое видео:
Ну я от имени канала гмод фана коммент оставил типа где код (правд не оч правильно с точки зрения грамматики английского), можете почитать, и жду в общем ответа от чувака этого. Кароч если он не ответит то го начнём пилить этот детектор, можно будет собраться в гмоде на каком нибудь сервере и уже начать что то делать или тут обмениваться идеями и набросками кода, и тестить пока не сделаем идеал, отпишитесь кто нибудь в этой теме
Внезапно полчища нек Покроют земную твердь. И если одна муркнет — «ня», Миллионы ответят — «смерть»!
Смотрю никто нифига не знает, кароч я нашёл какой то вроде бы и рабочий код но ещё не тестил его, сегодня проверю в одиночной игре, по идеи как я посмотрел все выводы пойдут на экраны
Внезапно полчища нек Покроют земную твердь. И если одна муркнет — «ня», Миллионы ответят — «смерть»!
Как я и предполагал код рабочий, вот только боже на экранах появляется какое то дерьмо, в общем нужно работать, блин я себя чувствую шизофреником который говорит сам с собой, люди подключайтесь, вам не интересно что ли?
Внезапно полчища нек Покроют земную твердь. И если одна муркнет — «ня», Миллионы ответят — «смерть»!
Знаю такой код на E2. Мы его как-то у модера на одном сервере запалили и стали попрошайничать, он естественно не дал. По этому мы с другом сговорились написать такой же код и даже лучше. Тема проста, как в носу поковырять. Кому интересно, можете прочитать, как мы вообще дошли до нашего кода.
История о воплощении мечты в реальность. Дело было так. Иду я по городу "Рокфорд" и вижу в здании Казино. Там, как и во всех казино стояли автоматы и т.п.. Но на входе был пост охранника с детектором оружия. И детектор был на E2. Оказывается основателем казино был модератор. Ну я давай расспрашивать: дашь? что там написано? что писал? и т.д.. Он ничего не сказал, даже не дал наводку. За несколько дней до этого я написал радар, который использовал Trigger. Trigger - это вроде реинжера, только работает не лучом, а областью, типа findInBox(). Он определял положение человека, его имя, профессию и самое главное, это оружие, которое он держит. Выглядела эта строка примерно так: EGP:egpText(N,T1[I,entity]:weapon():type(),vec2(T1[I,entity]:pos():x()/M,T1[I,ent
ity]:pos():y()/M)) После того как меня продинамил модер, я и мой друг решили осуществить нашу идею. Я воспользовался как раз той строкой, что определяла оружие в руках игрока и стал прорабатывать идею. По началу я думал писать так: if(Ply:weapon():type()=="gmod_tool"){ EGP:egpText(1,"gmod_tool",vec2(10)) } Это был наш первый шаг. Я отдал наработки другу и он уже на следующий день притащил мне код, который определяет оружие не на руках, а то что с собой (не карманы и пакеты).
Писать сюда его не буду, но объясню принцип работы, потому что не люблю плагиат, если хотите, то разбирайтесь и делайте сами, я постараюсь как можно понятнее объяснить. С помощью кода определяющий оружие в руках, мы с другом собрали всё оружие которое есть в массив, и не Entity, а их типы (названия).
Код для определения оружия в руках: @name Weapon @input P:entity EGP:wirelink interval(1000) EGP:egpText(1,P:weapon():type(),vec2(10)) P[ENTITY] - подключите его к Ranger, предварительно поставьте в Ranger галочки: Ignor World и Etity+EntID EGP[WIRELINK] - его подключите к экрану EGPv3 если всё сделали правильно, то если встать на луч, то он покажет тип оружия, его желательно куда-нибудь записать. Так делаем все остальные.
Массив выглядел так: We[1,string]="gmod_tool" We[2,string]="weapon_physcannon" и т.д.. Всё это собрали в условие if(first() || dupefinished()). Его обычно пишут в начале, он срабатывает если чип начинает загружаться или (знак = || ) после копирования. Интервал чипа стоял где-то 200 миллисекунд ( interval(200) ). Дальше сделали условие if(changed(P) && P:isPlayer()), это условие говорит если переменная P (в нашем случае это Entity игрока) изменилась и P это игрок, то идём дальше. В этом условии идёт цикл for(I=1,We:count()), тут написано повторять код от 1 до последнего значения массива We. We:count() - это количество значений в массиве. В цикле стоит условие: if(P:weapon(We[I,string]):type()==We[I,string]){ EGP:egpText(I,We[I,string],vec2(10,10+25*(I-1))) } Это условие как раз и отвечает за определение наличия оружия у игрока. Этот код был кривой, т.к. оружий много, и если у игрока оружие под номером 20 в массиве, то и высвечиваться на экране оно будет далеко внизу с большим пробелом. По этому я создал второй массив, и записал его в условие в цикле: if(changed(P) && P:isPlayer()){ R=1 for(I=1,We:count()){ if(P:weapon(We[I,string]):type()==We[I,string]){ R++ We1[R,string]=We[I,string] } } } Где R - это число, его обязательно нужно указать в persist, иначе не будет работать. Потом я просто создал второй цикл, выводящий массив We1 на экран. Он будет похож на тот что я делал в первый раз, только там We заменил на We1. Вот и весь секрет детектора оружия. for(I=1,We1:count()){ EGP:egpText(I,We1[I,string],vec2(10,10+25*(I-1))) }
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!