Kullanıcı Tag Listesi

18 sonuçtan 1 ile 10 arası

Hybrid View

  1. #1
    Nemesis* coadmin akcaliberkk - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Jun 2012
    Yer
    İstanbul
    Mesajlar
    2.027
    Bahsedildi
    105 Mesaj
    Etiketlenmiş
    10 Konu
    Tecrübe Puanı
    10

    Standart Cevap: İSTEK ! Sadece Ct de hook basabilmek

    PHP- Kodu:
    /***********************************************************************************\
    *    Hook By P34nut    *    Thanks to Joka69, Chaosphere for testing and stuff!        *
    *************************************************************************************
    * Commands/ bindings:           
    *    +hook to throw the hook  
    *    -hook to delete your hook

    * Cvars:
    *    sv_hook - Turns hook on or off 
    *    sv_hookthrowspeed - Throw speed (default: 1000)
    *    sv_hookspeed - Speed to hook (default: 300)
    *    sv_hookwidth - Width of the hook (default: 32)
    *    sv_hooksound - Sounds of the hook on or off (default: 1)
    *    sv_hookcolor - The color of the hook 0 is white and 1 is team color (default: 1)
    *    sv_hookplayers - If set 1 you can hook on players (default: 0)
    *    sv_hookinterrupt - Remove the hook when something comes in its line (default: 0)
    *    sv_hookadminonly - Hook for admin only (default: 0)
    *    sv_hooksky - If set 1 you can hook in the sky (default: 0)
    *    sv_hookopendoors - If set 1 you can open doors with the hook (default: 1)
    *    sv_hookbuttons - If set 1 you can use buttons with the hook (default: 0)
    *    sv_hookpickweapons - If set 1 you can pickup weapons with the hook (default: 1)
    *    sv_hookhostflollow - If set 1 you can make hostages follow you (default 1)
    *    sv_hookinstant - Hook doesnt throw (default: 0)
    *    sv_hooknoise - adds some noise to the hook line (default: 0)
    *    sv_hookmax - Maximun numbers of hooks a player can use in 1 round
    *           - 0 for infinitive hooks (default: 0)
    *    sv_hookdelay - delay on the start of each round before a player can hook
    *                 - 0.0 for no delay (default: 0.0)
    *
    * ChangeLog:
    *    1.0: Release
    *    1.5: added cvars:
    *        sv_hooknoise
    *        sv_hookmax
    *        sv_hookdelay
    *        public cvar: sv_amxxhookmod
    *         added commands:
    *        amx_givehook <username>
    *        amx_takehook <username>
    *
    \***********************************************************************************/

    // Players admin level
    #define ADMINLEVEL ADMIN_RCON

    #include <amxmodx>
    #include <amxmisc>
    #include <fakemeta>
    #include <cstrike>
    #include <xs>

    #define message_begin_f(%1,%2,%3,%4) engfunc(EngFunc_MessageBegin, %1, %2, %3, %4)
    #define write_coord_f(%1) engfunc(EngFunc_WriteCoord, %1)

    //Cvars
    new pHookpThrowSpeedpSpeedpWidthpSoundpColor
    new pInterruptpAdminpHookSkypOpenDoorspPlayers
    new pUseButtonspHostagepWeaponspInstantpHookNoise
    new pMaxHookspRndStartDelaypCtOnly;
    // Sprite
    new sprBeam

    // Players hook entity
    new Hook[33]

    // MaxPlayers
    new gMaxPlayers

    // some booleans
    new bool:gHooked[33]
    new 
    bool:canThrowHook[33]
    new 
    bool:rndStarted

    // Player Spawn
    new bool:gRestart[33] = {false, ...}
    new 
    bool:gUpdate[33] = {false, ...}

    new 
    gHooksUsed[33// Used with sv_hookmax
    new bool:g_bHookAllowed[33// Used with sv_hookadminonly

    public plugin_init()
    {
        
    register_plugin("Hook""1.5""P34nut")
        
        
    // Hook commands
        
    register_clcmd("+hook""make_hook")
        
    register_clcmd("-hook""del_hook")
        
        
    register_concmd("amx_givehook""give_hook"ADMINLEVEL"<Username> - Give somebody access to the hook")
        
    register_concmd("amx_takehook""take_hook"ADMINLEVEL"<UserName> - Take away somebody his access to the hook")
        
        
    // Events for roundstart
        
    register_event("HLTV""round_bstart""a""1=0""2=0")
        
    register_logevent("round_estart"2"1=Round_Start"
        
        
    // Player spawn stuff
        
    register_event("TextMsg""Restart""a""2=#Game_will_restart_in")
        
    register_clcmd("fullupdate""Update"
        
    register_event("ResetHUD""ResetHUD""b")
        
        
    // Register cvars
        
    register_cvar("sv_amxxhookmod",  "version 1.5"FCVAR_SERVER// yay public cvar
        
    pHook =     register_cvar("sv_hook""1")
        
    pThrowSpeed =     register_cvar("sv_hookthrowspeed""4000")
        
    pSpeed =     register_cvar("sv_hookspeed""600")
        
    pWidth =     register_cvar("sv_hookwidth""16")
        
    pSound =     register_cvar("sv_hooksound""1")
        
    pColor =    register_cvar("sv_hookcolor""0")
        
    pPlayers =     register_cvar("sv_hookplayers""0")
        
    pInterrupt =     register_cvar("sv_hookinterrupt""0")
        
    pAdmin =     register_cvar("sv_hookadminonly",  "1")
        
    pHookSky =     register_cvar("sv_hooksky""1")
        
    pOpenDoors =     register_cvar("sv_hookopendoors""1")
        
    pUseButtons =     register_cvar("sv_hookusebuttons""1")
        
    pHostage =     register_cvar("sv_hookhostflollow""1")
        
    pWeapons =    register_cvar("sv_hookpickweapons""1")
        
    pInstant =    register_cvar("sv_hookinstant""1")
        
    pHookNoise =     register_cvar("sv_hooknoise""0")
        
    pMaxHooks =     register_cvar("sv_hookmax""0")
        
    pRndStartDelay register_cvar("sv_hookrndstartdelay""0.0")
        
    pCtOnly register_cvar("sv_hookctonly""1")
        
        
        
    // Touch forward
        
    register_forward(FM_Touch"fwTouch")
        
        
    // Get maxplayers
        
    gMaxPlayers get_maxplayers()
    }

    public 
    plugin_precache()
    {
        
    // Hook Model
        
    engfunc(EngFunc_PrecacheModel"models/rpgrocket.mdl")
        
        
    // Hook Beam
        
    sprBeam engfunc(EngFunc_PrecacheModel"sprites/zbeam4.spr")
        
        
    // Hook Sounds
        
    engfunc(EngFunc_PrecacheSound"weapons/xbow_hit1.wav"// good hit
        
    engfunc(EngFunc_PrecacheSound"weapons/xbow_hit2.wav"// wrong hit
        
        
    engfunc(EngFunc_PrecacheSound"weapons/xbow_hitbod1.wav"// player hit
        
        
    engfunc(EngFunc_PrecacheSound"weapons/xbow_fire1.wav"// deploy
    }


    public 
    make_hook(id)
    {
        
        if (
    get_pcvar_num(pHook) && is_user_alive(id) && canThrowHook[id] && !gHooked[id]) {        
            if (
    get_pcvar_num(pAdmin))
            {
                
    // Only the admins can throw the hook
                // if(is_user_admin(id)) { <- does not work...        
                
    if (!(get_user_flags(id) & ADMINLEVEL) && !g_bHookAllowed[id])
                {
                    
    // Show a message
                    
    client_print(idprint_chat"[Hook] Bunu Kullanmak Icin Yetkiniz Yok")
                    
                    return 
    PLUGIN_HANDLED
                
    }
            }
            if(
    get_pcvar_num(pCtOnly)) {
                if(
    get_user_team(id) != 2) {
                    
    client_print(id,print_chat,"[Hook] Sadece CT Takimi Hook Kullanabilir")
                    return 
    PLUGIN_HANDLED
                
    }
            }
            new 
    iMaxHooks get_pcvar_num(pMaxHooks)
            if (
    iMaxHooks 0)
            {
                if (
    gHooksUsed[id] >= iMaxHooks)
                {
                    
    client_print(idprint_chat"[Hook] Hook Limitin Doldu Artik Hook Kullanamazsin !")
                    
    statusMsg(id"[Hook] %d of %d hooks used."gHooksUsed[id], get_pcvar_num(pMaxHooks))
                    
                    return 
    PLUGIN_HANDLED
                
    }
                else 
                {
                    
    gHooksUsed[id]++
                    
    statusMsg(id"[Hook] %d of %d hooks used."gHooksUsed[id], get_pcvar_num(pMaxHooks))
                }
            }
            new 
    Float:fDelay get_pcvar_float(pRndStartDelay)
            if (
    fDelay && !rndStarted)
                
    client_print(idprint_chat"[Hook] Ilk %0.0f Saniye Boyunca Hook Kullanamazsin !"fDelay)
                
            
    throw_hook(id)
        }
        return 
    PLUGIN_HANDLED
    }

    public 
    del_hook(id)
    {
        
    // Remove players hook
        
    if (!canThrowHook[id])
            
    remove_hook(id)
        
        return 
    PLUGIN_HANDLED
    }

    public 
    round_bstart()
    {
        
    // Round is not started anymore
        
    if (rndStarted)
            
    rndStarted false
        
        
    // Remove all hooks
        
    for (new 1<= gMaxPlayersi++)
        {
            if (
    is_user_connected(i))
            {
                if(!
    canThrowHook[i])
                    
    remove_hook(i)
            }
        }
    }

    public 
    round_estart()
    {
        new 
    Float:fDelay get_pcvar_float(pRndStartDelay)
        if (
    fDelay 0.0)
            
    set_task(fDelay"rndStartDelay")
        else
        {
            
    // Round is started...
            
    if (!rndStarted)
                
    rndStarted true
        
    }
    }

    public 
    rndStartDelay()
    {
        if (!
    rndStarted)
            
    rndStarted true
    }

    public 
    Restart()
    {
        for (new 
    id 0id gMaxPlayersid++)
        {
            if (
    is_user_connected(id))
                
    gRestart[id] = true
        
    }
    }

    public 
    Update(id)
    {
        if (!
    gUpdate[id])
            
    gUpdate[id] = true
        
        
    return PLUGIN_CONTINUE
    }

    public 
    ResetHUD(id)
    {
        if (
    gRestart[id])
        {
            
    gRestart[id] = false
            
    return
        }
        if (
    gUpdate[id])
        {
            
    gUpdate[id] = false
            
    return
        }
        if (
    gHooked[id])
        {
            
    remove_hook(id)
        }
        if (
    get_pcvar_num(pMaxHooks) > 0)
        {
            
    gHooksUsed[id] = 0
            statusMsg
    (0"[Hook] 0 of %d hooks used."get_pcvar_num(pMaxHooks))
        }
    }

    public 
    fwTouch(ptrptd)
    {
        if (!
    pev_valid(ptr))
            return 
    FMRES_IGNORED
        
        
    new id pev(ptrpev_owner)
        
        
    // Get classname
        
    static szPtrClass[32]    
        
    pev(ptrpev_classnameszPtrClasscharsmax(szPtrClass))
        
        if (
    equali(szPtrClass"Hook"))
        {        
            static 
    Float:fOrigin[3]
            
    pev(ptrpev_originfOrigin)
            
            if (
    pev_valid(ptd))
            {
                static 
    szPtdClass[32]
                
    pev(ptdpev_classnameszPtdClasscharsmax(szPtdClass))
                            
                if (!
    get_pcvar_num(pPlayers) && /*equali(szPtdClass, "player")*/ is_user_alive(ptd))
                {
                    
    // Hit a player
                    
    if (get_pcvar_num(pSound))
                        
    emit_sound(ptrCHAN_STATIC"weapons/xbow_hitbod1.wav"1.0ATTN_NORM0PITCH_NORM)
                    
    remove_hook(id)
                    
                    return 
    FMRES_HANDLED
                
    }
                else if (
    equali(szPtdClass"hostage_entity"))
                {
                    
    // Makes an hostage follow
                    
    if (get_pcvar_num(pHostage) && get_user_team(id) == 2)
                    {                    
                        
    //cs_set_hostage_foll(ptd, (cs_get_hostage_foll(ptd) == id) ? 0 : id)
                        // With the use function we have the sounds!
                        
    dllfunc(DLLFunc_Useptdid)
                    }
                    if (!
    get_pcvar_num(pPlayers))
                    {
                        if(
    get_pcvar_num(pSound))
                            
    emit_sound(ptrCHAN_STATIC"weapons/xbow_hitbod1.wav"1.0ATTN_NORM0PITCH_NORM)
                        
    remove_hook(id)
                    }
                    return 
    FMRES_HANDLED
                
    }
                else if (
    get_pcvar_num(pOpenDoors) && equali(szPtdClass"func_door") || equali(szPtdClass"func_door_rotating"))
                {
                    
    // Open doors
                    // Double doors tested in de_nuke and de_wallmart
                    
    static szTargetName[32]
                    
    pev(ptdpev_targetnameszTargetNamecharsmax(szTargetName))
                    if (
    strlen(szTargetName) > 0)
                    {    
                        static 
    ent
                        
    while ((ent engfunc(EngFunc_FindEntityByStringent"target"szTargetName)) > 0)
                        {
                            static 
    szEntClass[32]
                            
    pev(entpev_classnameszEntClasscharsmax(szEntClass))
                            
                            if (
    equali(szEntClass"trigger_multiple"))
                            {
                                
    dllfunc(DLLFunc_Touchentid)
                                goto 
    stopdoors // No need to touch anymore
                            
    }
                        }
                    }
                    
                    
    // No double doors.. just touch it
                    
    dllfunc(DLLFunc_Touchptdid)
    stopdoors:                
                }
                else if (
    get_pcvar_num(pUseButtons) && equali(szPtdClass"func_button"))
                {
                    if (
    pev(ptdpev_spawnflags) & SF_BUTTON_TOUCH_ONLY)
                        
    dllfunc(DLLFunc_Touchptdid// Touch only
                    
    else            
                        
    dllfunc(DLLFunc_Useptdid// Use Buttons            
                
    }
            }
            
            
    // If cvar sv_hooksky is 0 and hook is in the sky remove it!
            
    new iContents engfunc(EngFunc_PointContentsfOrigin)
            if (!
    get_pcvar_num(pHookSky) && iContents == CONTENTS_SKY)
            {
                if(
    get_pcvar_num(pSound))
                    
    emit_sound(ptrCHAN_STATIC"weapons/xbow_hit2.wav"1.0ATTN_NORM0PITCH_NORM)
                
    remove_hook(id)
                return 
    FMRES_HANDLED
            
    }
            
            
    // Pick up weapons..
            
    if (get_pcvar_num(pWeapons))
            {
                static 
    ent
                
    while ((ent engfunc(EngFunc_FindEntityInSphereentfOrigin15.0)) > 0)
                {
                    static 
    szentClass[32]
                    
    pev(entpev_classnameszentClasscharsmax(szentClass))
                    
                    if (
    equali(szentClass"weaponbox") || equali(szentClass"armoury_entity"))
                        
    dllfunc(DLLFunc_Touchentid)
                }
            }
            
            
    // Player is now hooked
            
    gHooked[id] = true
            
    // Play sound
            
    if (get_pcvar_num(pSound))
                
    emit_sound(ptrCHAN_STATIC"weapons/xbow_hit1.wav"1.0ATTN_NORM0PITCH_NORM)
            
            
    // Make some sparks :D
            
    message_begin_f(MSG_BROADCASTSVC_TEMPENTITYfOrigin0)
            
    write_byte(9// TE_SPARKS
            
    write_coord_f(fOrigin[0]) // Origin
            
    write_coord_f(fOrigin[1])
            
    write_coord_f(fOrigin[2])
            
    message_end()        
            
            
    // Stop the hook from moving
            
    set_pev(ptrpev_velocityFloat:{0.00.00.0})
            
    set_pev(ptrpev_movetypeMOVETYPE_NONE)
            
            
    //Task
            
    if (!task_exists(id 856))
            { 
                static 
    TaskData[2]
                
    TaskData[0] = id
                TaskData
    [1] = ptr
                gotohook
    (TaskData)
                
                
    set_task(0.1"gotohook"id 856TaskData2"b")
            }
        }
        return 
    FMRES_HANDLED
    }

    public 
    hookthink(param[])
    {
        new 
    id param[0]
        new 
    HookEnt param[1]
        
        if (!
    is_user_alive(id) || !pev_valid(HookEnt) || !pev_valid(id))
        {
            
    remove_task(id 890)
            return 
    PLUGIN_HANDLED
        
    }
        
        
        static 
    Float:entOrigin[3]
        
    pev(HookEntpev_originentOrigin)
        
        
    // If user is behind a box or something.. remove it
        // only works if sv_interrupt 1 or higher is
        
    if (get_pcvar_num(pInterrupt) && rndStarted)
        {
            static 
    Float:usrOrigin[3]
            
    pev(idpev_originusrOrigin)
            
            static 
    tr
            engfunc
    (EngFunc_TraceLineusrOriginentOrigin1, -1tr)
            
            static 
    Float:fFraction
            get_tr2
    (trTR_flFractionfFraction)
            
            if (
    fFraction != 1.0)
                
    remove_hook(id)
        }
        
        
    // If cvar sv_hooksky is 0 and hook is in the sky remove it!
        
    new iContents engfunc(EngFunc_PointContentsentOrigin)
        if (!
    get_pcvar_num(pHookSky) && iContents == CONTENTS_SKY)
        {
            if(
    get_pcvar_num(pSound))
                
    emit_sound(HookEntCHAN_STATIC"weapons/xbow_hit2.wav"1.0ATTN_NORM0PITCH_NORM)
            
    remove_hook(id)
        }
        
        return 
    PLUGIN_HANDLED
    }

    public 
    gotohook(param[])
    {
        new 
    id param[0]
        new 
    HookEnt param[1]

        if (!
    is_user_alive(id) || !pev_valid(HookEnt) || !pev_valid(id))
        {
            
    remove_task(id 856)
            return 
    PLUGIN_HANDLED
        
    }
        
    // If the round isnt started velocity is just 0
        
    static Float:fVelocity[3]
        
    fVelocity Float:{0.00.01.0}
        
        
    // If the round is started and player is hooked we can set the user velocity!
        
    if (rndStarted && gHooked[id])
        {
            static 
    Float:fHookOrigin[3], Float:fUsrOrigin[3], Float:fDist
            pev
    (HookEntpev_originfHookOrigin)
            
    pev(idpev_originfUsrOrigin)
            
            
    fDist vector_distance(fHookOriginfUsrOrigin)
            
            if (
    fDist >= 30.0)
            {
                new 
    Float:fSpeed get_pcvar_float(pSpeed)
                
                
    fSpeed *= 0.52
                
                fVelocity
    [0] = (fHookOrigin[0] - fUsrOrigin[0]) * (2.0 fSpeed) / fDist
                fVelocity
    [1] = (fHookOrigin[1] - fUsrOrigin[1]) * (2.0 fSpeed) / fDist
                fVelocity
    [2] = (fHookOrigin[2] - fUsrOrigin[2]) * (2.0 fSpeed) / fDist
            
    }
        }
        
    // Set the velocity
        
    set_pev(idpev_velocityfVelocity)
        
        return 
    PLUGIN_HANDLED
    }
            
    public 
    throw_hook(id)
    {
        
    // Get origin and angle for the hook
        
    static Float:fOrigin[3], Float:fAngle[3],Float:fvAngle[3]
        static 
    Float:fStart[3]
        
    pev(idpev_originfOrigin)
        
        
    pev(idpev_anglesfAngle)
        
    pev(idpev_v_anglefvAngle)
        
        if (
    get_pcvar_num(pInstant))
        {
            
    get_user_hitpoint(idfStart)
            
            if (
    engfunc(EngFunc_PointContentsfStart) != CONTENTS_SKY)
            {
                static 
    Float:fSize[3]
                
    pev(idpev_sizefSize)
                
                
    fOrigin[0] = fStart[0] + floatcos(fvAngle[1], degrees) * (-10.0 fSize[0])
                
    fOrigin[1] = fStart[1] + floatsin(fvAngle[1], degrees) * (-10.0 fSize[1])
                
    fOrigin[2] = fStart[2]
            }
            else
                
    xs_vec_copy(fStartfOrigin)
        }

        
        
    // Make the hook!
        
    Hook[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
            
        if (
    Hook[id])
        {
            
    // Player cant throw hook now
            
    canThrowHook[id] = false
            
            
    static const Float:fMins[3] = {-2.840000, -14.180000, -2.840000}
            static const 
    Float:fMaxs[3] = {2.8400000.0200002.840000}
            
            
    //Set some Data
            
    set_pev(Hook[id], pev_classname"Hook")
            
            
    engfunc(EngFunc_SetModelHook[id], "models/rpgrocket.mdl")
            
    engfunc(EngFunc_SetOriginHook[id], fOrigin)
            
    engfunc(EngFunc_SetSizeHook[id], fMinsfMaxs)        
            
            
    //set_pev(Hook[id], pev_mins, fMins)
            //set_pev(Hook[id], pev_maxs, fMaxs)
            
            
    set_pev(Hook[id], pev_anglesfAngle)
            
            
    set_pev(Hook[id], pev_solid2)
            
    set_pev(Hook[id], pev_movetype5)
            
    set_pev(Hook[id], pev_ownerid)
            
            
    //Set hook velocity
            
    static Float:fForward[3], Float:Velocity[3]
            new 
    Float:fSpeed get_pcvar_float(pThrowSpeed)
            
            
    engfunc(EngFunc_MakeVectorsfvAngle)
            
    global_get(glb_v_forwardfForward)
            
            
    Velocity[0] = fForward[0] * fSpeed
            Velocity
    [1] = fForward[1] * fSpeed
            Velocity
    [2] = fForward[2] * fSpeed
            
            set_pev
    (Hook[id], pev_velocityVelocity)

            
    // Make the line between Hook and Player
            
    message_begin_f(MSG_BROADCASTSVC_TEMPENTITYFloat:{0.00.00.0}, 0)
            if (
    get_pcvar_num(pInstant))
            {
                
    write_byte(1// TE_BEAMPOINT
                
    write_short(id// Startent
                
    write_coord_f(fStart[0]) // End pos
                
    write_coord_f(fStart[1])
                
    write_coord_f(fStart[2])
            }
            else
            {
                
    write_byte(8// TE_BEAMENTS
                
    write_short(id// Start Ent
                
    write_short(Hook[id]) // End Ent
            
    }
            
    write_short(sprBeam// Sprite
            
    write_byte(1// StartFrame
            
    write_byte(1// FrameRate
            
    write_byte(600// Life
            
    write_byte(get_pcvar_num(pWidth)) // Width
            
    write_byte(get_pcvar_num(pHookNoise)) // Noise
            // Colors now
            
    if (get_pcvar_num(pColor))
            {
                if (
    get_user_team(id) == 1// Terrorist
                
    {
                    
    write_byte(255// R
                    
    write_byte(0)    // G
                    
    write_byte(0)    // B
                
    }
                
    #if defined _cstrike_included
                
    else if(cs_get_user_vip(id)) // vip for cstrike
                
    {
                    
    write_byte(0)    // R
                    
    write_byte(255)    // G
                    
    write_byte(0)    // B
                
    }
                
    #endif // _cstrike_included
                
    else if(get_user_team(id) == 2// CT
                
    {
                    
    write_byte(0)    // R
                    
    write_byte(0)    // G
                    
    write_byte(255)    // B
                
    }
                else
                {
                    
    write_byte(255// R
                    
    write_byte(255// G
                    
    write_byte(255// B
                
    }
            }
            else
            {
                
    write_byte(255// R
                
    write_byte(255// G
                
    write_byte(255// B
            
    }
            
    write_byte(192// Brightness
            
    write_byte(0// Scroll speed
            
    message_end()
            
            if (
    get_pcvar_num(pSound) && !get_pcvar_num(pInstant))
                
    emit_sound(idCHAN_BODY"weapons/xbow_fire1.wav"VOL_NORMATTN_NORM0PITCH_HIGH)
            
            static 
    TaskData[2]
            
    TaskData[0] = id
            TaskData
    [1] = Hook[id]
            
            
    set_task(0.1"hookthink"id 890TaskData2"b")
        }
        else
            
    client_print(idprint_chat"Can't create hook")
    }

    public 
    remove_hook(id)
    {
        
    //Player can now throw hooks
        
    canThrowHook[id] = true
        
        
    // Remove the hook if it is valid
        
    if (pev_valid(Hook[id]))
            
    engfunc(EngFunc_RemoveEntityHook[id])
        
    Hook[id] = 0
        
        
    // Remove the line between user and hook
        
    if (is_user_connected(id))
        {
            
    message_begin(MSG_BROADCASTSVC_TEMPENTITY, {0,0,0}, id)
            
    write_byte(99// TE_KILLBEAM
            
    write_short(id// entity
            
    message_end()
        }
        
        
    // Player is not hooked anymore
        
    gHooked[id] = false
        
    return 1
    }

    public 
    give_hook(idlevelcid)
    {
        if (!
    cmd_access(id ,levelcid1))
            return 
    PLUGIN_HANDLED
            
        
    if (!get_pcvar_num(pAdmin))
        {
            
    console_print(id"[Hook] Sadece-Admin Modu Suan Kapali !")
            return 
    PLUGIN_HANDLED
        
    }
        
        static 
    szTarget[32]
        
    read_argv(1szTargetcharsmax(szTarget))
        
        new 
    iUsrId cmd_target(idszTarget)
        
        if (!
    iUsrId)
            return 
    PLUGIN_HANDLED
            
        
    static szName[32]
        
    get_user_name(iUsrIdszNamecharsmax(szName))
        
        if (!
    g_bHookAllowed[iUsrId])
        {
            
    g_bHookAllowed[iUsrId] = true
            
            console_print
    (id"[Hook] %s Adli Kisiye Hook Verdin !"szName)
        }
        else
            
    console_print(id"[Hook] %s Adli Kisi Zaten Hook'a Sahip !"szName)
        
        return 
    PLUGIN_HANDLED
    }

    public 
    take_hook(idlevelcid)
    {
        if (!
    cmd_access(id ,levelcid1))
            return 
    PLUGIN_HANDLED
        
        
    if (!get_pcvar_num(pAdmin))
        {
            
    console_print(id"[Hook] Sadece-Admin Modu Suan Kapali !")
            return 
    PLUGIN_HANDLED
        
    }
            
        static 
    szTarget[32]
        
    read_argv(1szTargetcharsmax(szTarget))
        
        new 
    iUsrId cmd_target(idszTarget)
        
        if (!
    iUsrId)
            return 
    PLUGIN_HANDLED
            
        
    static szName[32]
        
    get_user_name(iUsrIdszNamecharsmax(szName))
        
        if (
    g_bHookAllowed[iUsrId])
        {
            
    g_bHookAllowed[iUsrId] = false
            
            console_print
    (id"[Hook] %s Adli Kisiden Hook Atma Ozelligini Aldiniz !"szName)
        }
        else
            
    console_print(id"[Hook] %s Adli Kisi Zaten Hook'a Sahip Degil !"szName)
        
        return 
    PLUGIN_HANDLED
    }

    // Stock by Chaosphere
    stock get_user_hitpoint(idFloat:hOrigin[3])
    {
        if (!
    is_user_alive(id))
            return 
    0
        
        
    static Float:fOrigin[3], Float:fvAngle[3], Float:fvOffset[3], Float:fvOrigin[3], Float:feOrigin[3]
        static 
    Float:fTemp[3]
        
        
    pev(idpev_originfOrigin)
        
    pev(idpev_v_anglefvAngle)
        
    pev(idpev_view_ofsfvOffset)
        
        
    xs_vec_add(fOriginfvOffsetfvOrigin)
        
        
    engfunc(EngFunc_AngleVectorsfvAnglefeOriginfTempfTemp)
        
        
    xs_vec_mul_scalar(feOrigin8192.0feOrigin)
        
    xs_vec_add(fvOriginfeOriginfeOrigin)
        
        static 
    tr
        engfunc
    (EngFunc_TraceLinefvOriginfeOrigin0idtr)
        
    get_tr2(trTR_vecEndPoshOrigin)
        
    //global_get(glb_trace_endpos, hOrigin)
        
        
    return 1
    }

    stock statusMsg(idszMsg[], {Float,_}:...)
    {
        static 
    iStatusText
        
    if (!iStatusText)
            
    iStatusText get_user_msgid("StatusText")
        
        static 
    szBuffer[512]
        
    vformat(szBuffercharsmax(szBuffer), szMsg3)
        
        
    message_begin((id == 0) ? MSG_ALL MSG_ONEiStatusText_id)
        
    write_byte(0// Unknown
        
    write_string(szBuffer// Message
        
    message_end()
        
        return 
    1

    Konu akcaliberkk tarafından (04-12-12 Saat 18:22 ) değiştirilmiştir.

    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.



    To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.


    CS:GO ve CS 1.6 için ücretli eklenti yapılır.
    Plugin yazmak isteyenlere yardımcı olabilirim.
    Skype adresimden ulaşabilirsiniz:
    destek_596
    Steam: http://steamcommunity.com/id/ca-nemesis/


  2. #2
    er er
    Üyelik tarihi
    Nov 2012
    Mesajlar
    33
    Bahsedildi
    0 Mesaj
    Etiketlenmiş
    0 Konu
    Tecrübe Puanı
    13

    Standart Cevap: İSTEK ! Sadece Ct de hook basabilmek

    Alıntı akcaliberkk Nickli Üyeden Alıntı Mesajı göster
    PHP- Kodu:
    /***********************************************************************************\
    *    Hook By P34nut    *    Thanks to Joka69, Chaosphere for testing and stuff!        *
    *************************************************************************************
    * Commands/ bindings:           
    *    +hook to throw the hook  
    *    -hook to delete your hook

    * Cvars:
    *    sv_hook - Turns hook on or off 
    *    sv_hookthrowspeed - Throw speed (default: 1000)
    *    sv_hookspeed - Speed to hook (default: 300)
    *    sv_hookwidth - Width of the hook (default: 32)
    *    sv_hooksound - Sounds of the hook on or off (default: 1)
    *    sv_hookcolor - The color of the hook 0 is white and 1 is team color (default: 1)
    *    sv_hookplayers - If set 1 you can hook on players (default: 0)
    *    sv_hookinterrupt - Remove the hook when something comes in its line (default: 0)
    *    sv_hookadminonly - Hook for admin only (default: 0)
    *    sv_hooksky - If set 1 you can hook in the sky (default: 0)
    *    sv_hookopendoors - If set 1 you can open doors with the hook (default: 1)
    *    sv_hookbuttons - If set 1 you can use buttons with the hook (default: 0)
    *    sv_hookpickweapons - If set 1 you can pickup weapons with the hook (default: 1)
    *    sv_hookhostflollow - If set 1 you can make hostages follow you (default 1)
    *    sv_hookinstant - Hook doesnt throw (default: 0)
    *    sv_hooknoise - adds some noise to the hook line (default: 0)
    *    sv_hookmax - Maximun numbers of hooks a player can use in 1 round
    *           - 0 for infinitive hooks (default: 0)
    *    sv_hookdelay - delay on the start of each round before a player can hook
    *                 - 0.0 for no delay (default: 0.0)
    *
    * ChangeLog:
    *    1.0: Release
    *    1.5: added cvars:
    *        sv_hooknoise
    *        sv_hookmax
    *        sv_hookdelay
    *        public cvar: sv_amxxhookmod
    *         added commands:
    *        amx_givehook <username>
    *        amx_takehook <username>
    *
    \***********************************************************************************/

    // Players admin level
    #define ADMINLEVEL ADMIN_RCON

    #include <amxmodx>
    #include <amxmisc>
    #include <fakemeta>
    #include <cstrike>
    #include <xs>

    #define message_begin_f(%1,%2,%3,%4) engfunc(EngFunc_MessageBegin, %1, %2, %3, %4)
    #define write_coord_f(%1) engfunc(EngFunc_WriteCoord, %1)

    //Cvars
    new pHookpThrowSpeedpSpeedpWidthpSoundpColor
    new pInterruptpAdminpHookSkypOpenDoorspPlayers
    new pUseButtonspHostagepWeaponspInstantpHookNoise
    new pMaxHookspRndStartDelaypCtOnly;
    // Sprite
    new sprBeam

    // Players hook entity
    new Hook[33]

    // MaxPlayers
    new gMaxPlayers

    // some booleans
    new bool:gHooked[33]
    new 
    bool:canThrowHook[33]
    new 
    bool:rndStarted

    // Player Spawn
    new bool:gRestart[33] = {false, ...}
    new 
    bool:gUpdate[33] = {false, ...}

    new 
    gHooksUsed[33// Used with sv_hookmax
    new bool:g_bHookAllowed[33// Used with sv_hookadminonly

    public plugin_init()
    {
        
    register_plugin("Hook""1.5""P34nut")
        
        
    // Hook commands
        
    register_clcmd("+hook""make_hook")
        
    register_clcmd("-hook""del_hook")
        
        
    register_concmd("amx_givehook""give_hook"ADMINLEVEL"<Username> - Give somebody access to the hook")
        
    register_concmd("amx_takehook""take_hook"ADMINLEVEL"<UserName> - Take away somebody his access to the hook")
        
        
    // Events for roundstart
        
    register_event("HLTV""round_bstart""a""1=0""2=0")
        
    register_logevent("round_estart"2"1=Round_Start"
        
        
    // Player spawn stuff
        
    register_event("TextMsg""Restart""a""2=#Game_will_restart_in")
        
    register_clcmd("fullupdate""Update"
        
    register_event("ResetHUD""ResetHUD""b")
        
        
    // Register cvars
        
    register_cvar("sv_amxxhookmod",  "version 1.5"FCVAR_SERVER// yay public cvar
        
    pHook =     register_cvar("sv_hook""1")
        
    pThrowSpeed =     register_cvar("sv_hookthrowspeed""4000")
        
    pSpeed =     register_cvar("sv_hookspeed""600")
        
    pWidth =     register_cvar("sv_hookwidth""16")
        
    pSound =     register_cvar("sv_hooksound""1")
        
    pColor =    register_cvar("sv_hookcolor""0")
        
    pPlayers =     register_cvar("sv_hookplayers""0")
        
    pInterrupt =     register_cvar("sv_hookinterrupt""0")
        
    pAdmin =     register_cvar("sv_hookadminonly",  "1")
        
    pHookSky =     register_cvar("sv_hooksky""1")
        
    pOpenDoors =     register_cvar("sv_hookopendoors""1")
        
    pUseButtons =     register_cvar("sv_hookusebuttons""1")
        
    pHostage =     register_cvar("sv_hookhostflollow""1")
        
    pWeapons =    register_cvar("sv_hookpickweapons""1")
        
    pInstant =    register_cvar("sv_hookinstant""1")
        
    pHookNoise =     register_cvar("sv_hooknoise""0")
        
    pMaxHooks =     register_cvar("sv_hookmax""0")
        
    pRndStartDelay register_cvar("sv_hookrndstartdelay""0.0")
        
    pCtOnly register_cvar("sv_hookctonly""1")
        
        
        
    // Touch forward
        
    register_forward(FM_Touch"fwTouch")
        
        
    // Get maxplayers
        
    gMaxPlayers get_maxplayers()
    }

    public 
    plugin_precache()
    {
        
    // Hook Model
        
    engfunc(EngFunc_PrecacheModel"models/rpgrocket.mdl")
        
        
    // Hook Beam
        
    sprBeam engfunc(EngFunc_PrecacheModel"sprites/zbeam4.spr")
        
        
    // Hook Sounds
        
    engfunc(EngFunc_PrecacheSound"weapons/xbow_hit1.wav"// good hit
        
    engfunc(EngFunc_PrecacheSound"weapons/xbow_hit2.wav"// wrong hit
        
        
    engfunc(EngFunc_PrecacheSound"weapons/xbow_hitbod1.wav"// player hit
        
        
    engfunc(EngFunc_PrecacheSound"weapons/xbow_fire1.wav"// deploy
    }


    public 
    make_hook(id)
    {
        
        if (
    get_pcvar_num(pHook) && is_user_alive(id) && canThrowHook[id] && !gHooked[id]) {        
            if (
    get_pcvar_num(pAdmin))
            {
                
    // Only the admins can throw the hook
                // if(is_user_admin(id)) { <- does not work...        
                
    if (!(get_user_flags(id) & ADMINLEVEL) && !g_bHookAllowed[id])
                {
                    
    // Show a message
                    
    client_print(idprint_chat"[Hook] Bunu Kullanmak Icin Yetkiniz Yok")
                    
                    return 
    PLUGIN_HANDLED
                
    }
            }
            if(
    get_pcvar_num(pCtOnly)) {
                if(
    get_user_team(id) != 2) {
                    
    client_print(id,print_chat,"[Hook] Sadece CT Takimi Hook Kullanabilir")
                    return 
    PLUGIN_HANDLED
                
    }
            }
            new 
    iMaxHooks get_pcvar_num(pMaxHooks)
            if (
    iMaxHooks 0)
            {
                if (
    gHooksUsed[id] >= iMaxHooks)
                {
                    
    client_print(idprint_chat"[Hook] Hook Limitin Doldu Artik Hook Kullanamazsin !")
                    
    statusMsg(id"[Hook] %d of %d hooks used."gHooksUsed[id], get_pcvar_num(pMaxHooks))
                    
                    return 
    PLUGIN_HANDLED
                
    }
                else 
                {
                    
    gHooksUsed[id]++
                    
    statusMsg(id"[Hook] %d of %d hooks used."gHooksUsed[id], get_pcvar_num(pMaxHooks))
                }
            }
            new 
    Float:fDelay get_pcvar_float(pRndStartDelay)
            if (
    fDelay && !rndStarted)
                
    client_print(idprint_chat"[Hook] Ilk %0.0f Saniye Boyunca Hook Kullanamazsin !"fDelay)
                
            
    throw_hook(id)
        }
        return 
    PLUGIN_HANDLED
    }

    public 
    del_hook(id)
    {
        
    // Remove players hook
        
    if (!canThrowHook[id])
            
    remove_hook(id)
        
        return 
    PLUGIN_HANDLED
    }

    public 
    round_bstart()
    {
        
    // Round is not started anymore
        
    if (rndStarted)
            
    rndStarted false
        
        
    // Remove all hooks
        
    for (new 1<= gMaxPlayersi++)
        {
            if (
    is_user_connected(i))
            {
                if(!
    canThrowHook[i])
                    
    remove_hook(i)
            }
        }
    }

    public 
    round_estart()
    {
        new 
    Float:fDelay get_pcvar_float(pRndStartDelay)
        if (
    fDelay 0.0)
            
    set_task(fDelay"rndStartDelay")
        else
        {
            
    // Round is started...
            
    if (!rndStarted)
                
    rndStarted true
        
    }
    }

    public 
    rndStartDelay()
    {
        if (!
    rndStarted)
            
    rndStarted true
    }

    public 
    Restart()
    {
        for (new 
    id 0id gMaxPlayersid++)
        {
            if (
    is_user_connected(id))
                
    gRestart[id] = true
        
    }
    }

    public 
    Update(id)
    {
        if (!
    gUpdate[id])
            
    gUpdate[id] = true
        
        
    return PLUGIN_CONTINUE
    }

    public 
    ResetHUD(id)
    {
        if (
    gRestart[id])
        {
            
    gRestart[id] = false
            
    return
        }
        if (
    gUpdate[id])
        {
            
    gUpdate[id] = false
            
    return
        }
        if (
    gHooked[id])
        {
            
    remove_hook(id)
        }
        if (
    get_pcvar_num(pMaxHooks) > 0)
        {
            
    gHooksUsed[id] = 0
            statusMsg
    (0"[Hook] 0 of %d hooks used."get_pcvar_num(pMaxHooks))
        }
    }

    public 
    fwTouch(ptrptd)
    {
        if (!
    pev_valid(ptr))
            return 
    FMRES_IGNORED
        
        
    new id pev(ptrpev_owner)
        
        
    // Get classname
        
    static szPtrClass[32]    
        
    pev(ptrpev_classnameszPtrClasscharsmax(szPtrClass))
        
        if (
    equali(szPtrClass"Hook"))
        {        
            static 
    Float:fOrigin[3]
            
    pev(ptrpev_originfOrigin)
            
            if (
    pev_valid(ptd))
            {
                static 
    szPtdClass[32]
                
    pev(ptdpev_classnameszPtdClasscharsmax(szPtdClass))
                            
                if (!
    get_pcvar_num(pPlayers) && /*equali(szPtdClass, "player")*/ is_user_alive(ptd))
                {
                    
    // Hit a player
                    
    if (get_pcvar_num(pSound))
                        
    emit_sound(ptrCHAN_STATIC"weapons/xbow_hitbod1.wav"1.0ATTN_NORM0PITCH_NORM)
                    
    remove_hook(id)
                    
                    return 
    FMRES_HANDLED
                
    }
                else if (
    equali(szPtdClass"hostage_entity"))
                {
                    
    // Makes an hostage follow
                    
    if (get_pcvar_num(pHostage) && get_user_team(id) == 2)
                    {                    
                        
    //cs_set_hostage_foll(ptd, (cs_get_hostage_foll(ptd) == id) ? 0 : id)
                        // With the use function we have the sounds!
                        
    dllfunc(DLLFunc_Useptdid)
                    }
                    if (!
    get_pcvar_num(pPlayers))
                    {
                        if(
    get_pcvar_num(pSound))
                            
    emit_sound(ptrCHAN_STATIC"weapons/xbow_hitbod1.wav"1.0ATTN_NORM0PITCH_NORM)
                        
    remove_hook(id)
                    }
                    return 
    FMRES_HANDLED
                
    }
                else if (
    get_pcvar_num(pOpenDoors) && equali(szPtdClass"func_door") || equali(szPtdClass"func_door_rotating"))
                {
                    
    // Open doors
                    // Double doors tested in de_nuke and de_wallmart
                    
    static szTargetName[32]
                    
    pev(ptdpev_targetnameszTargetNamecharsmax(szTargetName))
                    if (
    strlen(szTargetName) > 0)
                    {    
                        static 
    ent
                        
    while ((ent engfunc(EngFunc_FindEntityByStringent"target"szTargetName)) > 0)
                        {
                            static 
    szEntClass[32]
                            
    pev(entpev_classnameszEntClasscharsmax(szEntClass))
                            
                            if (
    equali(szEntClass"trigger_multiple"))
                            {
                                
    dllfunc(DLLFunc_Touchentid)
                                goto 
    stopdoors // No need to touch anymore
                            
    }
                        }
                    }
                    
                    
    // No double doors.. just touch it
                    
    dllfunc(DLLFunc_Touchptdid)
    stopdoors:                
                }
                else if (
    get_pcvar_num(pUseButtons) && equali(szPtdClass"func_button"))
                {
                    if (
    pev(ptdpev_spawnflags) & SF_BUTTON_TOUCH_ONLY)
                        
    dllfunc(DLLFunc_Touchptdid// Touch only
                    
    else            
                        
    dllfunc(DLLFunc_Useptdid// Use Buttons            
                
    }
            }
            
            
    // If cvar sv_hooksky is 0 and hook is in the sky remove it!
            
    new iContents engfunc(EngFunc_PointContentsfOrigin)
            if (!
    get_pcvar_num(pHookSky) && iContents == CONTENTS_SKY)
            {
                if(
    get_pcvar_num(pSound))
                    
    emit_sound(ptrCHAN_STATIC"weapons/xbow_hit2.wav"1.0ATTN_NORM0PITCH_NORM)
                
    remove_hook(id)
                return 
    FMRES_HANDLED
            
    }
            
            
    // Pick up weapons..
            
    if (get_pcvar_num(pWeapons))
            {
                static 
    ent
                
    while ((ent engfunc(EngFunc_FindEntityInSphereentfOrigin15.0)) > 0)
                {
                    static 
    szentClass[32]
                    
    pev(entpev_classnameszentClasscharsmax(szentClass))
                    
                    if (
    equali(szentClass"weaponbox") || equali(szentClass"armoury_entity"))
                        
    dllfunc(DLLFunc_Touchentid)
                }
            }
            
            
    // Player is now hooked
            
    gHooked[id] = true
            
    // Play sound
            
    if (get_pcvar_num(pSound))
                
    emit_sound(ptrCHAN_STATIC"weapons/xbow_hit1.wav"1.0ATTN_NORM0PITCH_NORM)
            
            
    // Make some sparks :D
            
    message_begin_f(MSG_BROADCASTSVC_TEMPENTITYfOrigin0)
            
    write_byte(9// TE_SPARKS
            
    write_coord_f(fOrigin[0]) // Origin
            
    write_coord_f(fOrigin[1])
            
    write_coord_f(fOrigin[2])
            
    message_end()        
            
            
    // Stop the hook from moving
            
    set_pev(ptrpev_velocityFloat:{0.00.00.0})
            
    set_pev(ptrpev_movetypeMOVETYPE_NONE)
            
            
    //Task
            
    if (!task_exists(id 856))
            { 
                static 
    TaskData[2]
                
    TaskData[0] = id
                TaskData
    [1] = ptr
                gotohook
    (TaskData)
                
                
    set_task(0.1"gotohook"id 856TaskData2"b")
            }
        }
        return 
    FMRES_HANDLED
    }

    public 
    hookthink(param[])
    {
        new 
    id param[0]
        new 
    HookEnt param[1]
        
        if (!
    is_user_alive(id) || !pev_valid(HookEnt) || !pev_valid(id))
        {
            
    remove_task(id 890)
            return 
    PLUGIN_HANDLED
        
    }
        
        
        static 
    Float:entOrigin[3]
        
    pev(HookEntpev_originentOrigin)
        
        
    // If user is behind a box or something.. remove it
        // only works if sv_interrupt 1 or higher is
        
    if (get_pcvar_num(pInterrupt) && rndStarted)
        {
            static 
    Float:usrOrigin[3]
            
    pev(idpev_originusrOrigin)
            
            static 
    tr
            engfunc
    (EngFunc_TraceLineusrOriginentOrigin1, -1tr)
            
            static 
    Float:fFraction
            get_tr2
    (trTR_flFractionfFraction)
            
            if (
    fFraction != 1.0)
                
    remove_hook(id)
        }
        
        
    // If cvar sv_hooksky is 0 and hook is in the sky remove it!
        
    new iContents engfunc(EngFunc_PointContentsentOrigin)
        if (!
    get_pcvar_num(pHookSky) && iContents == CONTENTS_SKY)
        {
            if(
    get_pcvar_num(pSound))
                
    emit_sound(HookEntCHAN_STATIC"weapons/xbow_hit2.wav"1.0ATTN_NORM0PITCH_NORM)
            
    remove_hook(id)
        }
        
        return 
    PLUGIN_HANDLED
    }

    public 
    gotohook(param[])
    {
        new 
    id param[0]
        new 
    HookEnt param[1]

        if (!
    is_user_alive(id) || !pev_valid(HookEnt) || !pev_valid(id))
        {
            
    remove_task(id 856)
            return 
    PLUGIN_HANDLED
        
    }
        
    // If the round isnt started velocity is just 0
        
    static Float:fVelocity[3]
        
    fVelocity Float:{0.00.01.0}
        
        
    // If the round is started and player is hooked we can set the user velocity!
        
    if (rndStarted && gHooked[id])
        {
            static 
    Float:fHookOrigin[3], Float:fUsrOrigin[3], Float:fDist
            pev
    (HookEntpev_originfHookOrigin)
            
    pev(idpev_originfUsrOrigin)
            
            
    fDist vector_distance(fHookOriginfUsrOrigin)
            
            if (
    fDist >= 30.0)
            {
                new 
    Float:fSpeed get_pcvar_float(pSpeed)
                
                
    fSpeed *= 0.52
                
                fVelocity
    [0] = (fHookOrigin[0] - fUsrOrigin[0]) * (2.0 fSpeed) / fDist
                fVelocity
    [1] = (fHookOrigin[1] - fUsrOrigin[1]) * (2.0 fSpeed) / fDist
                fVelocity
    [2] = (fHookOrigin[2] - fUsrOrigin[2]) * (2.0 fSpeed) / fDist
            
    }
        }
        
    // Set the velocity
        
    set_pev(idpev_velocityfVelocity)
        
        return 
    PLUGIN_HANDLED
    }
            
    public 
    throw_hook(id)
    {
        
    // Get origin and angle for the hook
        
    static Float:fOrigin[3], Float:fAngle[3],Float:fvAngle[3]
        static 
    Float:fStart[3]
        
    pev(idpev_originfOrigin)
        
        
    pev(idpev_anglesfAngle)
        
    pev(idpev_v_anglefvAngle)
        
        if (
    get_pcvar_num(pInstant))
        {
            
    get_user_hitpoint(idfStart)
            
            if (
    engfunc(EngFunc_PointContentsfStart) != CONTENTS_SKY)
            {
                static 
    Float:fSize[3]
                
    pev(idpev_sizefSize)
                
                
    fOrigin[0] = fStart[0] + floatcos(fvAngle[1], degrees) * (-10.0 fSize[0])
                
    fOrigin[1] = fStart[1] + floatsin(fvAngle[1], degrees) * (-10.0 fSize[1])
                
    fOrigin[2] = fStart[2]
            }
            else
                
    xs_vec_copy(fStartfOrigin)
        }

        
        
    // Make the hook!
        
    Hook[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
            
        if (
    Hook[id])
        {
            
    // Player cant throw hook now
            
    canThrowHook[id] = false
            
            
    static const Float:fMins[3] = {-2.840000, -14.180000, -2.840000}
            static const 
    Float:fMaxs[3] = {2.8400000.0200002.840000}
            
            
    //Set some Data
            
    set_pev(Hook[id], pev_classname"Hook")
            
            
    engfunc(EngFunc_SetModelHook[id], "models/rpgrocket.mdl")
            
    engfunc(EngFunc_SetOriginHook[id], fOrigin)
            
    engfunc(EngFunc_SetSizeHook[id], fMinsfMaxs)        
            
            
    //set_pev(Hook[id], pev_mins, fMins)
            //set_pev(Hook[id], pev_maxs, fMaxs)
            
            
    set_pev(Hook[id], pev_anglesfAngle)
            
            
    set_pev(Hook[id], pev_solid2)
            
    set_pev(Hook[id], pev_movetype5)
            
    set_pev(Hook[id], pev_ownerid)
            
            
    //Set hook velocity
            
    static Float:fForward[3], Float:Velocity[3]
            new 
    Float:fSpeed get_pcvar_float(pThrowSpeed)
            
            
    engfunc(EngFunc_MakeVectorsfvAngle)
            
    global_get(glb_v_forwardfForward)
            
            
    Velocity[0] = fForward[0] * fSpeed
            Velocity
    [1] = fForward[1] * fSpeed
            Velocity
    [2] = fForward[2] * fSpeed
            
            set_pev
    (Hook[id], pev_velocityVelocity)

            
    // Make the line between Hook and Player
            
    message_begin_f(MSG_BROADCASTSVC_TEMPENTITYFloat:{0.00.00.0}, 0)
            if (
    get_pcvar_num(pInstant))
            {
                
    write_byte(1// TE_BEAMPOINT
                
    write_short(id// Startent
                
    write_coord_f(fStart[0]) // End pos
                
    write_coord_f(fStart[1])
                
    write_coord_f(fStart[2])
            }
            else
            {
                
    write_byte(8// TE_BEAMENTS
                
    write_short(id// Start Ent
                
    write_short(Hook[id]) // End Ent
            
    }
            
    write_short(sprBeam// Sprite
            
    write_byte(1// StartFrame
            
    write_byte(1// FrameRate
            
    write_byte(600// Life
            
    write_byte(get_pcvar_num(pWidth)) // Width
            
    write_byte(get_pcvar_num(pHookNoise)) // Noise
            // Colors now
            
    if (get_pcvar_num(pColor))
            {
                if (
    get_user_team(id) == 1// Terrorist
                
    {
                    
    write_byte(255// R
                    
    write_byte(0)    // G
                    
    write_byte(0)    // B
                
    }
                
    #if defined _cstrike_included
                
    else if(cs_get_user_vip(id)) // vip for cstrike
                
    {
                    
    write_byte(0)    // R
                    
    write_byte(255)    // G
                    
    write_byte(0)    // B
                
    }
                
    #endif // _cstrike_included
                
    else if(get_user_team(id) == 2// CT
                
    {
                    
    write_byte(0)    // R
                    
    write_byte(0)    // G
                    
    write_byte(255)    // B
                
    }
                else
                {
                    
    write_byte(255// R
                    
    write_byte(255// G
                    
    write_byte(255// B
                
    }
            }
            else
            {
                
    write_byte(255// R
                
    write_byte(255// G
                
    write_byte(255// B
            
    }
            
    write_byte(192// Brightness
            
    write_byte(0// Scroll speed
            
    message_end()
            
            if (
    get_pcvar_num(pSound) && !get_pcvar_num(pInstant))
                
    emit_sound(idCHAN_BODY"weapons/xbow_fire1.wav"VOL_NORMATTN_NORM0PITCH_HIGH)
            
            static 
    TaskData[2]
            
    TaskData[0] = id
            TaskData
    [1] = Hook[id]
            
            
    set_task(0.1"hookthink"id 890TaskData2"b")
        }
        else
            
    client_print(idprint_chat"Can't create hook")
    }

    public 
    remove_hook(id)
    {
        
    //Player can now throw hooks
        
    canThrowHook[id] = true
        
        
    // Remove the hook if it is valid
        
    if (pev_valid(Hook[id]))
            
    engfunc(EngFunc_RemoveEntityHook[id])
        
    Hook[id] = 0
        
        
    // Remove the line between user and hook
        
    if (is_user_connected(id))
        {
            
    message_begin(MSG_BROADCASTSVC_TEMPENTITY, {0,0,0}, id)
            
    write_byte(99// TE_KILLBEAM
            
    write_short(id// entity
            
    message_end()
        }
        
        
    // Player is not hooked anymore
        
    gHooked[id] = false
        
    return 1
    }

    public 
    give_hook(idlevelcid)
    {
        if (!
    cmd_access(id ,levelcid1))
            return 
    PLUGIN_HANDLED
            
        
    if (!get_pcvar_num(pAdmin))
        {
            
    console_print(id"[Hook] Sadece-Admin Modu Suan Kapali !")
            return 
    PLUGIN_HANDLED
        
    }
        
        static 
    szTarget[32]
        
    read_argv(1szTargetcharsmax(szTarget))
        
        new 
    iUsrId cmd_target(idszTarget)
        
        if (!
    iUsrId)
            return 
    PLUGIN_HANDLED
            
        
    static szName[32]
        
    get_user_name(iUsrIdszNamecharsmax(szName))
        
        if (!
    g_bHookAllowed[iUsrId])
        {
            
    g_bHookAllowed[iUsrId] = true
            
            console_print
    (id"[Hook] %s Adli Kisiye Hook Verdin !"szName)
        }
        else
            
    console_print(id"[Hook] %s Adli Kisi Zaten Hook'a Sahip !"szName)
        
        return 
    PLUGIN_HANDLED
    }

    public 
    take_hook(idlevelcid)
    {
        if (!
    cmd_access(id ,levelcid1))
            return 
    PLUGIN_HANDLED
        
        
    if (!get_pcvar_num(pAdmin))
        {
            
    console_print(id"[Hook] Sadece-Admin Modu Suan Kapali !")
            return 
    PLUGIN_HANDLED
        
    }
            
        static 
    szTarget[32]
        
    read_argv(1szTargetcharsmax(szTarget))
        
        new 
    iUsrId cmd_target(idszTarget)
        
        if (!
    iUsrId)
            return 
    PLUGIN_HANDLED
            
        
    static szName[32]
        
    get_user_name(iUsrIdszNamecharsmax(szName))
        
        if (
    g_bHookAllowed[iUsrId])
        {
            
    g_bHookAllowed[iUsrId] = false
            
            console_print
    (id"[Hook] %s Adli Kisiden Hook Atma Ozelligini Aldiniz !"szName)
        }
        else
            
    console_print(id"[Hook] %s Adli Kisi Zaten Hook'a Sahip Degil !"szName)
        
        return 
    PLUGIN_HANDLED
    }

    // Stock by Chaosphere
    stock get_user_hitpoint(idFloat:hOrigin[3])
    {
        if (!
    is_user_alive(id))
            return 
    0
        
        
    static Float:fOrigin[3], Float:fvAngle[3], Float:fvOffset[3], Float:fvOrigin[3], Float:feOrigin[3]
        static 
    Float:fTemp[3]
        
        
    pev(idpev_originfOrigin)
        
    pev(idpev_v_anglefvAngle)
        
    pev(idpev_view_ofsfvOffset)
        
        
    xs_vec_add(fOriginfvOffsetfvOrigin)
        
        
    engfunc(EngFunc_AngleVectorsfvAnglefeOriginfTempfTemp)
        
        
    xs_vec_mul_scalar(feOrigin8192.0feOrigin)
        
    xs_vec_add(fvOriginfeOriginfeOrigin)
        
        static 
    tr
        engfunc
    (EngFunc_TraceLinefvOriginfeOrigin0idtr)
        
    get_tr2(trTR_vecEndPoshOrigin)
        
    //global_get(glb_trace_endpos, hOrigin)
        
        
    return 1
    }

    stock statusMsg(idszMsg[], {Float,_}:...)
    {
        static 
    iStatusText
        
    if (!iStatusText)
            
    iStatusText get_user_msgid("StatusText")
        
        static 
    szBuffer[512]
        
    vformat(szBuffercharsmax(szBuffer), szMsg3)
        
        
    message_begin((id == 0) ? MSG_ALL MSG_ONEiStatusText_id)
        
    write_byte(0// Unknown
        
    write_string(szBuffer// Message
        
    message_end()
        
        return 
    1

    bunu napıcam acaba ?

Benzer Konular

  1. Sadece Adminlerin Atabileceği Kırmızı Renkli Hook.
    By canplugin in forum Çözülmüş İstekler
    Cevaplar: 6
    Son Mesaj: 26-05-15, 20:23

Kullanıcıların arama motorlarındaki kullandığı taglar:

cs 1.6 ctde hook plugini

cs 1.6 sadece ctde hook

register_concmd(amxx_hook

Counter Strike

Bu Konudaki Etiketler

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Cevap Yazma Yetkiniz Yok
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok
  •  

SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94