Spawn оружия и патронов на карте
| |
gamer-killer
|
Дата: Суббота, 12.01.2013, 14:40:40 | Сообщение # 1 |
|
Сообщений: 12
Репутация: 0 [ +/- ]
|
|
Ребята, не подскажите, может уже есть такой плагин, н оя вроде хорошо искал, в общем на 1.6 и вроде в халве дезматч, есть такое, что в опредленном месте через какое-то время появляются патроны, аптечки, оружия, в общем я хочу чтобы на карте в ксс также происходило, наскольк оя помню в моде дезматч нет такого, там прост опокупаешь оружие через магазин, в общем не знаю как это сделать, но есть идея, в ручную создавать зоны(как в плагине Dead Zone или как то так) в которых будуд появляются каждый раунд, рандомно оружие и патроны, для спаума патронов можно изучить плагин "Ammo from Dead" смысл его в том что после смерти игрока из него выпадают коробки с патронами, от пистолета дробовика и автомата, правда там баг есть, если получиться исправлю, ну вот как-то так... Я думаю что это сделать возможно, может советы какие-нибудь будут?
|
|
| |
Sunday
|
Дата: Воскресенье, 13.01.2013, 02:30:53 | Сообщение # 2 |
|
Сообщений: 186
Репутация: 24 [ +/- ]
|
|
Привет, у меня вот так получилось, попробуй. По крайней мере в игре Half-Life 2 работает, по поводу Контры я не знаю но по идеи в этих переменных они ни чем не отличаются.
#include <sourcemod> #include <sdktools>
new enty; new Float:c_origin[3];
public OnMapStart() { decl String:mapname[64]; GetCurrentMap(mapname, sizeof(mapname));
if (StrEqual(mapname,"dm_dust")) { c_origin[0] =11834.718750; c_origin[1] =1577.000000; c_origin[2] =-391.377441; enty = CreateEntityByName("weapon_357"); DispatchKeyValueVector(enty, "origin", c_origin) DispatchSpawn(enty); } }
Если захочешь добавить еще карту, просто ниже добавляй else if, пример: if (StrEqual(mapname,"dm_dust")) { c_origin[0] =11834.718750; c_origin[1] =1577.000000; c_origin[2] =-391.377441; enty = CreateEntityByName("weapon_357"); DispatchKeyValueVector(enty, "origin", c_origin) DispatchSpawn(enty); } else if (StrEqual(mapname,"dm_runoff")) { c_origin[0] =21834.354750; c_origin[1] =1437.000000; c_origin[2] =-251.377441; enty = CreateEntityByName("weapon_shotgun"); DispatchKeyValueVector(enty, "origin", c_origin) DispatchSpawn(enty); } }
Координаты можно узнать, написав в консоль в игре getpos. На счет того что бы это появлялось через определенное время я не могу попробовать, в Халфлайф эта функция по дефолту но тут на форуме есть тема у _Ws_ о таймерах, просто тебе нужно будет добавить скорее всего циклический таймер который будет перезапускать скрипт через определенное время. Ниже, приложил скрипт.
Гости не могут скачивать файлы
|
Сообщение отредактировал Sunday - Воскресенье, 13.01.2013, 02:43:16 |
|
| |
gamer-killer
|
Дата: Воскресенье, 13.01.2013, 07:51:15 | Сообщение # 3 |
|
Сообщений: 12
Репутация: 0 [ +/- ]
|
|
А ну да в принципе, можно использоват ьи координаты)) Я че то усложнил все)) Спасибо, по коду вроде да должно работать, спасибо... Ну я событие добавлю, чтобы каждый раунд спаумилось и все) Сложнее наврено будет с патронами,т.е. чтоб они валялись отдельно, сделать, пока времени нет разбираться, но если будут какие примеры( один уже есть про который я написал), или советы, поделитесь... И кстати патроны в оружии самом, т.е. в магазине, или в запасе, при его спауме можно указать?
|
|
| |
Sunday
|
Дата: Воскресенье, 13.01.2013, 14:37:19 | Сообщение # 4 |
|
Сообщений: 186
Репутация: 24 [ +/- ]
|
|
В Оружие патроны думаю что не возможно запихнуть а вот сделать например хук евент, к примеру когда игрок поднял определенное оружие то ему давались к нему боеприпасы. 1. Отлов ид игрока 2. Отловить событие, наименование оружия 3. дать игроку боеприпасы, что то на подобии: GivePlayerItem(client, "Наименование оружия");
Возможно что то в таком духе сработает.
Сообщение отредактировал Sunday - Воскресенье, 13.01.2013, 14:40:01 |
|
| |
Scarface_slv
|
Дата: Воскресенье, 13.01.2013, 15:18:08 | Сообщение # 5 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
Можно добавить предмет, модельку виде патронов, и можно отловить момент когда игрок дотронулся до предмета HookSingleEntityOutput(...); ну и удалить предмет и дать игроку патроны, вроде так)
|
|
| |
gamer-killer
|
Дата: Воскресенье, 07.04.2013, 17:59:13 | Сообщение # 6 |
|
Сообщений: 12
Репутация: 0 [ +/- ]
|
|
Все сделал все пашет, для создания использовал плагин Ammo from Death, Разные плагины выполняющие операции над оружием, и плагин ws LightSpawn взял алгоритм поиска создания, удаления, сохранения точек спауна и алгоритм спауна по соохраненым координатам)) Все работает ништяк, кроме ожного бага, при спауне usp tmp mac10 патроны в запасе не устанавливаютсяв 0 как рпописано в коде, все остальное оружие норм, при всем притом что два рядом лежащих usp в одном будет полный запас а в другом норм в нуле...крутился и так и сяк решил вообще убрать их)) Всем спасибо!
Сообщение отредактировал gamer-killer - Воскресенье, 07.04.2013, 18:01:10 |
|
| |
|