ďťż
Strona początkowa This is my amazing life!steam + ns (binarki KaMaZZa)Blokada napisanie (KaMaZZ)SkargA na KamazzzaaaDo Admina Kamazza!!Odcinanie spadochronuproszę o bana za kulture a raczej jej brak ...Pezet "Na tym osiedlu" (gościnnie Onar)siemkowy, bueheI Love New Year 2008/2009[Admin] Podanie o admina [meffy]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • etherlord.pev.pl
  •  

    This is my amazing life!

    Przeróbka spadochronu by KRoTaL
    Wycięte zbędne rzeczy:
    Dodane:
      lSpadochron na start
    Cvary:

    sv_parachute "1"   - 0: wyłączony - 1: włączony
    parachute_fallspeed "100" - szybkosc lotu
    Kod źródłowy:

    #include <amxmodx>
    #include <amxmisc>
    #include <engine>
    #include <cstrike>
    #include <fun>

    new bool:has_parachute[33]
    new para_ent[33]
    new gCStrike = 0
    new pDetach, pFallSpeed, pEnabled

    #define PARACHUTE_LEVEL ADMIN_LEVEL_A

    public plugin_init()
    {
        register_plugin("Parachute", "1.3", "KRoT@L/JTP10181")
        pEnabled = register_cvar("sv_parachute", "1" )
        pFallSpeed = register_cvar("parachute_fallspeed", "100")
        pDetach = register_cvar("parachute_detach", "1")

        if (cstrike_running()) gCStrike = true

        if (gCStrike) {

            register_concmd("amx_parachute", "admin_give_parachute", PARACHUTE_LEVEL, "<nick, #userid or @team>" )
        }

        register_event("ResetHUD", "newSpawn", "be")
        register_event("ResetHUD", "start", "a")
        register_event("DeathMsg", "death_event", "a")

        //Setup jtp10181 CVAR
        new cvarString[256], shortName[16]
        copy(shortName,15,"chute")

        register_cvar("jtp10181","",FCVAR_SERVER|FCVAR_SPONLY)
        get_cvar_string("jtp10181",cvarString,255)

        if (strlen(cvarString) == 0) {
            formatex(cvarString,255,shortName)
            set_cvar_string("jtp10181",cvarString)
        }
        else if (contain(cvarString,shortName) == -1) {
            format(cvarString,255,"%s,%s",cvarString, shortName)
            set_cvar_string("jtp10181",cvarString)
        }
    }

    public plugin_natives()
    {
        set_module_filter("module_filter")
        set_native_filter("native_filter")
    }

    public module_filter(const module[])
    {
        if (!cstrike_running() && equali(module, "cstrike")) {
            return PLUGIN_HANDLED
        }

        return PLUGIN_CONTINUE
    }

    public native_filter(const name[], index, trap)
    {
        if (!trap) return PLUGIN_HANDLED

        return PLUGIN_CONTINUE
    }

    public plugin_precache()
    {
        precache_model("models/parachute.mdl")
    }

    public client_connect(id)
    {
        parachute_reset(id)
    }

    public client_disconnect(id)
    {
        parachute_reset(id)
    }

    public death_event()
    {
        new id = read_data(2)
        parachute_reset(id)
    }

    parachute_reset(id)
    {
        if(para_ent[id] > 0) {
            if (is_valid_ent(para_ent[id])) {
                remove_entity(para_ent[id])
            }
        }

        if (is_user_alive(id)) set_user_gravity(id, 1.0)

        has_parachute[id] = false
        para_ent[id] = 0
    }

    public newSpawn(id)
    {
        if(para_ent[id] > 0) {
            remove_entity(para_ent[id])
            set_user_gravity(id, 1.0)
            para_ent[id] = 0
        }

        if (!gCStrike || access(id,PARACHUTE_LEVEL)) {
            has_parachute[id] = true
            //set_view(id, CAMERA_3RDPERSON)
        }
    }

    public start(id)
    {
        server_cmd("amx_parachute @all")
    }

    public admin_give_parachute(id, level, cid) {

        if (!gCStrike) return PLUGIN_CONTINUE

        if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED

        if (!get_pcvar_num(pEnabled)) {
            return PLUGIN_HANDLED
        }

        new arg[32], name[32], name2[32], authid[35], authid2[35]
        read_argv(1,arg,31)
        get_user_name(id,name,31)
        get_user_authid(id,authid,34)

        if (arg[0]=='@'){
            new players[32], inum
            if (equali("T",arg[1]))        copy(arg[1],31,"TERRORIST")
            if (equali("ALL",arg[1]))    get_players(players,inum)
            else                        get_players(players,inum,"e",arg[1])

            if (inum == 0) {
                console_print(id,"No clients in such team")
                return PLUGIN_HANDLED
            }

            for(new a = 0; a < inum; a++) {
                has_parachute[players[a]] = true
            }

            switch(get_cvar_num("amx_show_activity"))    {
                case 2:    client_print(0,print_chat,"ADMIN %s: gave a parachute to ^"%s^" players",name,arg[1])
                case 1:    client_print(0,print_chat,"ADMIN: gave a parachute to ^"%s^" players",arg[1])
            }

        }
        else {

            new player = cmd_target(id,arg,6)
            if (!player) return PLUGIN_HANDLED

            has_parachute[player] = true

            get_user_name(player,name2,31)
            get_user_authid(player,authid2,34)

            switch(get_cvar_num("amx_show_activity")) {
                case 2:    client_print(0,print_chat,"ADMIN %s: gave a parachute to ^"%s^"",name,name2)
                case 1:    client_print(0,print_chat,"ADMIN: gave a parachute to ^"%s^"",name2)
            }

        }
        return PLUGIN_HANDLED
    }

    public client_PreThink(id)
    {
        //parachute.mdl animation information
        //0 - deploy - 84 frames
        //1 - idle - 39 frames
        //2 - detach - 29 frames

        if (!get_pcvar_num(pEnabled)) return
        if (!is_user_alive(id) || !has_parachute[id]) return

        new Float:fallspeed = get_pcvar_float(pFallSpeed) * -1.0
        new Float:frame

        new button = get_user_button(id)
        new oldbutton = get_user_oldbutton(id)
        new flags = get_entity_flags(id)

        if (para_ent[id] > 0 && (flags & FL_ONGROUND)) {

            if (get_pcvar_num(pDetach)) {

                if (get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)

                if (entity_get_int(para_ent[id],EV_INT_sequence) != 2) {
                    entity_set_int(para_ent[id], EV_INT_sequence, 2)
                    entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                    entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                    entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                    entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
                    entity_set_float(para_ent[id], EV_FL_framerate, 0.0)
                    return
                }

                frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
                entity_set_float(para_ent[id],EV_FL_fuser1,frame)
                entity_set_float(para_ent[id],EV_FL_frame,frame)

                if (frame > 254.0) {
                    remove_entity(para_ent[id])
                    para_ent[id] = 0
                }
            }
            else {
                remove_entity(para_ent[id])
                set_user_gravity(id, 1.0)
                para_ent[id] = 0
            }

            return
        }

        if (button & IN_USE) {

            new Float:velocity[3]
            entity_get_vector(id, EV_VEC_velocity, velocity)

            if (velocity[2] < 0.0) {

                if(para_ent[id] <= 0) {
                    para_ent[id] = create_entity("info_target")
                    if(para_ent[id] > 0) {
                        entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
                        entity_set_edict(para_ent[id], EV_ENT_aiment, id)
                        entity_set_edict(para_ent[id], EV_ENT_owner, id)
                        entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
                        entity_set_model(para_ent[id], "models/parachute.mdl")
                        entity_set_int(para_ent[id], EV_INT_sequence, 0)
                        entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                        entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                        entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                    }
                }

                if (para_ent[id] > 0) {

                    entity_set_int(id, EV_INT_sequence, 3)
                    entity_set_int(id, EV_INT_gaitsequence, 1)
                    entity_set_float(id, EV_FL_frame, 1.0)
                    entity_set_float(id, EV_FL_framerate, 1.0)
                    set_user_gravity(id, 0.1)

                    velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
                    entity_set_vector(id, EV_VEC_velocity, velocity)

                    if (entity_get_int(para_ent[id],EV_INT_sequence) == 0) {

                        frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
                        entity_set_float(para_ent[id],EV_FL_fuser1,frame)
                        entity_set_float(para_ent[id],EV_FL_frame,frame)

                        if (frame > 100.0) {
                            entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
                            entity_set_float(para_ent[id], EV_FL_framerate, 0.4)
                            entity_set_int(para_ent[id], EV_INT_sequence, 1)
                            entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                            entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                            entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
                        }
                    }
                }
            }
            else if (para_ent[id] > 0) {
                remove_entity(para_ent[id])
                set_user_gravity(id, 1.0)
                para_ent[id] = 0
            }
        }
        else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) {
            remove_entity(para_ent[id])
            set_user_gravity(id, 1.0)
            para_ent[id] = 0
        }
    }



    no kamaz postarales sie:D
    On ma taki ?eb . Ja pierdziele , on ma dopiero 14 a Tyle wiem . <tanczy>
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nataliaswit.pev.pl
  •