Спасибо огромное, ребята, за желание помочь!
Сообщение отредактировал 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
Новости, обсуждения, предложения →
Общие вопросы →
Это капец....Автор 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 анонимных