Форум /forum/ Форум Thu, 31 Jan 2013 17:56:52 GMT uCoz Web-Service Как установить SourceMod расширение /forum/8-23-1 Thu, 31 Jan 2013 17:56:52 GMT Форум: <a href="/forum/8">SoureMod Расширения</a><br />Автор темы: root<br />Автор последнего сообщения: Admin<br />Количество ответов: 0 Чтобы установить SourceMod расширение, достаточно распаковать его на сервер и сменить карту, или использовать RCON команду <b>sm exts load x</b>, где x это название расширения, например, csteamid. Еще есть другая команда: <b>sm exts list</b> - покажет список работающих SM расширений.  <br /><br /> Файлы с расширением <b>.inc</b> необходимо распаковать в addons/sourcemod/scripting/include  <br /> Файлы .dll и .so в addons/sourcemod/extensions SoureMod Расширения root /forum/8-23-1 SDKhooks /forum/8-22-1 Thu, 31 Jan 2013 17:53:36 GMT Форум: <a href="/forum/8">SoureMod Расширения</a><br />Описание темы: Новые события, хуки (hooks), функции<br />Автор темы: root<br />Автор последнего сообщения: Admin<br />Количество ответов: 1 Последнюю версию <b>SDKhooks</b> всегда можно найти <a class="link" href="http://users.alliedmods.net/~psychonic/builds/sdkhooks/" rel="nofollow" target="_blank">здесь</a>. <br /> Первоисточник <a class="link" href="http://forums.alliedmods.net/showthread.php?t=106748" rel="nofollow" target="_blank">здесь</a>. <br /><br /> Если у вас уже стоит <b>SDKhooks</b> и вы хотите обновить его до последней версии, то сначала лучше полностью удалите старую версию с вашего сервера, т.к. могут возникнуть проблемы. <br /><br /> <b>Информация для скриптеров:</b> <br /><br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Код</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->// СОБЫТИЯ&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> public OnEntityCreated(index, const String:classname&#91;]&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Вызывается, когда создаётся какой-либо объект/предмет&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> public OnEntityDestroyed(index&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Вызывается, когда удаляется/уничтожается какой-либо объект/предмет&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> public Action:OnGetGameDescription(String:gameDesc&#91;64]&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Получено описание игры/сервера&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// return Plugin_Changed; - мы что-то изменили&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// return Plugin_Handled; - запретить&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// return Plugin_Continue; - разрешить (продолжить нормальное выполнение&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> public Action:OnLevelInit(const String:mapName&#91;], String:mapEntities&#91;2097152]&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> {&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Вызывается, когда уровень инициализируется&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// return Plugin_Changed; - мы что-то изменили&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// return Plugin_Handled; - запретить&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// return Plugin_Continue; - разрешить (продолжить нормальное выполнение&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> }<!--/uzc--></div></div><!--/uzcode--> <br /><br /> <b>SDKHookType:</b> <br /><br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Код</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->SDKHook_EndTouch - конец прикосновения&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_FireBulletsPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_OnTakeDamage - получение повреждений&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_OnTakeDamagePost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_PreThink&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_PostThink&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_SetTransmit&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_Spawn - рождение объекта&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_StartTouch - начало прикосновения&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_Think&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_Touch&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_TraceAttack&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_TraceAttackPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_WeaponCanSwitchTo - смена оружия&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_WeaponCanUse - использование оружия&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_WeaponDrop - выброс оружия&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_WeaponEquip&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_WeaponSwitch&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_ShouldCollide&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_PreThinkPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_PostThinkPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_ThinkPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_EndTouchPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_GroundEntChangedPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_SpawnPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_StartTouchPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_TouchPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_VPhysicsUpdate&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_VPhysicsUpdatePost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_WeaponCanSwitchToPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_WeaponCanUsePost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_WeaponDropPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_WeaponEquipPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_WeaponSwitchPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_Use&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_UsePost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_Reload - перезарядка оружия&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_ReloadPost&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook_GetMaxHealth&nbsp;&nbsp;// ep2v and later<!--/uzc--></div></div><!--/uzcode--> <br /><br /> <b>Функции:</b> <br /><br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Код</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->// Создать хук для объекта&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHook(index, SDKHookType:type, SDKHookCB:callback&#41;;&nbsp;&nbsp;&nbsp;&nbsp;<br /> bool:SDKHookEx(index, SDKHookType:type, SDKHookCB:callback&#41;;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> // Снять хук с объекта.&nbsp;&nbsp;&nbsp;&nbsp;<br /> // Делайте, только если объект еще жив. Если объект был удален, то хук сам снимется.&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKUnhook(entity, SDKHookType:type, SDKHookCB:callback&#41;;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> // Нанесение повреждения объекту&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHooks_TakeDamage(1, 2, 3, 4, 5, 6, 7, 8&#41;;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> 1 - индекс объекта, который получит повреждение&nbsp;&nbsp;&nbsp;&nbsp;<br /> 2 - индекс объекта, который наносит это повреждение (например, индекс ножа&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> 3 - индекс атакующего (игрок или др. объект&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> 4 - Float:damage - наносимое повреждение (сколько отнять hp&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> 5 - тип повреждения (по умолчанию: DMG_GENERIC&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> 6 - индекс оружия (orangebox&#41; или -1 (по умолчанию&#41;, если не определено&nbsp;&nbsp;&nbsp;&nbsp;<br /> 7 - const Float:damageForce&#91;3] = NULL_VECTOR (параметр Velocity - как сильно отскочит от повреждения&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> 8 - damagePosition&#91;3] = NULL_VECTOR (координаты, где наносится повреждение&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /> // Заставить выбросить оружие (в этом нет необходимости, т.к. есть CS_DropWeapon&#41;&nbsp;&nbsp;&nbsp;&nbsp;<br /> SDKHooks_DropWeapon(....&#41;;<!--/uzc--></div></div><!--/uzcode--> <br /><br /> <b>SDKHookCB</b> (функции обратного вызова): <br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Код</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->// PreThink/Post&nbsp;&nbsp;&nbsp;<br /> // PostThink/Post&nbsp;&nbsp;&nbsp;<br /> public xz_func(client&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // Spawn&nbsp;&nbsp;&nbsp;<br /> public Action:xz_func(index&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // GroundEntChanged&nbsp;&nbsp;&nbsp;<br /> // SpawnPost&nbsp;&nbsp;&nbsp;<br /> // Think/Post&nbsp;&nbsp;&nbsp;<br /> // VPhysicsUpdate/Post&nbsp;&nbsp;&nbsp;<br /> public xz_func(index&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // EndTouch&nbsp;&nbsp;&nbsp;<br /> // StartTouch&nbsp;&nbsp;&nbsp;<br /> // Touch&nbsp;&nbsp;&nbsp;<br /> public Action:xz_func(index, other_index&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // EndTouchPost&nbsp;&nbsp;&nbsp;<br /> // StartTouchPost&nbsp;&nbsp;&nbsp;<br /> // TouchPost&nbsp;&nbsp;&nbsp;<br /> public xz_func(index, other_index&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // SetTransmit&nbsp;&nbsp;&nbsp;<br /> public Action:xz_func(entity_index, client&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // WeaponCanSwitchTo&nbsp;&nbsp;&nbsp;<br /> // WeaponCanUse&nbsp;&nbsp;&nbsp;<br /> // WeaponDrop&nbsp;&nbsp;&nbsp;<br /> // WeaponEquip&nbsp;&nbsp;&nbsp;<br /> // WeaponSwitch&nbsp;&nbsp;&nbsp;<br /> public Action:xz_func(client, weapon&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // WeaponCanSwitchToPost&nbsp;&nbsp;&nbsp;<br /> // WeaponCanUsePost&nbsp;&nbsp;&nbsp;<br /> // WeaponDropPost&nbsp;&nbsp;&nbsp;<br /> // WeaponEquipPost&nbsp;&nbsp;&nbsp;<br /> // WeaponSwitchPost&nbsp;&nbsp;&nbsp;<br /> public xz_func(client, weapon&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // GetMaxHealth (ep2v and later&#41;&nbsp;&nbsp;&nbsp;<br /> public Action:xz_func(entity, &maxhealth&#41;&nbsp;&nbsp;&nbsp;<br /><br /> // OnTakeDamage&nbsp;&nbsp;&nbsp;<br /> public Action:xz_func(victim, &attacker, &inflictor, &Float:damage, &damagetype&#41;&nbsp;&nbsp;&nbsp;<br /><br /> public Action:xz_func(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon,&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Float:damageForce&#91;3], Float:damagePosition&#91;3]&#41;&nbsp;&nbsp;&nbsp;<br /><br /> public Action:xz_func(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon,&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Float:damageForce&#91;3], Float:damagePosition&#91;3], damagecustom&#41;&nbsp;&nbsp;&nbsp;<br /><br /> // OnTakeDamagePost&nbsp;&nbsp;&nbsp;<br /> public xz_func(victim, attacker, inflictor, Float:damage, damagetype&#41;&nbsp;&nbsp;&nbsp;<br /> public xz_func(victim, attacker, inflictor, Float:damage, damagetype,&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;weapon, const Float:damageForce&#91;3], const Float:damagePosition&#91;3]&#41;&nbsp;&nbsp;&nbsp;<br /><br /> // FireBulletsPost&nbsp;&nbsp;&nbsp;<br /> public xz_func(client, shots, const String:weaponname&#91;]&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // TraceAttack&nbsp;&nbsp;&nbsp;<br /> public Action:xz_func(victim, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // TraceAttackPost&nbsp;&nbsp;&nbsp;<br /> public xz_func(victim, attacker, inflictor, Float:damage, damagetype, ammotype, hitbox, hitgroup&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // ShouldCollide&nbsp;&nbsp;&nbsp;<br /> public bool:xz_func(entity, collisiongroup, contentsmask, bool:originalResult&#41;&nbsp;&nbsp;&nbsp;<br /><br /> // Use&nbsp;&nbsp;&nbsp;<br /> public Action:xz_func(entity, activator, caller, UseType:type, Float:value&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // UsePost&nbsp;&nbsp;&nbsp;<br /> public xz_func(entity, activator, caller, UseType:type, Float:value&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // Reload&nbsp;&nbsp;&nbsp;<br /> public Action:xz_func(weapon&#41;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> // Reload post&nbsp;&nbsp;&nbsp;<br /> public xz_func(weapon, bool:bSuccessful&#41;<!--/uzc--></div></div><!--/uzcode--> SoureMod Расширения root /forum/8-22-1