Raised This Month: $32 Target: $400
 8% 

[Ayuda] Adaptar Hook


  
 
 
Thread Tools Display Modes
Author Message
KermesS
Senior Member
Join Date: Jan 2013
Location: Amsterdam
Old 08-07-2013 , 19:55   [Ayuda] Adaptar Hook
#1

Estoy tratando de adaptar el plugin hook a mi zp y resulta que al tirar el gancho sale lo mas bien pero no me impulsa, porque será?

Code del hook default:
PHP Code:
/***********************************************************************************\
*    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_SLAY

#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 pMaxHookspRndStartDelay
// 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""1000")
    
pSpeed =     register_cvar("sv_hookspeed""300")
    
pWidth =     register_cvar("sv_hookwidth""32")
    
pSound =     register_cvar("sv_hooksound""1")
    
pColor =    register_cvar("sv_hookcolor""1")
    
pPlayers =     register_cvar("sv_hookplayers""0")
    
pInterrupt =     register_cvar("sv_hookinterrupt""0")
    
pAdmin =     register_cvar("sv_hookadminonly",  "0")
    
pHookSky =     register_cvar("sv_hooksky""0")
    
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""0")
    
pHookNoise =     register_cvar("sv_hooknoise""0")
    
pMaxHooks =     register_cvar("sv_hookmax""0")
    
pRndStartDelay register_cvar("sv_hookrndstartdelay""0.0")
    
    
    
// 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] %L",id,"NO_ACC_COM")
                
console_print(id"[Hook] %L",id,"NO_ACC_COM")
                
                return 
PLUGIN_HANDLED
            
}
        }
        
        new 
iMaxHooks get_pcvar_num(pMaxHooks)
        if (
iMaxHooks 0)
        {
            if (
gHooksUsed[id] >= iMaxHooks)
            {
                
client_print(idprint_chat"[Hook] You already used your maximum ammount of hooks")
                
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] You cannot use the hook in the first %0.0f seconds of the round"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] Admin only mode is currently disabled")
        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] You gave %s access to the hook"szName)
    }
    else
        
console_print(id"[Hook] %s already have access to the hook"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] Admin only mode is currently disabled")
        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] You took away %s his access to the hook"szName)
    }
    else
        
console_print(id"[Hook] %s does not have access to the hook"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

Como lo adapte:
PHP Code:
public fwTouch(ptrptd)
{    
    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 (
is_user_alive(ptd))
            {
                
emit_sound(ptrCHAN_STATIC"weapons/xbow_hitbod1.wav"1.0ATTN_NORM0PITCH_NORM)
                
remove_hook(id)
                return 
FMRES_HANDLED
            
}
        }
        
        
// Player is now hooked
        
gHooked[id] = true
        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)
    
    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)
    
    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 300
            
            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)
    
get_user_hitpoint(idfStart)
    
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 1000
        
        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)
        
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(32// Width
        
write_byte(0// Noise
        
write_byte(0// R
        
write_byte(0// G
        
write_byte(255// B
        
write_byte(192// Brightness
        
write_byte(0// Scroll speed
        
message_end()
        
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)
{    
    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))
    
    return 
PLUGIN_HANDLED
}

public 
take_hook(idlevelcid)
{        
    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))
    
    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
}

public 
make_hook(id)
{
    if (
g_level[id] >= 225 && !g_zombie[id] && !g_survivor[id] && !g_wesker[id] && is_user_alive(id) && canThrowHook[id] && !gHooked[id])
    {    
        
throw_hook(id)
    }
    return 
PLUGIN_HANDLED
}

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

__________________
KermesS is offline
StrikerV2
Senior Member
Join Date: Nov 2012
Location: Chile , O Yes!
Old 08-07-2013 , 22:03   Re: [Ayuda] Adaptar Hook
#2

PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <zombieplague>

new Float:g_hook_speed[33];
new 
Float:gravity;
new 
g_hook_color[33];
new 
g_naturalcolor[33][3];
new 
bool:hook[33];
new 
hook_to[33][3];
new 
hashook[33];
new 
beamsprite;
new 
g_itemg_maxplayers;

public 
plugin_init()
{
    
    
register_concmd("+hook","hook_on");
    
register_concmd("-hook","hook_off");
    
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")  
    
g_maxplayers get_maxplayers();
    
    
g_item zp_register_extra_item("Hook"25ZP_TEAM_HUMAN ZP_TEAM_ZOMBIE)
}

public 
plugin_precache()
{
    
beamsprite precache_model("sprites/plasma.spr")
}

public 
zp_extra_item_selected(playeritemid)
{
    
gravity fm_get_user_gravity(player)
    
    if (
itemid == g_item)
    {
        
client_cmd(player"bind v +hook")
        
hashook[player] = true
        client_print
(playerprint_chat"[ZP] You bought Hook. Use button V to pull the rope");
    }
}

public 
client_connect(id)
{
    
g_hook_speed[id] = 320.0;
    
g_hook_color[id] = 0;
    
hashook[id] = false;
}

public 
event_round_start()
{
    for(new 
1g_maxplayersi++)
        
hashook[i] = false;
}

public 
hook_on(id)
{
    if( !
hashook[id] || hook[id] )
        return 
PLUGIN_HANDLED;
    
    
set_pev(idpev_gravity0.0);
    
set_task(0.1,"hook_prethink",id+10000,"",0,"b");
    
hook[id]=true;
    
hook_to[id][0]=999999;
    
hook_prethink(id+10000);
    return 
PLUGIN_HANDLED;
}

public 
hook_off(id)
{
    if (
zp_get_user_zombie(id))
    {
        
set_pev(idpev_gravitygravity);
    }
    else
    {
        
set_pev(idpev_gravity1.0);
    }
    
    
hook[id] = false;
    return 
PLUGIN_HANDLED;
}

public 
zp_user_infected_post(idinfector)
    
hashook[id] = false;

public 
fw_PlayerKilled(victimattackershouldgib)
    
hashook[victim] = false;

public 
hook_prethink(id)
{
    
id -= 10000;
    
    if(!
is_user_alive(id))
        
hook[id]=false;
    
    if(!
hook[id])
    {
        
remove_task(id+10000);
        return 
PLUGIN_HANDLED;
    }
    
    
    static 
origin1[3];
    new 
Float:origin[3];
    
get_user_origin(id,origin1);
    
pev(idpev_originorigin);
    
    if(
hook_to[id][0]==999999)
    {
        static 
origin2[3];
        
get_user_origin(id,origin2,3);
        
hook_to[id][0]=origin2[0];
        
hook_to[id][1]=origin2[1];
        
hook_to[id][2]=origin2[2];
    }
    
    
//Create blue beam
    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
    
write_byte(1);
    
write_short(id);
    
write_coord(hook_to[id][0]);
    
write_coord(hook_to[id][1]);
    
write_coord(hook_to[id][2]);
    
write_short(beamsprite);
    
write_byte(1);
    
write_byte(1);
    
write_byte(5);
    
write_byte(18);
    
write_byte(0);
    if( 
g_hook_color[id] == )
    {
        
write_byte(random(256));
        
write_byte(random(256));
        
write_byte(random(256));
    }
    else if( 
g_hook_color[id] == )
    {
        
write_byte(g_naturalcolor[id][0]);
        
write_byte(g_naturalcolor[id][1]);
        
write_byte(g_naturalcolor[id][2]);
    }
    
write_byte(200);
    
write_byte(0);
    
message_end();
    
    
//Calculate Velocity
    
static Float:velocity[3];
    
velocity[0] = (float(hook_to[id][0]) - float(origin1[0])) * 3.0;
    
velocity[1] = (float(hook_to[id][1]) - float(origin1[1])) * 3.0;
    
velocity[2] = (float(hook_to[id][2]) - float(origin1[2])) * 3.0;
    
    static 
Float:y;
    
velocity[0]*velocity[0] + velocity[1]*velocity[1] + velocity[2]*velocity[2];
    
    static 
Float:x;
    
= (g_hook_speed[id]) / floatsqroot(y);
    
    
velocity[0] *= x;
    
velocity[1] *= x;
    
velocity[2] *= x;
    
    
set_velo(id,velocity);
    
    return 
PLUGIN_CONTINUE;
}

public 
set_velo(id,Float:velocity[3])
    return 
set_pev(id,pev_velocity,velocity); 
__________________
Mi firma era tan sexy .-.
StrikerV2 is offline
Send a message via MSN to StrikerV2
ChileScripting
BANNED
Join Date: Jan 2013
Old 08-07-2013 , 22:05   Re: [Ayuda] Adaptar Hook
#3

Estas tratando de copiarle a metalicroSS?
ChileScripting is offline
DiegoCS
Senior Member
Join Date: Mar 2013
Old 08-07-2013 , 22:17   Re: [Ayuda] Adaptar Hook
#4

Quote:
Originally Posted by ChileScripting View Post
Estas tratando de copiarle a metalicroSS?
Quote:
Originally Posted by meTaLiCroSS View Post
lol wut, voy a restringir accesos extranjeros yo creo, me es mejor negocio
Quote:
Originally Posted by KermesS View Post
noo metal no restringas que yo juegoo jajajaja
Quote:
Originally Posted by meTaLiCroSS View Post
Ajaja si, si me han contado que quieres hacer cosas similares a las de mi server no te preocupes campeon que despues se ve todo
DiegoCS is offline
StrikerV2
Senior Member
Join Date: Nov 2012
Location: Chile , O Yes!
Old 08-07-2013 , 22:21   Re: [Ayuda] Adaptar Hook
#5

No deberian parar el off topic ? , nose digo yo.
__________________
Mi firma era tan sexy .-.

Last edited by StrikerV2; 08-07-2013 at 22:21.
StrikerV2 is offline
Send a message via MSN to StrikerV2
KermesS
Senior Member
Join Date: Jan 2013
Location: Amsterdam
Old 08-08-2013 , 05:40   Re: [Ayuda] Adaptar Hook
#6

Quote:
Originally Posted by StrikerV2 View Post
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <zombieplague>

new Float:g_hook_speed[33];
new 
Float:gravity;
new 
g_hook_color[33];
new 
g_naturalcolor[33][3];
new 
bool:hook[33];
new 
hook_to[33][3];
new 
hashook[33];
new 
beamsprite;
new 
g_itemg_maxplayers;

public 
plugin_init()
{
    
    
register_concmd("+hook","hook_on");
    
register_concmd("-hook","hook_off");
    
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
register_event("HLTV""event_round_start""a""1=0""2=0")  
    
g_maxplayers get_maxplayers();
    
    
g_item zp_register_extra_item("Hook"25ZP_TEAM_HUMAN ZP_TEAM_ZOMBIE)
}

public 
plugin_precache()
{
    
beamsprite precache_model("sprites/plasma.spr")
}

public 
zp_extra_item_selected(playeritemid)
{
    
gravity fm_get_user_gravity(player)
    
    if (
itemid == g_item)
    {
        
client_cmd(player"bind v +hook")
        
hashook[player] = true
        client_print
(playerprint_chat"[ZP] You bought Hook. Use button V to pull the rope");
    }
}

public 
client_connect(id)
{
    
g_hook_speed[id] = 320.0;
    
g_hook_color[id] = 0;
    
hashook[id] = false;
}

public 
event_round_start()
{
    for(new 
1g_maxplayersi++)
        
hashook[i] = false;
}

public 
hook_on(id)
{
    if( !
hashook[id] || hook[id] )
        return 
PLUGIN_HANDLED;
    
    
set_pev(idpev_gravity0.0);
    
set_task(0.1,"hook_prethink",id+10000,"",0,"b");
    
hook[id]=true;
    
hook_to[id][0]=999999;
    
hook_prethink(id+10000);
    return 
PLUGIN_HANDLED;
}

public 
hook_off(id)
{
    if (
zp_get_user_zombie(id))
    {
        
set_pev(idpev_gravitygravity);
    }
    else
    {
        
set_pev(idpev_gravity1.0);
    }
    
    
hook[id] = false;
    return 
PLUGIN_HANDLED;
}

public 
zp_user_infected_post(idinfector)
    
hashook[id] = false;

public 
fw_PlayerKilled(victimattackershouldgib)
    
hashook[victim] = false;

public 
hook_prethink(id)
{
    
id -= 10000;
    
    if(!
is_user_alive(id))
        
hook[id]=false;
    
    if(!
hook[id])
    {
        
remove_task(id+10000);
        return 
PLUGIN_HANDLED;
    }
    
    
    static 
origin1[3];
    new 
Float:origin[3];
    
get_user_origin(id,origin1);
    
pev(idpev_originorigin);
    
    if(
hook_to[id][0]==999999)
    {
        static 
origin2[3];
        
get_user_origin(id,origin2,3);
        
hook_to[id][0]=origin2[0];
        
hook_to[id][1]=origin2[1];
        
hook_to[id][2]=origin2[2];
    }
    
    
//Create blue beam
    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
    
write_byte(1);
    
write_short(id);
    
write_coord(hook_to[id][0]);
    
write_coord(hook_to[id][1]);
    
write_coord(hook_to[id][2]);
    
write_short(beamsprite);
    
write_byte(1);
    
write_byte(1);
    
write_byte(5);
    
write_byte(18);
    
write_byte(0);
    if( 
g_hook_color[id] == )
    {
        
write_byte(random(256));
        
write_byte(random(256));
        
write_byte(random(256));
    }
    else if( 
g_hook_color[id] == )
    {
        
write_byte(g_naturalcolor[id][0]);
        
write_byte(g_naturalcolor[id][1]);
        
write_byte(g_naturalcolor[id][2]);
    }
    
write_byte(200);
    
write_byte(0);
    
message_end();
    
    
//Calculate Velocity
    
static Float:velocity[3];
    
velocity[0] = (float(hook_to[id][0]) - float(origin1[0])) * 3.0;
    
velocity[1] = (float(hook_to[id][1]) - float(origin1[1])) * 3.0;
    
velocity[2] = (float(hook_to[id][2]) - float(origin1[2])) * 3.0;
    
    static 
Float:y;
    
velocity[0]*velocity[0] + velocity[1]*velocity[1] + velocity[2]*velocity[2];
    
    static 
Float:x;
    
= (g_hook_speed[id]) / floatsqroot(y);
    
    
velocity[0] *= x;
    
velocity[1] *= x;
    
velocity[2] *= x;
    
    
set_velo(id,velocity);
    
    return 
PLUGIN_CONTINUE;
}

public 
set_velo(id,Float:velocity[3])
    return 
set_pev(id,pev_velocity,velocity); 
Muchas gracias Striker ahi lo pude adaptar perfectamente

Off: Metal creo que lo tiene como item extra, yo lo puse para que a sierto nivel se habilite al humano usarlo libremente como una habilidad, a si que shh.
__________________
KermesS is offline
baneado
Veteran Member
Join Date: Dec 2012
Location: amxmodx-es.com
Old 08-08-2013 , 12:04   Re: [Ayuda] Adaptar Hook
#7

Quote:
Originally Posted by KermesS View Post
Off: Metal creo que lo tiene como item extra, yo lo puse para que a sierto nivel se habilite al humano usarlo libremente como una habilidad, a si que shh.
Off: es lo mismo, estás copiandole.

pero cada uno que haga lo que le dé la gana mientras sepa hacerlo, yo ahí no me meto

Last edited by baneado; 08-08-2013 at 12:05.
baneado is offline
ChileScripting
BANNED
Join Date: Jan 2013
Old 08-08-2013 , 13:41   Re: [Ayuda] Adaptar Hook
#8

Para que plaguean que verguenza
ChileScripting is offline
KermesS
Senior Member
Join Date: Jan 2013
Location: Amsterdam
Old 08-08-2013 , 16:35   Re: [Ayuda] Adaptar Hook
#9

Quote:
Originally Posted by ChileScripting View Post
Para que plaguean que verguenza
de una, para que plagueas?
Quote:
Originally Posted by baneado View Post
Off: es lo mismo, estás copiandole.

pero cada uno que haga lo que le dé la gana mientras sepa hacerlo, yo ahí no me meto
Que yo sepa el zp con niveles, puntitos y todas esas cositas las hizo principalmente speed!, a si que varios de aca que no se vengan lavar las manitos...
__________________

Last edited by KermesS; 08-08-2013 at 16:37.
KermesS is offline
Roccoxx
AlliedModders Donor
Join Date: Jan 2012
Location: Argentina
Old 08-08-2013 , 16:40   Re: [Ayuda] Adaptar Hook
#10

Quote:
Originally Posted by KermesS View Post
de una, para que plagueas?

Que yo sepa el zp con niveles, puntitos y todas esas cositas las hizo principalmente speed!, a si que varios de aca que no se vengan lavar las manitos...
metalicross cof cof, la banda cof cof, skiel cof cof, imperio lnj cof cof, gokuxx cof cof.

suerte con encontrar a alguien que te ayude. te vas a hacer otra cuentita kermess?

no metas los niveles sos un copion y punto.
__________________
Tutorials here (Spanish)

Like as another Pijudo said: "Tired and retired"

Last edited by Roccoxx; 08-08-2013 at 16:41.
Roccoxx is offline
Send a message via MSN to Roccoxx
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:24.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode