Делаем детектор оружия для дарк рп сервера

0
V.I.P.
0
Активный участник
В общем тема такая, недавно я играл на одном дарк рп сервере гмода, и нашёл одного чувака у которого в дубликаторе был сохранён детектор оружия, работал он значит так:
Как только игрок проходил через Wire Ranger, то на EPG экране отображалось всё оружие которое было у него в инвентаре (не в кармане или сумке, а именно то которое использовалось, физган, тулган и т.д.). Ну в общем после этого я него пытался выпросить эту фигню скопировать но он не дал, сказал что типа это самый секретный код на е2 и тому подобное. Ну я давай гуглить этот детектор оружия на английских и американских форумах. Наткнулся значит на вот какое видео:

Ну я от имени канала гмод фана коммент оставил типа где код (правд не оч правильно с точки зрения грамматики английского), можете почитать, и жду в общем ответа от чувака этого. Кароч если он не ответит то го начнём пилить этот детектор, можно будет собраться в гмоде на каком нибудь сервере и уже начать что то делать или тут обмениваться идеями и набросками кода, и тестить пока не сделаем идеал, отпишитесь кто нибудь в этой теме
Внезапно полчища нек
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!
V.I.P.
0
Активный участник
Ablageyl
17:37, 12.09.2015
Спойлер [+]
Смотрю никто нифига не знает, кароч я нашёл какой то вроде бы и рабочий код но
ещё не тестил его, сегодня проверю в одиночной игре, по идеи как я
посмотрел все выводы пойдут на экраны
Внезапно полчища нек
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!
V.I.P.
0
Активный участник
Как я и предполагал код рабочий, вот только боже на экранах появляется какое то дерьмо, в общем нужно работать, блин я себя чувствую шизофреником который говорит сам с собой, люди подключайтесь, вам не интересно что ли?
Внезапно полчища нек
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!
Посетители
0
Долгожители форума
Привет
Посетители
0
Долгожители форума
Как дела?
V.I.P.
0
Всё в маске
А у нас в квартире газ, а у вас?
Журналисты
0
Активный участник
сас
Посетители
0
Активный участник
KACbIM
17:44, 04.11.2015
Знаю такой код на E2. Мы его как-то у модера на одном сервере запалили и стали попрошайничать, он естественно не дал. По этому мы с другом сговорились написать такой же код и даже лучше. Тема проста, как в носу поковырять.
Кому интересно, можете прочитать, как мы вообще дошли до нашего кода.
Спойлер [+]

Писать сюда его не буду, но объясню принцип работы, потому что не люблю плагиат, если хотите, то разбирайтесь и делайте сами, я постараюсь как можно понятнее объяснить.
С помощью кода определяющий оружие в руках, мы с другом собрали всё оружие которое есть в массив, и не Entity, а их типы (названия).
Спойлер [+]

Массив выглядел так:
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)))
}
V.I.P.
0
Активный участник
KACbIM, на NxServ играли чтоль? 
Внезапно полчища нек
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!
Посетители
0
Активный участник
Ablageyl, играли что ль.
 
Доступ закрыт.
  • Вам запрещено отвечать в темах данного форума.