Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Сapsule

, не прыгает, как на видео
Статус пользователя BeasTa
сообщение 27.3.2015, 12:02
Сообщение #1


Стаж: 11 лет

Сообщений: 72
Благодарностей: 7
Полезность: 72

Добрый день, ув. Форумчане, почему капусла не прыгает, как на этом видео?
Уже что только не пробывал сделать...



настройки
Код
There're three modes of playing with capsules:
* cp_teammode 0: Every player can pick capsules
* cp_teammode 1: Only players of the same team can pick capsules droped by someone
* cp_teammode 2: Only players of the other team can pick capsules droped by someone

You can enable/disable glowing:
* cp_glowmode 0: Glow disabled
* cp_glowmode 1: Glow enabled

Cvars:
cp_teammode 1:
    0: Anyone can catch the capsule.
    1: Only the same team can catch the capsule.
    2: Only the opposing team can catch the capsule.

cp_glowmode 1:
    0: Glow disabled.
    1: Glow enabled.

cp_remove 0:
    0: Do not remove the capsules.
    1: Remove the capsules.

cp_bounce 1:
    0: Off the bounce in the capsule.
    1: On the bounce on the capsule.


sma
Код:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <engine>
#include <fun>
 
#define Plugin  "Capsule"
#define Version "2.9"
#define Author  "Asd'"
 
#define Clip 51
#define WeaponLinux 4
 
/*················[Models][Sprites][Sounds]···············*/
new CapsuleMdl[] = "models/w_weaponbox.mdl"
 
new ReceivedSd[] = "items/gunpickup3.wav"
new BounceSd[] = "weapons/g_bounce1.wav"
 
new SmokeSpr[] = "sprites/steam1.spr"
/*························································*/
 
/*·························[Weapons Consts][BPAmmo Consts]·························*/
new const Weapons = (
        (1<<CSW_SCOUT) | (1<<CSW_XM1014) | (1<<CSW_MAC10) |
        (1<<CSW_AUG) | (1<<CSW_UMP45) | (1<<CSW_SG550) |
        (1<<CSW_GALIL)  | (1<<CSW_FAMAS) | (1<<CSW_AWP) |
        (1<<CSW_MP5NAVY) | (1<<CSW_M249) | (1<<CSW_M3) |
        (1<<CSW_M4A1) | (1<<CSW_TMP) | (1<<CSW_G3SG1) |
        (1<<CSW_SG552) | (1<<CSW_AK47) | (1<<CSW_P90) |
        (1<<CSW_P228) | (1<<CSW_ELITE) | (1<<CSW_FIVESEVEN) |
        (1<<CSW_USP) | (1<<CSW_GLOCK18) | (1<<CSW_DEAGLE) |
        (1<<CSW_FLASHBANG) | (1<<CSW_HEGRENADE) | (1<<CSW_SMOKEGRENADE)
)
 
new const MaxBPAmmo[] = {
        -1, 52, -1, 90, 1, 32, 1, 100, 90, 1, 120, 100,
        100, 90, 90, 90, 100, 120,
        30, 120, 200, 32, 90, 120, 90,
        2, 35, 90, 90, -1, 100
}
/*···············································································
··*/
 
/*······[Glow Colors]·····*/
new Float:Colors[3][3] = {
        {0.0, 200.0, 0.0},
        {200.0, 0.0, 0.0},
        {0.0, 0.0, 200.0}
}
/*······················*/
 
/*·····[Variables]·····*/
new Bounce
new Remove
new GlowMode
new TeamMode
new Smoke
/*·····················*/
 
/*·····[Arrays]·····*/
new UserWeapons[33]
new Capsule[33]
new UserAmmo[33]
new UserClip[33]
/*···················*/
 
