* * * Форумы на Наша-Life THREAD * * * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- THREAD : Проблемы с добавлением оружия. Started at 12-07-2016 20:19 by Mr.Simon15281 Visit at https://forum.nashalife.ru/showthread.php?threadid=58177 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 1] Author : Mr.Simon15281 Date : 12-07-2016 20:19 Title : Проблемы с добавлением оружия. Всем привет. Когда я скомпелировал cliend.dll и server.dll, я их кидаю в папку bin в моём моде(всё как делать оружия я знаю), однако когда я прописываю give weapon_<имямоегооружия>, то пишет что, оружие не найдено (NULL Ent in GiveNamedItem!), помогите мне с этим. Простите, что я так неразборчиво написал. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 2] Author : Barnacle Date : 13-07-2016 09:11 Так а все имена правильно указаны? В частности LINK_ENTITY_TO_CLASS, где связывается класс со скриптом. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 3] Author : Mr.Simon15281 Date : 13-07-2016 12:18 [QUOTE][i]Оригинальное сообщение от Barnacle [/i] [B]Так а все имена правильно указаны? В частности LINK_ENTITY_TO_CLASS, где связывается класс со скриптом. [/B][/QUOTE] Можно скрин, как пример? Я просто скопировал код у обычного оружия, и изменил. [size=1][i]Mr.Simon15281 добавил [date]1468412596[/date]:[/i][/size] LINK_ENTITY_TO_CLASS(weapon_p2000, CWeaponP2000); PRECACHE_WEAPON_REGISTER(weapon_p2000); Вот, скорее всего это. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 4] Author : Barnacle Date : 13-07-2016 13:01 [QUOTE][i]Оригинальное сообщение от Mr.Simon15281 [/i] [B]Я просто скопировал код у обычного оружия, и изменил.[/B][/QUOTE]Собственно, можно и упустить где-то старое название. Насколько я знаю, в большинстве случаев ошибка именно из-за этого. Желательно переименовывать через "Find and Replace", чтобы наверняка. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 5] Author : Mr.Simon15281 Date : 13-07-2016 13:24 Большинство значений, это анимация, и показатель звука, точности и т.д. (мой пистолет использует обычную анимацию пистолета). [size=1][i]Mr.Simon15281 добавил [date]1468416359[/date]:[/i][/size] (Если что, вот мой код пистолета) //========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #include "cbase.h" #include "npcevent.h" #include "basehlcombatweapon.h" #include "basecombatcharacter.h" #include "ai_basenpc.h" #include "player.h" #include "gamerules.h" #include "in_buttons.h" #include "soundent.h" #include "game.h" #include "vstdlib/random.h" #include "gamestats.h" // memdbgon must be the last include file in a .cpp file!!! #include "tier0/memdbgon.h" #define PISTOL_FASTEST_REFIRE_TIME 0.1f #define PISTOL_FASTEST_DRY_REFIRE_TIME 0.2f #define PISTOL_ACCURACY_SHOT_PENALTY_TIME 0.2f // Applied amount of time each shot adds to the time we must recover from #define PISTOL_ACCURACY_MAXIMUM_PENALTY_TIME 1.5f // Maximum penalty to deal out ConVar p2000_use_new_accuracy("p2000_use_new_accuracy", "2"); //----------------------------------------------------------------------------- // CWeaponP2000 //----------------------------------------------------------------------------- class CWeaponP2000 : public CBaseHLCombatWeapon { DECLARE_DATADESC(); public: DECLARE_CLASS(CWeaponP2000, CBaseHLCombatWeapon); CWeaponP2000(void); DECLARE_SERVERCLASS(); void Precache(void); void ItemPostFrame(void); void ItemPreFrame(void); void ItemBusyFrame(void); void PrimaryAttack(void); void AddViewKick(void); void DryFire(void); void Operator_HandleAnimEvent(animevent_t *pEvent, CBaseCombatCharacter *pOperator); void UpdatePenaltyTime(void); int CapabilitiesGet(void) { return bits_CAP_WEAPON_RANGE_ATTACK1; } Activity GetPrimaryAttackActivity(void); virtual bool Reload(void); virtual const Vector& GetBulletSpread(void) { // Handle NPCs first static Vector npcCone = VECTOR_CONE_5DEGREES; if (GetOwner() && GetOwner()->IsNPC()) return npcCone; static Vector cone; if (p2000_use_new_accuracy.GetBool()) { float ramp = RemapValClamped(m_flAccuracyPenalty, 0.0f, PISTOL_ACCURACY_MAXIMUM_PENALTY_TIME, 0.0f, 1.0f); // We lerp from very accurate to inaccurate over time VectorLerp(VECTOR_CONE_1DEGREES, VECTOR_CONE_6DEGREES, ramp, cone); } else { // Old value cone = VECTOR_CONE_4DEGREES; } return cone; } virtual int GetMinBurst() { return 1; } virtual int GetMaxBurst() { return 3; } virtual float GetFireRate(void) { return 1.0f; } DECLARE_ACTTABLE(); private: float m_flSoonestPrimaryAttack; float m_flLastAttackTime; float m_flAccuracyPenalty; int m_nNumShotsFired; }; IMPLEMENT_SERVERCLASS_ST(CWeaponP2000, DT_WeaponP2000) END_SEND_TABLE() LINK_ENTITY_TO_CLASS(weapon_p2000, CWeaponP2000); PRECACHE_WEAPON_REGISTER(weapon_p2000); BEGIN_DATADESC(CWeaponP2000) DEFINE_FIELD(m_flSoonestPrimaryAttack, FIELD_TIME), DEFINE_FIELD(m_flLastAttackTime, FIELD_TIME), DEFINE_FIELD(m_flAccuracyPenalty, FIELD_FLOAT), //NOTENOTE: This is NOT tracking game time DEFINE_FIELD(m_nNumShotsFired, FIELD_INTEGER), END_DATADESC() acttable_t CWeaponP2000::m_acttable[] = { { ACT_IDLE, ACT_IDLE_PISTOL, true }, { ACT_IDLE_ANGRY, ACT_IDLE_ANGRY_PISTOL, true }, { ACT_RANGE_ATTACK1, ACT_RANGE_ATTACK_PISTOL, true }, { ACT_RELOAD, ACT_RELOAD_PISTOL, true }, { ACT_WALK_AIM, ACT_WALK_AIM_PISTOL, true }, { ACT_RUN_AIM, ACT_RUN_AIM_PISTOL, true }, { ACT_GESTURE_RANGE_ATTACK1, ACT_GESTURE_RANGE_ATTACK_PISTOL, true }, { ACT_RELOAD_LOW, ACT_RELOAD_PISTOL_LOW, false }, { ACT_RANGE_ATTACK1_LOW, ACT_RANGE_ATTACK_PISTOL_LOW, false }, { ACT_COVER_LOW, ACT_COVER_PISTOL_LOW, false }, { ACT_RANGE_AIM_LOW, ACT_RANGE_AIM_PISTOL_LOW, false }, { ACT_GESTURE_RELOAD, ACT_GESTURE_RELOAD_PISTOL, false }, { ACT_WALK, ACT_WALK_PISTOL, false }, { ACT_RUN, ACT_RUN_PISTOL, false }, }; IMPLEMENT_ACTTABLE(CWeaponP2000); //----------------------------------------------------------------------------- // Purpose: Constructor //----------------------------------------------------------------------------- CWeaponP2000::CWeaponP2000(void) { m_flSoonestPrimaryAttack = gpGlobals->curtime; m_flAccuracyPenalty = 0.0f; m_fMinRange1 = 24; m_fMaxRange1 = 1500; m_fMinRange2 = 24; m_fMaxRange2 = 200; m_bFiresUnderwater = true; } //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CWeaponP2000::Precache(void) { BaseClass::Precache(); } //----------------------------------------------------------------------------- // Purpose: // Input : // Output : //----------------------------------------------------------------------------- void CWeaponP2000::Operator_HandleAnimEvent(animevent_t *pEvent, CBaseCombatCharacter *pOperator) { switch (pEvent->event) { case EVENT_WEAPON_PISTOL_FIRE: { Vector vecShootOrigin, vecShootDir; vecShootOrigin = pOperator->Weapon_ShootPosition(); CAI_BaseNPC *npc = pOperator->MyNPCPointer(); ASSERT(npc != NULL); vecShootDir = npc->GetActualShootTrajectory(vecShootOrigin); CSoundEnt::InsertSound(SOUND_COMBAT | SOUND_CONTEXT_GUNFIRE, pOperator->GetAbsOrigin(), SOUNDENT_VOLUME_PISTOL, 0.2, pOperator, SOUNDENT_CHANNEL_WEAPON, pOperator->GetEnemy()); WeaponSound(SINGLE_NPC); pOperator->FireBullets(1, vecShootOrigin, vecShootDir, VECTOR_CONE_PRECALCULATED, MAX_TRACE_LENGTH, m_iPrimaryAmmoType, 2); pOperator->DoMuzzleFlash(); m_iClip1 = m_iClip1 - 1; } break; default: BaseClass::Operator_HandleAnimEvent(pEvent, pOperator); break; } } //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CWeaponP2000::DryFire(void) { WeaponSound(EMPTY); SendWeaponAnim(ACT_VM_DRYFIRE); m_flSoonestPrimaryAttack = gpGlobals->curtime + PISTOL_FASTEST_DRY_REFIRE_TIME; m_flNextPrimaryAttack = gpGlobals->curtime + SequenceDuration(); } //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CWeaponP2000::PrimaryAttack(void) { if ((gpGlobals->curtime - m_flLastAttackTime) > 0.5f) { m_nNumShotsFired = 0; } else { m_nNumShotsFired++; } m_flLastAttackTime = gpGlobals->curtime; m_flSoonestPrimaryAttack = gpGlobals->curtime + PISTOL_FASTEST_REFIRE_TIME; CSoundEnt::InsertSound(SOUND_COMBAT, GetAbsOrigin(), SOUNDENT_VOLUME_PISTOL, 0.2, GetOwner()); CBasePlayer *pOwner = ToBasePlayer(GetOwner()); if (pOwner) { // Each time the player fires the pistol, reset the view punch. This prevents // the aim from 'drifting off' when the player fires very quickly. This may // not be the ideal way to achieve this, but it's cheap and it works, which is // great for a feature we're evaluating. (sjb) pOwner->ViewPunchReset(); } BaseClass::PrimaryAttack(); // Add an accuracy penalty which can move past our maximum penalty time if we're really spastic m_flAccuracyPenalty += PISTOL_ACCURACY_SHOT_PENALTY_TIME; m_iPrimaryAttacks++; gamestats->Event_WeaponFired(pOwner, true, GetClassname()); } //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CWeaponP2000::UpdatePenaltyTime(void) { CBasePlayer *pOwner = ToBasePlayer(GetOwner()); if (pOwner == NULL) return; // Check our penalty time decay if (((pOwner->m_nButtons & IN_ATTACK) == false) && (m_flSoonestPrimaryAttack < gpGlobals->curtime)) { m_flAccuracyPenalty -= gpGlobals->frametime; m_flAccuracyPenalty = clamp(m_flAccuracyPenalty, 0.0f, PISTOL_ACCURACY_MAXIMUM_PENALTY_TIME); } } //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CWeaponP2000::ItemPreFrame(void) { UpdatePenaltyTime(); BaseClass::ItemPreFrame(); } //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CWeaponP2000::ItemBusyFrame(void) { UpdatePenaltyTime(); BaseClass::ItemBusyFrame(); } //----------------------------------------------------------------------------- // Purpose: Allows firing as fast as button is pressed //----------------------------------------------------------------------------- void CWeaponP2000::ItemPostFrame(void) { BaseClass::ItemPostFrame(); if (m_bInReload) return; CBasePlayer *pOwner = ToBasePlayer(GetOwner()); if (pOwner == NULL) return; //Allow a refire as fast as the player can click if (((pOwner->m_nButtons & IN_ATTACK) == false) && (m_flSoonestPrimaryAttack < gpGlobals->curtime)) { m_flNextPrimaryAttack = gpGlobals->curtime - 0.1f; } else if ((pOwner->m_nButtons & IN_ATTACK) && (m_flNextPrimaryAttack < gpGlobals->curtime) && (m_iClip1 <= 0)) { DryFire(); } } //----------------------------------------------------------------------------- // Purpose: // Output : int //----------------------------------------------------------------------------- Activity CWeaponP2000::GetPrimaryAttackActivity(void) { if (m_nNumShotsFired < 1) return ACT_VM_PRIMARYATTACK; if (m_nNumShotsFired < 2) return ACT_VM_RECOIL1; if (m_nNumShotsFired < 3) return ACT_VM_RECOIL2; return ACT_VM_RECOIL3; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- bool CWeaponP2000::Reload(void) { bool fRet = DefaultReload(GetMaxClip1(), GetMaxClip2(), ACT_VM_RELOAD); if (fRet) { WeaponSound(RELOAD); m_flAccuracyPenalty = 0.0f; } return fRet; } //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CWeaponP2000::AddViewKick(void) { CBasePlayer *pPlayer = ToBasePlayer(GetOwner()); if (pPlayer == NULL) return; QAngle viewPunch; viewPunch.x = random->RandomFloat(0.25f, 0.5f); viewPunch.y = random->RandomFloat(-.6f, .6f); viewPunch.z = 0.0f; //Add it to the view punch pPlayer->ViewPunch(viewPunch); } -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 6] Author : Barnacle Date : 13-07-2016 13:51 Лично у меня сейчас нет никакой возможности проверять работоспособность кода, но попробуй запустить в [url=https://developer.valvesoftware.com/wiki/Installing_and_Debugging_the_Source_Code:ru#.D0.9E.D1.82.D0.BB.D0.B0.D0.B4.D0.BA.D0.B0]режиме дебага[/url]. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 7] Author : Mr.Simon15281 Date : 13-07-2016 14:03 Я не использую программу Source sdk(я использвую 2013 версии), но это не программа. [size=1][i]Mr.Simon15281 добавил [date]1468418877[/date]:[/i][/size] Т.е, я всё делаю вручную -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 8] Author : Barnacle Date : 13-07-2016 14:51 Без разницы. Принцип один и тот же. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 9] Author : Mr.Simon15281 Date : 13-07-2016 15:13 Что-то не помогло, оружия так и нет -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 10] Author : Barnacle Date : 13-07-2016 15:20 Эмм, не помогло в чём? Режим отладки помогает искать ошибки в коде, а не запускать всё подряд. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 11] Author : Mr.Simon15281 Date : 13-07-2016 15:55 Что-то не работает режим отладки -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 12] Author : Mr.Simon15281 Date : 14-07-2016 12:10 И мне так и не помогут? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 13] Author : Alf-Life II Date : 14-07-2016 18:01 В c_weapon__stubs_hl2.cpp добавил своё оружие? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 14] Author : Mr.Simon15281 Date : 15-07-2016 13:46 Да, [url]http://imgur.com/XuSI6GV[/url] [size=1][i]Mr.Simon15281 добавил [date]1468593702[/date]:[/i][/size] Хотя, впринципе ошибка может быть из-за того, что я не установил, куда будет автоматически копироваться cliend и server.dll( я их сам беру и копирую из папки release). [size=1][i]Mr.Simon15281 добавил [date]1468597042[/date]:[/i][/size] И все снова молчат... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 15] Author : DmitRex Date : 15-07-2016 18:12 Ну как вариант банально не добавил свои исходные файлы в проект, они не компилируются вот и нету пушки. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 16] Author : Mr.Simon15281 Date : 15-07-2016 18:45 Всмысле? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 17] Author : Alf-Life II Date : 15-07-2016 18:48 Всё молчат потому что форум едва живой. Я добавил твой код в проект, скомпилировал, скопировал библиотеки из source-sdk-2013-master\sp\src\game\server[spoiler]client[/spoiler]\Release_mod_hl2 в папку bin мода и добавил чуть изменённый скрипт пистолета, результат: [url]http://puu.sh/q2NOA/9203597cd3.jpg[/url] -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 18] Author : Mr.Simon15281 Date : 15-07-2016 18:49 Тоесть, только поддерживает для обычного hl2? у меня там episodic(неправильно написал). -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 19] Author : Alf-Life II Date : 15-07-2016 19:11 Без разницы, эпизодский код тоже работает. Распиши пошагово что ты делал. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 20] Author : Mr.Simon15281 Date : 15-07-2016 19:16 В server.dll(episodic) добавил weapon.p2000.cpp(и скопировал, изменив названия оружия код пистолета), потом перешел в client.dll, и зашел в c_weapon.hl2.cpp(по другому называется), и вписал код своего пистолета, потом сменил у клиента и сервера режим на release, потом скомпелировав, и скопировал клиент и сервер в папку bin в своём моде, а потом вписал свой скрипт пистолета в папке scipts(weapon_p2000.txt). Надеюсь, ты поймешь, что я написал. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 21] Author : Alf-Life II Date : 15-07-2016 19:26 Вот я в сервер (иписотик) добавляю файл с кодом [url]http://puu.sh/q2Pya/c68f56c8c9.png[/url] Он появляется в проекте [url]http://puu.sh/q2PzQ/2387357012.png[/url] (кстати неважно, в episodic или просто hl2 сувать) В клиенте (иписотик, и это тоже неважно, клиент эпизода делит этот файл вместе с hl2) здесь [url]http://puu.sh/q2PHH/d7c89882e9.png[/url] добавляю описание [url]http://puu.sh/q2PIu/5cd4bad277.png[/url] Сменяю на релиз, конпелирую, беру скомпилированную библиотеку [url]http://puu.sh/q2PRm/f727260412.png[/url] и кидаю в папку бин. Получаю иписотский мод с раздельным фонариком и драндулетом, и P2000 работает и там по give weapon_p2000. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 22] Author : Mr.Simon15281 Date : 15-07-2016 19:31 Может дашь ссылку на измененный скрипт p200.cpp и в текстовом виде? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 23] Author : Alf-Life II Date : 15-07-2016 19:36 Скрипт пистолета с тремя отличиями – название weapon_p2000.txt "printname" "P2000" "bucket_position" "2" Лень даже заливать куда-то. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 24] Author : Mr.Simon15281 Date : 15-07-2016 19:38 Тоесть, мне надо помимо server и client.dll, класть ещё classmap, client.exp client,lib и client.pch(как и со server) в бин? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 25] Author : Alf-Life II Date : 15-07-2016 19:40 Нет конечно, только dll-ки. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 26] Author : Mr.Simon15281 Date : 15-07-2016 19:43 Нет, всё также пишет, что нету оружия. Мне надо перезагрузить steam для работы? [size=1][i]Mr.Simon15281 добавил [date]1468612226[/date]:[/i][/size] Если что, вот скрипт в текстовом документе: // P2000 WeaponData { // Weapon data is loaded by both the Game and Client DLLs. "printname" "P2000" "viewmodel" "models/weapons/v_p2000.mdl" "playermodel" "models/weapons/w_p2000.mdl" "anim_prefix" "pistol" "bucket" "1" "bucket_position" "2" "bucket_360" "0" "bucket_position_360" "0" "clip_size" "13" "primary_ammo" "Pistol" "secondary_ammo" "None" "weight" "1" "rumble" "1" "item_flags" "0" // Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds) SoundData { "reload" "Weapon_Pistol.Reload" "reload_npc" "Weapon_Pistol.NPC_Reload" "empty" "Weapon_Pistol.Empty" "single_shot" "Weapon_Pistol.Single" "single_shot_npc" "Weapon_Pistol.NPC_Single" "special1" "Weapon_Pistol.Special1" "special2" "Weapon_Pistol.Special2" "burst" "Weapon_Pistol.Burst" } // Weapon Sprite data is loaded by the Client DLL. TextureData { "weapon" { "font" "WeaponIcons" "character" "d" } "weapon_s" { "font" "WeaponIconsSelected" "character" "d" } "weapon_small" { "font" "WeaponIconsSmall" "character" "d" } "ammo" { "font" "WeaponIconsSmall" "character" "p" } "crosshair" { "font" "Crosshairs" "character" "Q" } "autoaim" { "file" "sprites/crosshairs" "x" "0" "y" "48" "width" "24" "height" "24" } } } [size=1][i]Mr.Simon15281 добавил [date]1468612485[/date]:[/i][/size] Поможешь? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 27] Author : Alf-Life II Date : 15-07-2016 20:13 [quote]Мне надо перезагрузить steam для работы?[/quote] Нет, не надо. Удостоверься что в Server(Episodic)/Source Files/HL2 DLL есть weapon_p2000.cpp (не физически в папке, а в проекте в Visual Studio) Удостоверься что c_weapon_stubs_hl2.cpp внесён класс. Соберись, очисти разум, открой студию и сделай Rebuild solution (Ctrl+Alt+F7) Проверь окно вывода, должны быть с успехом созданы 2 файла. Сходи в /Release_mod_episodic/ и проверь дату изменения дллок, она должна быть той же, что и время финиша компиляции. Суй их в /bin/ своего мода, не в common/half-life 2/hl2/bin, а sourcemods/MrSimon15281Mod/bin Запусти мод и проверь ещё раз. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 28] Author : Mr.Simon15281 Date : 15-07-2016 20:42 (Работаю в visual studio 2013) Я всё сделал, как ты. Всё я сделал правильно, посмотрел изменение обоих файлов dll'ки(и также скомпелировал) посмотрел, p2000.cpp находиться в HL2 DLL. Да, перестроил, однако после компиляции, выводиться ошибка: 5>mathlib.lib(mathlib_base.obj) : warning LNK4075: не учитывается "/EDITANDCONTINUE" из-за спецификации "/OPT:LBR" (client.dll'ке) 4>mathlib.lib(mathlib_base.obj) : warning LNK4075: не учитывается "/EDITANDCONTINUE" из-за спецификации "/OPT:LBR" (server.dll'ке) ========== Перестроение всех: успешно: 5, с ошибками: 0, пропущено: 0 ========== [size=1][i]Mr.Simon15281 добавил [date]1468615379[/date]:[/i][/size] Однако клиент и сервер dll появляются в папке release. [size=1][i]Mr.Simon15281 добавил [date]1468616040[/date]:[/i][/size] если что, уменя source-sdk 2013 находится в SourceSDK(steam\steamapps\common) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 29] Author : Alf-Life II Date : 15-07-2016 20:54 [quote]выводиться ошибка[/quote] Это варнинг, а не ошибка, она незначительная, у тебя дллки пробилдились успешно. [quote]Однако клиент и сервер dll появляются в папке release.[/quote] Так и должно быть, [quote]Перестроение всех: успешно: 5[/quote] Значит после копирования в /бин/ мода всё должно работать, если только... Скинь gameinfo.txt мода, только не сюда ради бога, а на [url]http://pastebin.com/[/url] например. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 30] Author : Mr.Simon15281 Date : 15-07-2016 20:55 Вот: [url]http://pastebin.com/kL300SUt[/url] -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 31] Author : Alf-Life II Date : 15-07-2016 21:02 Во-первых, у тебя стимаппайди от эпизода 1 зачем-то. Во-вторых, [quote]gamebin episodic/bin[/quote] Он у тебя вообще игнорирует дллки мода и загружает дллки первого иписота. Переделывай по-нормальному мод по этому руководству. [url]http://steamcommunity.com/sharedfiles/filedetails/?l=russian&id=232923055[/url] -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 32] Author : Mr.Simon15281 Date : 15-07-2016 21:05 А можно конкретней, что нужно изменить в gameinfo? Или полностью чистый сделать? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 33] Author : Alf-Life II Date : 15-07-2016 21:10 Как ты вообще создавал мод? Через Create a mod в программке Source SDK? Это устаревший метод, для SOurce SDK 2013 используется другой метод, описанный в руководстве, которое я скинул. Грубо говоря копируется папка из Source SDK [b]Base[/b] 2013, необходимым образом настраивается gameinfo и дальше идёт работа по содержимому. Изменять что-то в гейминфо прямо сейчас я не советую, гейминфо это минное поле, в котором очень легко всё сломать, особенно если мод под какой-то устаревший билд движка создан, поэтому руководствуйся руководством [spoiler]лол[/spoiler] и делай полностью чистый мод (карты, модели, дллки конечно можешь перенести из старого). Ну или можешь из чисто спортивного интереса попробовать изменить в гейминфо следущее: gamebin |gameinfo_path|bin Не удивлюсь если заработает. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 34] Author : Mr.Simon15281 Date : 16-07-2016 07:42 Прости что не мог отписаться ночью но, спасибо большое! Я переустановил всё, и у меня всё работает, и даже оружие. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 35] Author : Alf-Life II Date : 16-07-2016 13:02 Нема за шо, обращайся. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 36] Author : YeahRight Date : 28-08-2018 14:07 Здравствуйте, я новорег и + к этому ещё умственноотсталый человек, который читает чёрным по белому и ничего не понимает из прочитанного. Скажите, как создать свой мод, если, предположим модельки есть и есть карты, нужно просто скомпилировать сборку (мне для начала нужно уметь компилировать дефолт, а потом уже что-то там менять, дабы знать, в чём и где проблема) Кто может пошагово объяснить. Я находил множество видео и руководств, ну реально не понятно и много ошибок, уже руки опускаются. Знаю, что тема старая, быстрого ответа не ожидаю. Терпение наше всё. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- The messages has been download from Форумы на Наша-Life at https://forum.nashalife.ru at 05.11.2024 11:48:19