Предметы.
| |
Naykon
|
Дата: Четверг, 15.03.2012, 12:15:40 | Сообщение # 1 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Подскажите код аптечки которая восстанавливает здоровье.... Хочу чтоб при написании команды !m игрок x мог дать аптечку а ей воспользоваться могли только Теры =)
|
|
| |
Scarface_slv
|
Дата: Четверг, 15.03.2012, 14:21:24 | Сообщение # 2 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
Naykon хочешь?) так напиши если хочешь =)
|
|
| |
Naykon
|
Дата: Четверг, 15.03.2012, 17:47:02 | Сообщение # 3 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Code Подскажите код аптечки которая восстанавливает здоровье. Повторяю для Scarface_slv отдельно!
|
|
| |
_wS_
|
Дата: Четверг, 15.03.2012, 18:22:08 | Сообщение # 4 |
|
Naykon, он прав, ты готовое хочешь получить =) Нет такой аптечки, которая здоровье восстанавливает. Есть проп модель, которой устанавливается скин аптечки. Ловится момент, когда игрок к ней прикасается
Code HookSingleEntityOutput(entity, const String:output[], EntityOutput:callback , bool:once=false); HookEntityOutput(const String:classname[], const String:output[], EntityOutput:callback);
OnBreak в основном используют.
Игрок прикоснулся, аптечка удалилась, у тебя есть его индекс и ты делаешь с ним что хочешь.
|
|
| |
Naykon
|
Дата: Пятница, 16.03.2012, 01:14:10 | Сообщение # 5 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
СПС. А кто ж не хочет готовое =) но нет мне бы научиться писать все самому но для этого мне нужны некоторые примеры... - чего у меня вроде уже достаточно =)) сейчас мне хватит думаю этого... будут вопросы обращусь) СПС +))Добавлено (15.03.2012, 20:30:06) --------------------------------------------- GetClientHealth - если не ошибаюсь предмет нужно прицепить к этому??? Эта команда 100 хп возвращяет.. правильно? подскажите где можно взять весь список props ... если такое возможно то с картинками =))) Добавлено (16.03.2012, 01:14:10) --------------------------------------------- Дайт пожалуйста пример когда игрок докасается к предмету (аптечка).... и как относится OnBreak к предполагаемому скрипту? Я ж хочу чтоб игрок докаснувшись до аптечки востановил здоровье а не когда поламает предмет..
Code HookSingleEntityOutput(entity, const String:output[], EntityOutput:callback , bool:once=false) { GetClientHealth(entity); }
Сам я в этом не смогу разобраться дайте пример ПЖЛсто =)!
|
|
| |
_wS_
|
Дата: Пятница, 16.03.2012, 12:21:04 | Сообщение # 6 |
|
|
|
| |
Naykon
|
Дата: Пятница, 16.03.2012, 13:42:49 | Сообщение # 7 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
1. Создал меню 2. Хочу чтоб при выборе menu1 создавался предмет при касании которого восстанавливалось ХП В отдельности меню работает проверял menu1 на PrintToChat..
Сервер вылетает когда я нажимаю menu1 с ошибкой... "85/ - prop_dynamic: UTIL_SetModel: not precached: models/props/cs_office/vending_machine.mdl"
Code ublic Com_Select(Handle:menu, MenuAction:action, ct_client, option) { if (action == MenuAction_Select) { decl String:Info[25]; GetMenuItem(menu, option, Info, sizeof(Info)); if (StrEqual(Info, "menu1")) { CreateTimer(1.0, CreateEnt_Timer, ct_client); } else PrintToChatAll("Какашонок"); Com_Menu(ct_client); } else if (action == MenuAction_End) CloseHandle(menu); }
public Action:CreateEnt_Timer(Handle:timer, any:ct_client) { GetClientAbsOrigin(ct_client, wS_Pos);
// Немного изменяем координату 'x', чтобы предмет был создан рядом с игроком, а не на его месте wS_Pos[0] += 80.0;
new index = CreateEntityByName("prop_dynamic"); if (index > 0) { SetEntityModel(index, "models/props/cs_office/vending_machine.mdl"); DispatchKeyValueVector(index, "origin", wS_Pos);
// Устанавливаем предмету флаг '16 : Break on Touch' DispatchKeyValue(index, "spawnflags", "16");
// Ловим момент, когда игрок дотрагивается до предмета и он ломается HookSingleEntityOutput(index, "OnBreak", EntityOutput:OnBreak_Func, true); } }
public OnBreak_Func(const String:output[], caller, activator, Float:delay) { if (activator > 0 && activator <= MaxClients) { // Предмет удалился, устанавливаем игроку 1 hp SetEntProp(activator, Prop_Send, "m_iHealth", 100); } }
|
|
| |
_wS_
|
Дата: Пятница, 16.03.2012, 14:14:46 | Сообщение # 8 |
|
Quote (Naykon) Сервер вылетает когда я нажимаю menu1 с ошибкой... "85/ - prop_dynamic: UTIL_SetModel: not precached: models/props/cs_office/vending_machine.mdl" Потому что невнимательный, не сделал:
Code public OnMapStart() { PrecacheModel("models/props/cs_office/vending_machine.mdl", true); }
И зачем CreateTimer? В твоем случае он не нужен - опять не понимаешь смысл кода.
|
|
| |
Naykon
|
Дата: Суббота, 17.03.2012, 19:53:11 | Сообщение # 9 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Сервер не падает. предмет появляется но при косанию к нему хп не востанавливается... в чем же дело? ?Добавлено (17.03.2012, 19:53:11) --------------------------------------------- До сих про не получилось решить проблемму. у кажите где ошибка?
|
|
| |
_wS_
|
Дата: Суббота, 17.03.2012, 20:25:01 | Сообщение # 10 |
|
Как? Если ты код не дал (тот что выше не весь, да и не ublic Com_Select, а public Com_Select).
|
|
| |
Naykon
|
Дата: Суббота, 17.03.2012, 20:29:19 | Сообщение # 11 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Code #include <sourcemod> #include <cstrike> #include <sdktools>
new Float:wS_Pos[3];
public OnPluginStart() { HookEvent("player_say", Say); }
public OnMapStart() { PrecacheModel("models/props/cs_office/vending_machine.mdl", true); }
public Say(Handle:event, const String:name[], bool:dontBroadcast) { new i = GetClientOfUserId(GetEventInt(event, "userid")); decl String:text[5]; GetEventString(event, "text", text, sizeof(text)); if (StrEqual(text, "fuck")) Com_Menu(i); }
Com_Menu(i) { new Handle:pMenu = CreateMenu(Com_Select); SetMenuTitle(pMenu, "Командная панель!\n \n"); AddMenuItem(pMenu, "menu1", "Да"); AddMenuItem(pMenu, "menu2", "Нет"); AddMenuItem(pMenu, "menu3", "Нет"); SetMenuExitButton(pMenu, true); DisplayMenu(pMenu, i, 0); }
public Com_Select(Handle:menu, MenuAction:action, i, option) { if (action == MenuAction_Select) { decl String:Info[25]; GetMenuItem(menu, option, Info, sizeof(Info)); if (StrEqual(Info, "menu1")) { CreateTimer(1.0, CreateEnt_Timer, i); } else PrintToChatAll("Какашонок"); Com_Menu(i); } else if (action == MenuAction_End) CloseHandle(menu); }
public Action:CreateEnt_Timer(Handle:timer, any:i) { GetClientAbsOrigin(i, wS_Pos);
// Немного изменяем координату 'x', чтобы предмет был создан рядом с игроком, а не на его месте wS_Pos[0] += 80.0;
new index = CreateEntityByName("prop_dynamic"); if (index > 0) { SetEntityModel(index, "models/props/cs_office/vending_machine.mdl"); DispatchKeyValueVector(index, "origin", wS_Pos); // Если бы это не сделали, то через предмет можно было проходить (solid 0) и OnTakeDamage не работало бы DispatchKeyValue(index, "solid", "6");
// Устанавливаем предмету флаг '16 : Break on Touch' DispatchKeyValue(index, "spawnflags", "16");
// Ловим момент, когда игрок дотрагивается до предмета и он ломается HookSingleEntityOutput(index, "OnBreak", EntityOutput:OnBreak_Func, true); } }
public OnBreak_Func(const String:output[], caller, activator, Float:delay) { if (activator > 0 && activator <= MaxClients) { // Предмет удалился, устанавливаем игроку 1 hp SetEntProp(activator, Prop_Send, "m_iHealth", 100); } }
|
|
| |
_wS_
|
Дата: Суббота, 17.03.2012, 20:49:55 | Сообщение # 12 |
|
Перед твоими глазами готовый четкий пример, но ты все равно делаешь ошибки. Где DispatchSpawn(index); ?
И я говорил, что в твоем случае нет необходимости использовать CreateTimer. Вот в моем примере, в той ситуации, он был нужен.
|
|
| |
Naykon
|
Дата: Воскресенье, 18.03.2012, 12:13:43 | Сообщение # 13 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Почему когда я пробыую то же самое в эти models/items/healthkit.mdl тредмет не появляется?7
|
|
| |
_wS_
|
Дата: Воскресенье, 18.03.2012, 12:18:54 | Сообщение # 14 |
|
Пробуй prop_physics, prop_physics_override
|
|
| |
Naykon
|
Дата: Четверг, 29.03.2012, 17:48:26 | Сообщение # 15 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
спс по 2 урокам сделел скрипт востановления здоровья если ты x игрок =) аптечка вызывается через меню и появляется там де прицел =)Добавлено (29.03.2012, 17:48:26) ---------------------------------------------
Code { decl Float:wS_Pos[3]; wS_GetLookPos(ct_client, wS_Pos);
new index = CreateEntityByName("prop_physics"); if (index > 0) { SetEntityModel(index, "models/items/healthkit.mdl"); DispatchKeyValueVector(index, "origin", wS_Pos); // Если бы это не сделали, то через предмет можно было проходить (solid 0) и OnTakeDamage не работало бы DispatchKeyValue(index, "solid", "6");
// Устанавливаем предмету флаг '16 : Break on Touch' DispatchKeyValue(index, "spawnflags", "16"); DispatchSpawn(index); // Ловим момент, когда игрок дотрагивается до предмета и он ломается HookSingleEntityOutput(index, "OnBreak", EntityOutput:OnBreak_Func, true); } }
Как установить таймер на предмет чтоб предмет пропал через 5 секунд после появления?????
|
|
| |
|