public plugin_init( )
{
        /* Plugin */
        register_plugin( Plugin, Version, Author )
       
        /* Cvars & Commands */
        Bounce = register_cvar( "cp_bounce", "1" )     
        Remove = register_cvar( "cp_remove", "0" )     
        GlowMode = register_cvar( "cp_glowmode", "1" )
        TeamMode = register_cvar( "cp_teammode", "1" )
       
        /* Engine Fowards */
        register_touch( "Capsule", "player", "CapsuleTouch" )
        register_touch( "Capsule", "worldspawn", "CapsuleBounce" )
        register_think( "Capsule", "CapsuleThink" )
       
        /* Hamsandwich Forwards */
        RegisterHam( Ham_Killed, "player", "CapsuleCreate", 1 )
        RegisterHam( Ham_Spawn, "player", "CapsuleRemoved", 1 )
       
        /* Others */
        register_cvar( "cp_author", Author, FCVAR_SERVER|FCVAR_SPONLY ) /* Game monitor */
        register_cvar( "cp_version", Version, FCVAR_SERVER|FCVAR_SPONLY ) /* Game monitor */
}
 
public plugin_precache( )
{
        /* Precache model */
        precache_model( CapsuleMdl )
       
        /* Precache sprite */
        Smoke = precache_model( SmokeSpr )
       
        /* Precache sounds */
        precache_sound( ReceivedSd )
        precache_sound( BounceSd )
}
 
public CapsuleCreate( Victim, Attacker, ShouldGib )
{
        new Float:Origin[3]
        new Float:Velocidad[3]
       
        CapsuleRemove( Victim )
       
        new Entidad = create_entity( "info_target" )
        new Team = get_user_team( Victim )
       
        entity_get_vector( Victim, EV_VEC_origin, Origin )
        entity_set_string( Entidad, EV_SZ_classname, "Capsule" )
        entity_set_model( Entidad, CapsuleMdl )
       
        if( get_pcvar_num( GlowMode ) )
        {
                entity_set_int( Entidad, EV_INT_rendermode, kRenderNormal)
                entity_set_int( Entidad, EV_INT_renderfx, kRenderFxGlowShell )
               
                entity_set_vector( Entidad, EV_VEC_rendercolor, get_pcvar_num( TeamMode ) ? Colors[Team] : Colors[0] )
                entity_set_float( Entidad, EV_FL_renderamt, 10.0 )
        }
       
        entity_set_edict( Entidad, EV_ENT_owner, Victim )
        entity_set_int( Entidad, EV_INT_iuser1, Team )
        entity_set_int( Entidad, EV_INT_iuser2, Victim )
       
        entity_set_size( Entidad, Float:{ -10.0, -10.0, -0.0 },  Float:{ 10.0, 10.0, 0.0 } )
        entity_set_origin( Entidad, Origin )
       
        entity_set_int( Entidad, EV_INT_solid, SOLID_TRIGGER )
       
        if( get_pcvar_num( Bounce ) )
                entity_set_int( Entidad, EV_INT_movetype, MOVETYPE_BOUNCE )
        else
                entity_set_int( Entidad, EV_INT_movetype, MOVETYPE_TOSS )
       
        entity_get_vector( Victim, EV_VEC_velocity, Velocidad )
        entity_set_vector( Entidad, EV_VEC_velocity, Velocidad )
       
        Capsule[Victim] = Entidad
       
        CapsuleItems( Victim, Entidad )
        entity_set_float( Entidad, EV_FL_nextthink, get_gametime( ) + 1.0 )
       
        return HAM_HANDLED
}
 
public CapsuleRemoved( id )
{
        if( get_pcvar_num( Remove ) )
                CapsuleRemove( id )
       
        return HAM_IGNORED
}
 
public CapsuleThink( Entidad )
{
        new Float:Origin[3]
        pev( Entidad, pev_origin, Origin )
       
        new OriginEnd[3]
        OriginEnd[0] = floatround( Origin[0] )
        OriginEnd[1] = floatround( Origin[1] )
        OriginEnd[2] = floatround( Origin[2] )
       
        message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
        write_byte( TE_SMOKE )
        write_coord( OriginEnd[0] )
        write_coord( OriginEnd[1] )
        write_coord( OriginEnd[2] )
        write_short( Smoke )
        write_byte( random_num( 5, 10 ) )
        write_byte( 10 )
        message_end( )
       
        entity_set_float( Entidad, EV_FL_nextthink, get_gametime( ) + 1.0 )
}
 
