|
|
| Props |
|
SMAX1 |
Дата: Понедельник, 12.09.2011, 14:17:27 | Сообщение # 1 |
 |
Offline
Сообщений: 10
Репутация: 0 [ +/- ]
|
|
Вот пишу свой PropsMod и никак не могу понять какой код нужен 1) Чтобы удалить предмет 2) Повернуть. Если не сложно напишите(только не на Python`е) В заранее спс)
Сообщение отредактировал SMAX1 - Понедельник, 12.09.2011, 14:17:40 |
| |
| | |
|
_wS_ |
Дата: Понедельник, 12.09.2011, 15:25:42 | Сообщение # 2 |
 |
Offline
Сообщений: 1081
Репутация: 161 [ +/- ]
|
|
Чтобы это сделать, надо сначала подумать, как получить индекс предмета. Единственное, что приходит в голову, это вариант с помощью команды es_entsetname. Это позволяет установить объекту (на котором прицел) имя (targename). И нужно сохранять индексы созданных предметов. es_e.txt Code event load { es_xset n 0 es_xset v 0 es_xset x 0 es_xset y 0 es_xset z 0 keygroupremove wS es_xkeygroupcreate wS }
event unload { keygroupremove wS }
event round_start { keygroupremove wS es_xkeygroupcreate wS }
event player_say { // Создаем предмет и запоминаем его индекс if (event_var(text) == "1") do { es_prop_dynamic_create event_var(userid) "props/cs_office/vending_machine" es_keycreate wS server_var(eventscripts_lastgive) }
// Удаляем if (event_var(text) == "2") do { es_entsetname event_var(userid) xz_prop es_xforeachkey prop_index in wS "es_xdoblock e/prop_delete" }
// Поворачиваем if (event_var(text) == "3") do { es_entsetname event_var(userid) rotate_name es_xforeachkey prop_index in wS "es_xdoblock e/prop_rotate" } }
block prop_delete { es_entitygetvalue n server_var(prop_index) targetname if (server_var(n) == "xz_prop") do { es_msg "Индекс предмета:" server_var(prop_index) "(удаляем)" es_remove server_var(prop_index)
// Удаляем индекс из базы es_keydelete wS server_var(prop_index) } }
block prop_rotate { es_entitygetvalue n server_var(prop_index) targetname if (server_var(n) == "rotate_name") do { es_entitygetvalue v server_var(prop_index) angles es_token x server_var(v) 1 es_token y server_var(v) 2 es_token z server_var(v) 3 es_xmath y + 45 es_xformatv v "%1 %2 %3" x y z es_entitysetvalue server_var(prop_index) angles server_var(v) es_entitysetvalue server_var(prop_index) targetname "" } } Запусти скрипт и проверь в чате три команды: 1, 2 и 3. 1. Создали проп и запомнили его индекс 2. Удаляем предмет. Устанавливаем ему имя "xz_prop" и запускаем цикл по всем индексам, которые мы запомнили. Зная индекс, получаем targetname пропа, если оно равно тому, что мы установили, значит это предмет, на который мы в данный момент смотрим. Удаляем его с карты и из базы, в которой его запоминали. 3. Тот же цикл, только теперь поворачиваем проп с помощью angles (углы). Но этот вариант плохо поворачивает, если предмет стоит на неровной поверхности.
|
| |
| | | | |
|
McFlip0076 |
Дата: Четверг, 29.12.2011, 23:06:09 | Сообщение # 4 |
 |
Offline
Сообщений: 7
Репутация: 0 [ +/- ]
|
|
А есть еще вопрос по props mod-у если не сложно можешь написать событие которое пишет в чат кто ставит пропс и тоже самое если наводишь на предмет! Мод уже готов! Только это нигде не могу найти(((
|
| |
| | |
|
_wS_ |
Дата: Пятница, 30.12.2011, 01:30:34 | Сообщение # 5 |
 |
Offline
Сообщений: 1081
Репутация: 161 [ +/- ]
|
|
Quote (McFlip0076) написать событие которое пишет в чат кто ставит пропс Это вообще просто.. Ты создал меню, игрок, например, выбирает опцию 1 'Автомат': Code block select_yourMenu { if (server_var(_popup_choice) == 1) do { es_prop_dynamic_create server_var(_popup_userid) "props/cs_office/vending_machine" es_xset x 0 es_getplayername x server_var(_popup_userid) es_msg server_var(x) "создал автомат" } } Quote (McFlip0076) и тоже самое если наводишь на предмет! А это уже сделать не получится на ESS (только если подключено какое-то расширение), да и рано браться тебе за такое, если ты пока простого не можешь понять.
|
| |
| | |
|
McFlip0076 |
Дата: Понедельник, 02.01.2012, 03:29:08 | Сообщение # 6 |
 |
Offline
Сообщений: 7
Репутация: 0 [ +/- ]
|
|
Смотри Мод написан хочу его переделать под свой сервер! все готово кроме Quote (_wS_Schmidt_) и тоже самое если наводишь на предмет! Я на одном сервере видел такой пропс мод. И еще у меня какая то ошибка В место имени пишет 0 Добавлено (02.01.2012, 03:17:12) --------------------------------------------- а какое там надо событие прописать что бы ник писали? Quote (_wS_Schmidt_) es_prop_dynamic_create server_var(_popup_userid) "props/cs_office/vending_machine" es_xset x 0 Добавлено (02.01.2012, 03:29:08) --------------------------------------------- Вот моя робота Посмотри плиз что не так
|
| |
| | |
|
McFlip0076 |
Дата: Понедельник, 02.01.2012, 03:35:25 | Сообщение # 7 |
 |
Offline
Сообщений: 7
Репутация: 0 [ +/- ]
|
|
Не могу добавить файл=(
|
| |
| | |
|
_wS_ |
Дата: Понедельник, 02.01.2012, 15:22:15 | Сообщение # 8 |
 |
Offline
Сообщений: 1081
Репутация: 161 [ +/- ]
|
|
Если переменная p_msg_create в eventscripts/props_mod/ props.cfg равна 1, то будет сообщение в чате, вот же в коде: Code if (server_var(p_msg_create) = 1) then es_xgetplayername p_nick server_var(_popup_userid)
// и ниже:
ifx true(p_msg_create) do { es_xformatv p_f "#lightgreen[Строители] #green%1 #lightgreenсоздал маленькую коробку" p_nick es_msg #multi server_var(p_f) }
|
| |
| | |
|
McFlip6358 |
Дата: Вторник, 03.01.2012, 01:23:48 | Сообщение # 9 |
 |
Offline
Сообщений: 8
Репутация: 0 [ +/- ]
|
|
Эта переменная не работает. Работает вот это событие. Quote (_wS_Schmidt_) es_prop_dynamic_create server_var(_popup_userid) "props/cs_office/vending_machine" es_xset x 0 es_getplayername x server_var(_popup_userid) es_msg server_var(x) "создал автомат" Но в чате в место ника пишет 0 А берет оно вот от сюда Quote (McFlip0076) es_xset x 0
|
| |
| | |
|
McFlip6358 |
Дата: Вторник, 03.01.2012, 01:46:43 | Сообщение # 10 |
 |
Offline
Сообщений: 8
Репутация: 0 [ +/- ]
|
|
Вот сделал пару ап дейтов. Но почему то не работает(( Пытался подражать полностью моду. Короче сам посмотри (3 страницу пропов и чат(на что поменять событие Quote (McFlip6358) es_xset x 0 и мож сказать почему не работает 3 страница(я в недоумении))) На название не обращай внимание(это я для себя версии пишу)
|
| |
| | |
|
_wS_ |
Дата: Вторник, 03.01.2012, 07:25:52 | Сообщение # 11 |
 |
Offline
Сообщений: 1081
Репутация: 161 [ +/- ]
|
|
У тебя этот код ЛИШНИЙ: Code es_xset x 0 es_getplayername x server_var(_propup_userid) es_msg server_var(x)"Создал дорожный знак" Снова повторяю: Вот мы получаем имя (уже есть в коде): Code if (server_var(p_msg_create) = 1) then es_xgetplayername p_nick server_var(_popup_userid)
// и ниже:
if (server_var(_popup_choice) = 3) do { ifx true(p_msg_create) do { es_xformatv p_f "#lightgreen[Строители] #green%1 #lightgreenсоздал гидрант" p_nick es_msg #multi server_var(p_f) } } В props.cfg должно быть es_xset p_msg_create 1. Документ сохраняй через notepad++ в utf-8 без bom. Здесь, после server_var(x) не стоит пробел у тебя: Code es_msg server_var(x)"Создал гидрант" 3-я страница не работает, т.к. ты не сделал popup menuselect pmenu6 props_mod/pmenu6. Не мучай чужой код, когда только начинаешь учиться скриптить, пиши с нуля свои скрипты по немногу, чтобы знать о каждой команде, которую используешь, и понимать, как она работает. Создай в eventscripts папку e и в ней es_e.txt и эксперементируй с разным кодом, пробуй разные команды и события по одному, записывай о том, что узнал, в черновик. Вот, например, тест: Code // Проверь, как работает ifx true
event load { es_xset x 1 es_msg server_var(x) ifx true(x) do { es_xmsg -> true } es_xelse es_xmsg -> false }
// Так узнаешь, что 2-ой вариант не работает
event player_say { es_getplayername x event_var(userid) if (event_var(text) == "1") do { es_msg server_var(x) "создал предмет" } if (event_var(text) == "2") do { es_msg server_var(x) создал предмет } if (event_var(text) == "3") do { es_xformatv x "%1 создал предмет" x es_msg server_var(x) } if (event_var(text) == "4") do { es_msg server_var(x) created new prop } } Запускаешь тестовый сервер на компе без параметра -console. Вводишь команду es_load e и смотришь в консоль, что выдаст скрипт. Потом меняешь код в es_e.txt на какой-то другой, сохраняешь и перезапускаешь командой es_reload e. Не понимаю, разве ты не можешь чувствовать, как тебе лучше учиться? Просто всё, о чём я писал, должно быть и так понятно, как вода мокрая и огонь горячий.
|
| |
| | |
|
McFlip0076 |
Дата: Четверг, 26.01.2012, 18:01:31 | Сообщение # 12 |
 |
Offline
Сообщений: 7
Репутация: 0 [ +/- ]
|
|
Здрраствуйте) я тут на днях все таки решился добавить еще одну страницу пропов) но почему то моя попытка не обвинчалася успехом((( есть 2 проблемы 1)со 2 страници ставятся двйные пропы вместе с 3 страницей( и 2) 3 страница не открывается( Если кому не сложно подскажите что я упустил! вот сам мод
|
| |
| | |
|
_wS_ |
Дата: Четверг, 26.01.2012, 18:56:34 | Сообщение # 13 |
 |
Offline
Сообщений: 1081
Репутация: 161 [ +/- ]
|
|
Почему props.cfg не прикрепил? У тебя там скобки не все закрыты. И ты посмотри, где у тебя в 'block pmenu2' находится if (server_var(_popup_choice) = 9) then popup send pmenu6 server_var(_popup_userid) - очень глупо, оно внутри условия if (server_var(_popup_choice) in "12345678") do Code // если выбрана опция от 1 до 8, то.. if (server_var(_popup_choice) in "12345678") do { // это как ответить на вопрос 'сколько время' -> 'мне холодно' (смысла ноль) if (server_var(_popup_choice) == 9) then .. Notepad++ подсвечивает скобки и темболее можно проверить их ТУТ
|
| |
| | |
|
McFlip0076 |
Дата: Четверг, 26.01.2012, 23:10:31 | Сообщение # 14 |
 |
Offline
Сообщений: 7
Репутация: 0 [ +/- ]
|
|
Вот
|
| |
| |
|
|
|