Спасибо огромное, ребята, за желание помочь!
Сообщение отредактировал Professor77: 12 Апрель 2024 - 2:52
Отправлено 11 Апрель 2024 - 13:44
Спасибо огромное, ребята, за желание помочь!
Сообщение отредактировал Professor77: 12 Апрель 2024 - 2:52
Отправлено 14 Апрель 2024 - 19:24
Добрый вечер!Скажите пожалуйста а эти коды их надо обоих скомпилитовать?кто знает о такой чит команде как give_tank, кто баловался?
будучи выжившим, прописав данную команду, получаешь возможность бросать камни как танк, вот я и задумался как будет выглядеть использование всех остальных Ability имеющихся в игре.
Вот код, который позволяет использовать все 4 Ability:
CBaseEntity *Create(const char *szName, Vector *vecOrigin, QAngle *vecAngel, CBaseEntity *pOwner) { CBaseEntity* pEnt = (CBaseEntity *)servertools->CreateEntityByName(szName); if(!pEnt) { Msg("Create: only works for CBaseEntity\n"); return nullptr; } PropData_set_vecOrigin(pEnt, vecOrigin); //Prop_Data m_vecOrigin PropData_set_angRotation(pEnt, vecAngel); //Prop_Data m_angRotation Prop_set_hOwnerEntity(pEnt, pOwner); //Prop_Data m_hOwnerEntity servertools->DispatchSpawn(pEnt); return pEnt; } bool AddAbility(CBaseEntity *pThis, const char *szNameAbility, const char *szWeapon) { (*(void (__cdecl **)(CBaseEntity*, int))(*(DWORD *)pThis + 1384))(pThis, 1); (*(void (__cdecl **)(CBaseEntity*, const char *, DWORD, int))(*(DWORD *)pThis + 1620))(pThis, szWeapon, 0, 1); CBaseEntity *pEntity = Prop_get_customAbility((CBaseEntity*)pThis); //Prop_Send m_customAbility if(pEntity) { g_HL2->UTILRemove(pEntity); //_Z11UTIL_RemoveP11CBaseEntity } QAngle *pAngel = g_HL2->GetAbsAngles((CBaseEntity *)pThis); //_ZNK11CBaseEntity12GetAbsAnglesEv char pOrigin[12]; (*(void (__stdcall **)(char *))(*(DWORD *)pThis + 508))(pOrigin); char **pAbility = reinterpret_cast<char **>(Create(szNameAbility, (Vector *)pOrigin, pAngel, (CBaseEntity *)pThis)); if(pAbility) { *((DWORD *)pThis + 1934) = *(DWORD *)(*((int (__cdecl **)(char **))*pAbility + 3))((char **)pAbility); } else { *((DWORD *)pThis + 1934) = -1; } CBaseEntity *pEnt = Prop_get_customAbility((CBaseEntity*)pThis); //Prop_Send m_customAbility if(pEnt) { (*(void (__cdecl **)(int, CBaseEntity*))(*(DWORD *)pEnt + 764))((int)pEnt, pThis); } return true; } bool GiveDefaultAbility(CTerrorPlayer *pThis) { (*(void (__cdecl **)(CBaseEntity*, int))(*(DWORD *)pThis + 1384))(pThis, 1); (*(void (__cdecl **)(CBaseEntity*, const char *, DWORD, int))(*(DWORD *)pThis + 1620))(pThis, "weapon_pistol", 0, 1); CBaseEntity *pEntity = Prop_get_customAbility((CBaseEntity*)pThis); //Prop_Send m_customAbility if(pEntity) { g_HL2->UTILRemove(pEntity); //_Z11UTIL_RemoveP11CBaseEntity } return true; }А так сделав native можно добавить в плагин:
public Action:CmdGiveTank(client, args) { if(client > 0) { if(IsClientConnected(client) && IsClientInGame(client)) { if(IsClientAlive(client)) { char ar[32]; GetCmdArg(1, ar, sizeof(ar)); if(StrEqual(ar, "tank")) { GiveAbility(client, "ability_throw", "weapon_tank_claw"); } else if(StrEqual(ar, "boomer")) { GiveAbility(client, "ability_vomit", "weapon_boomer_claw"); } else if(StrEqual(ar, "smoker")) { GiveAbility(client, "ability_tongue", "weapon_smoker_claw"); } else if(StrEqual(ar, "hunter")) { GiveAbility(client, "ability_lunge", "weapon_hunter_claw"); } } } } return Plugin_Handled; }Сама без понтова это бумера тупо рвешь и все, курильщика можно к себе подтянуть любого выжившего, охотника можно также прыгать а танка бросать камни, но если у перса есть какие-то предметы там таблетки или оружие она пропадает если он берет какую-нибудь абилку, перед этим нужно все сбросить.
Отправлено 15 Апрель 2024 - 8:55
Добрый вечер!Скажите пожалуйста а эти коды их надо обоих скомпилитовать?
Отправлено 15 Апрель 2024 - 14:47
Значит нужно скомплектовать только 1 код?Первый кусок кода можно использовать как библиотеку или поместить едино.
Второй кусок кода уже команда.
Отправлено 15 Апрель 2024 - 17:04
Добрый вечер!Скажите пожалуйста а эти коды их надо обоих скомпилитовать?
Отправлено 16 Апрель 2024 - 11:18
Библиотека
Создается в формате .h
Отправлено 18 Апрель 2024 - 13:13
Библиотека
Скрытый текст
Создается в формате .h
если в header файл то не забудь про inline
inline bool GiveDefaultAbility(CTerrorPlayer pthis)
а лучше разделить на два файла
ability.cpp
#include "ability.h" CBaseEntity create(const char[] szname, Vector vecorigin, QAngle vecangel, CBaseEntity powner) { CBaseEntity pent = (CBaseEntity)CreateEntityByName(szname); pent.pev.origin = vecorigin; pent.pev.angles = vecangel; pent.pev.owner = powner.edict(); DispatchSpawn(pent.edict()); return pent; } bool AddAbility(CBaseEntity pthis, const char[] sznameability, const char[] szweapon) { pthis.SetTouchFunction(TouchFunction.CUSTOM); pthis.SetThinkFunction(ThinkFunction.CUSTOM, szweapon, ThinkFuncType.NONE, 1); CBaseEntity pentity = pthis.m_customability; if (pentity.IsValid()) { UTIL_Remove(pentity); } QAngle pangel = pthis.GetAbsAngles(); char porigin[12]; pthis.GetVectorOrigin(porigin); CBaseEntity pability = create(sznameability, porigin, pangel, pthis); if (pability.IsValid()) { pthis.pev.punchangle = pability.m_punchangle; } else { pthis.pev.punchangle = -1; } CBaseEntity pent = pthis.m_customability; if (pent.IsValid()) { pent.Use(pthis, pthis, USE_ON, 0); } return true; } bool GiveDefaultAbility(CTerrorPlayer pthis) { pthis.SetTouchFunction(TouchFunction.CUSTOM); pthis.SetThinkFunction(ThinkFunction.CUSTOM, "weapon_pistol", ThinkFuncType.NONE, 1); CBaseEntity pentity = pthis.m_customability; if (pentity.IsValid()) { UTIL_Remove(pentity); } return true; }
ability.h
CBaseEntity create(const char[] szname, Vector vecorigin, QAngle vecangel, CBaseEntity powner); bool AddAbility(CBaseEntity pthis, const char[] sznameability, const char[] szweapon); bool GiveDefaultAbility(CTerrorPlayer pthis);
Отправлено 18 Апрель 2024 - 15:35
я обновил код, там видны какие функции нужно вызывать
Сообщение отредактировал DenMarko: 18 Апрель 2024 - 15:36
Отправлено 27 Апрель 2024 - 19:12
Доброго вечерка всем!Не подскажите как сделать больше выживших например 8 выживших?Есть ли плагин ?
первый код на с++ (для добавления в .so .dll)второй код уже для самого плагина
очень извеняюсь то что опять туплю второй код нужно скомпилитовать?
Отправлено 27 Апрель 2024 - 19:31
Доброго вечерка всем!Не подскажите как сделать больше выживших например 8 выживших?Есть ли плагин ?
очень извеняюсь то что опять туплю второй код нужно скомпилитовать?
второй код добавляеш в плагин и компилиш
Отправлено 27 Апрель 2024 - 20:04
Доброго вечерка всем!Не подскажите как сделать больше выживших например 8 выживших?Есть ли плагин ?
L4DToolz
Кто шарит в C++ тот разберется, писал код не я мой знакомый с фриланса.
Не чего он конкретного больше не объяснил как объявлять функции дальше.
Просил я его написать систему оптики, написать то написал но не объяснил как объявлять функции.
Я не сильно силен в C++ но может кому-то пригодится этот код, кто-то да соберет плагин.
Отправлено 28 Апрель 2024 - 12:54
L4DToolz
Кто шарит в C++ тот разберется, писал код не я мой знакомый с фриланса.
Не чего он конкретного больше не объяснил как объявлять функции дальше.
Просил я его написать систему оптики, написать то написал но не объяснил как объявлять функции.
Я не сильно силен в C++ но может кому-то пригодится этот код, кто-то да соберет плагин.
Скрытый текст
cпс
Отправлено 03 Май 2024 - 23:54
Вот парни плагин на замену selfhelp
Суть такова, при помощи очков вы сможете освободиться от захвата языка курильщика и так же охотника.
Чтобы их заработать, просто как можно часто спасайте членов команды начисляется 100 очков за спасение.
Так же как можно чаще убивайте ведьм и так же как можно чаще старайтесь их убивать прицельно прямо в голову.
За это тоже начисляются очки, за которые вы можете освободиться.
Сообщение отредактировал Alexander_Mirny: 03 Май 2024 - 23:55
Отправлено 04 Май 2024 - 10:22
Вот парни плагин на замену selfhelp
Суть такова, при помощи очков вы сможете освободиться от захвата языка курильщика и так же охотника.
Чтобы их заработать, просто как можно часто спасайте членов команды начисляется 100 очков за спасение.
Так же как можно чаще убивайте ведьм и так же как можно чаще старайтесь их убивать прицельно прямо в голову.
За это тоже начисляются очки, за которые вы можете освободиться.
1. Перевёл на новый синтаксис;
2. оставил 1 функцию для оповещения вместо 2;
3. сделал нанесение урона боссу вместо его суицида, т.е. самоспасение даст игроку +1 фраг.
helpsurvivor.sp 5,43К 5 Количество загрузок:
Новости, обсуждения, предложения →
Общие вопросы →
Это капец....Автор 53SATURN35 , 19 янв 2024 Rust, Помогите, Помощь, Раст |
|
|
||
Игровые сервера →
Counter-Strike 1.6 →
Проблема CSDM cs 1.6 с респауномАвтор armick , 11 дек 2023 Cs16, Проблема, Помогите, Csdm |
|
|
||
Игровые сервера →
Left 4 Dead →
Сохранение модели и оружия (cookies)Автор wwdbear , 20 авг 2023 модели, оружие, плагин |
|
|
||
Игровые сервера →
Counter-Strike: Global Offensive →
Как поменять режим на соревновательный с обычного?Автор UKVATOP , 01 апр 2023 Помогите, режим, соревновательный и 5 еще... |
|
|
||
Игровые сервера →
Counter-Strike: Global Offensive →
Настройка databases.cfgАвтор POISONone , 13 янв 2023 databases, настройка сервера и 8 еще... |
|
|
0 пользователей, 0 гостей, 0 анонимных