public CapsuleBounce( Entidad, World )
{
        if( !is_valid_ent( Entidad ) )
                return PLUGIN_HANDLED
       
        if( entity_get_edict( Entidad, EV_ENT_owner ) )
                entity_set_edict( Entidad, EV_ENT_owner, 0 )
       
        if( get_pcvar_num( Bounce ) )
        {      
                new Float:Velocidad[3]
                entity_get_vector( Entidad, EV_VEC_velocity, Velocidad )
               
                Velocidad[0] -= Velocidad[0] / 10.0
                Velocidad[1] -= Velocidad[1] / 5.0
                Velocidad[2] -= Velocidad[2] / 0.0
               
                entity_set_vector( Entidad, EV_VEC_velocity, Velocidad )
                emit_sound( Entidad, CHAN_ITEM, BounceSd, 1.0, ATTN_NORM, 0, PITCH_NORM )
        }
        return PLUGIN_HANDLED
}
 
 
public CapsuleTouch( Entidad, Index )
{
        if( !is_user_alive( Index ) )
                return PLUGIN_HANDLED
       
        if( !is_valid_ent( Entidad ) )
                return PLUGIN_HANDLED
       
        if( entity_get_edict( Entidad, EV_ENT_owner ) )
                return PLUGIN_HANDLED
       
        new WeaponsDT[32]
        new OldEntidad = entity_get_int( Entidad, EV_INT_iuser2 )
        new NewAmmo
        new OldAmmo
        new NewClip
        new WPEntidad
       
        entity_get_string( Entidad, EV_SZ_noise1, UserWeapons, charsmax( UserWeapons ) )
        entity_get_string( Entidad, EV_SZ_noise2, UserAmmo, charsmax( UserAmmo) )
        entity_get_string( Entidad, EV_SZ_noise3, UserClip, charsmax( UserClip) )
       
        for(new i = 0; i < charsmax( UserWeapons ); i++)
        {
                if( UserWeapons[i] == 0 )
                        break
               
                if( MaxBPAmmo[UserWeapons[i]] > 0 )
                {
                        if( !user_has_weapon( Index, UserWeapons[i] ) )
                        {
                                get_weaponname( UserWeapons[i], WeaponsDT, charsmax( WeaponsDT ) )
                                give_item( Index, WeaponsDT )
                               
                                WPEntidad = WeaponEntidad( Index, UserWeapons[i])
                                NewAmmo = UserAmmo[i]
                                NewClip = UserClip[i]
                        }
                        else
                        {
                                OldAmmo = cs_get_user_bpammo( Index, UserWeapons[i] )
                                NewAmmo = ( MaxBPAmmo[UserWeapons[i]] + OldAmmo ) < UserAmmo[i] ? MaxBPAmmo[UserWeapons[i]] : UserAmmo[i]
                                WPEntidad = WeaponEntidad( Index, UserWeapons[i] )
                                NewClip = get_pdata_int( WPEntidad, Clip, WeaponLinux )
                        }
                        cs_set_user_bpammo( Index, UserWeapons[i], NewAmmo )
                        set_pdata_int( WPEntidad, Clip, NewClip, WeaponLinux )
                }
        }
        emit_sound( Entidad, CHAN_ITEM, ReceivedSd, 1.0, ATTN_NORM, 0, PITCH_NORM )
        CapsuleRemove( OldEntidad )
       
        return PLUGIN_HANDLED
}
 
public CapsuleItems( Index, Entidad )
{
        new CarriedWeapons[32]
        new NumWeapons
        new WeaponID
        new i
       
        get_user_weapons( Index, CarriedWeapons, NumWeapons )
       
        for(i = 0; i < NumWeapons; i++)
        {
                UserWeapons[i] = CarriedWeapons[i]
                WeaponID = WeaponEntidad( Index, UserWeapons[i] )
               
                if( Weapons & ( 1 << CarriedWeapons[i] ) )
                        get_user_ammo( Index, CarriedWeapons[i], UserClip[i], UserAmmo[i] )
                else
                        UserAmmo[i] = UserClip[i] = -1
               
                ExecuteHamB( Ham_Weapon_RetireWeapon, WeaponID )
                ExecuteHamB( Ham_RemovePlayerItem, Index, WeaponID )
                ExecuteHamB( Ham_Item_Kill, WeaponID )
        }
        UserWeapons[i] = UserAmmo[i] = UserClip[i] = 0
       
        entity_set_string( Entidad, EV_SZ_noise1, UserWeapons )
        entity_set_string( Entidad, EV_SZ_noise2, UserAmmo )
        entity_set_string( Entidad, EV_SZ_noise3, UserClip )
}
 
/*·························[Stocks]·························*/
stock CapsuleRemove( Index )
{
        if( ( Capsule[Index] != 0 ) && is_valid_ent( Capsule[Index] ) )
        {
                remove_entity( Capsule[Index] )
                Capsule[Index] = 0
        }
}
 
stock WeaponEntidad( Index, WeaponID )
{
        static szWeaponName[32]
        get_weaponname( WeaponID, szWeaponName, charsmax( szWeaponName ) )
       
        return find_ent_by_owner(-1, szWeaponName, Index )
}
/*·························································*/
 


Отредактировал: BeasTa, - 27.3.2015, 12:05


www.ppzone.tk
http://www.DjBeasT.ML
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
voed
сообщение 27.3.2015, 13:29
Сообщение #2
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Возможно, конфликт с каким-то плагином

Отредактировал: voed, - 27.3.2015, 13:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BeasTa
сообщение 27.3.2015, 14:15
Сообщение #3


Стаж: 11 лет

Сообщений: 72
Благодарностей: 7
Полезность: 72

Цитата(voed @ 27.3.2015, 17:29) *
Возможно, конфликт с каким-то плагином

Отключил все плагины, оставил только этот, ничего не изменилось...


www.ppzone.tk
http://www.DjBeasT.ML
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sot100
сообщение 27.3.2015, 14:37
Сообщение #4


Стаж: 18 лет

Сообщений: 1695
Благодарностей: 500
Полезность: 711

IP сервера в личку, и ссылку на плагин


https://vk.com/club_megamozg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BeasTa
сообщение 27.3.2015, 15:28
Сообщение #5


Стаж: 11 лет

Сообщений: 72
Благодарностей: 7
Полезность: 72

Цитата(sot100 @ 27.3.2015, 18:37) *
IP сервера в личку, и ссылку на плагин

Плагин вот
Тестирую на домашнем сервере...


www.ppzone.tk
http://www.DjBeasT.ML
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sot100
сообщение 27.3.2015, 17:09
Сообщение #6


Стаж: 18 лет

Сообщений: 1695
Благодарностей: 500
Полезность: 711

Проверил на 5787 - аналогично не прыгает
Да и старый он, сервер из-за него крашился.


https://vk.com/club_megamozg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BeasTa
сообщение 27.3.2015, 17:13
Сообщение #7


Стаж: 11 лет

Сообщений: 72
Благодарностей: 7
Полезность: 72

странно...
Как это можно исправить?


www.ppzone.tk
http://www.DjBeasT.ML
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 28.3.2015, 11:30
Сообщение #8
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Потому что нельзя делить на 0.0 получается NaN.

Код:
Velocidad[2] -= Velocidad[2] / 0.0


Заменить на

Код:
Velocidad[2] *= 0.5


Ну или самостоятельно подобрать.

Отредактировал: Radius, - 28.3.2015, 11:37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя BeasTa
сообщение 28.3.2015, 11:42
Сообщение #9


Стаж: 11 лет

Сообщений: 72
Благодарностей: 7
Полезность: 72

Цитата(Radius @ 28.3.2015, 15:30) *
Потому что нельзя делить на 0.0 получается NaN.

Код:
Velocidad[2] -= Velocidad[2] / 0.0


Заменить на

Код:
Velocidad[2] *= 0.5


Ну или самостоятельно подобрать.

щас попробую

Отредактировал: BeasTa, - 28.3.2015, 11:43


www.ppzone.tk
http://www.DjBeasT.ML
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BeasTa
сообщение 28.3.2015, 11:49
Сообщение #10


Стаж: 11 лет

Сообщений: 72
Благодарностей: 7
Полезность: 72

спасибо большое, помог medal.gif


www.ppzone.tk
http://www.DjBeasT.ML
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: