hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.17. 01:34



Jelenlévő felhasználók

Jelenleg 361 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 359 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [6 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: HooK
HozzászólásElküldve:2012.02.26. 15:51 
Offline
Nagyúr
Avatar

Csatlakozott:2011.12.18. 10:40
Hozzászólások:671
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 20 alkalommal
Kód:
  1. define ADMINLEVEL ADMIN_IMMUNITY

  2.  

  3. #include <amxmodx>

  4. #include <amxmisc>

  5. #include <fakemeta>

  6. #include <cstrike>

  7. #include <xs>

  8.  

  9. #define message_begin_f(%1,%2,%3,%4) engfunc(EngFunc_MessageBegin, %1, %2, %3, %4)

  10. #define write_coord_f(%1) engfunc(EngFunc_WriteCoord, %1)

  11.  

  12. //Cvars

  13. new pHook, pThrowSpeed, pSpeed, pWidth, pSound, pColor

  14. new pInterrupt, pAdmin, pHookSky, pOpenDoors, pPlayers

  15. new pUseButtons, pHostage, pWeapons, pInstant, pHookNoise

  16. new pMaxHooks, pRndStartDelay

  17. // Sprite

  18. new sprBeam

  19.  

  20. // Players hook entity

  21. new Hook[33]

  22.  

  23. // MaxPlayers

  24. new gMaxPlayers

  25.  

  26. // some booleans

  27. new bool:gHooked[33]

  28. new bool:canThrowHook[33]

  29. new bool:rndStarted

  30.  

  31. // Player Spawn

  32. new bool:gRestart[33] = {false, ...}

  33. new bool:gUpdate[33] = {false, ...}

  34.  

  35. new gHooksUsed[33] // Used with sv_hookmax

  36. new bool:g_bHookAllowed[33] // Used with sv_hookadminonly

  37.  

  38. public plugin_init()

  39. {

  40.         register_plugin("Hook", "1.5", "P34nut")

  41.        

  42.         // Hook commands

  43.         register_clcmd("+hook", "make_hook")

  44.         register_clcmd("-hook", "del_hook")

  45.        

  46.         register_concmd("amx_givehook", "give_hook", ADMINLEVEL, "<Username> - Give somebody access to the hook")

  47.         register_concmd("amx_takehook", "take_hook", ADMINLEVEL, "<UserName> - Take away somebody his access to the hook")

  48.        

  49.         // Events for roundstart

  50.         register_event("HLTV", "round_bstart", "a", "1=0", "2=0")

  51.         register_logevent("round_estart", 2, "1=Round_Start")

  52.        

  53.         // Player spawn stuff

  54.         register_event("TextMsg", "Restart", "a", "2=#Game_will_restart_in")

  55.         register_clcmd("fullupdate", "Update")

  56.         register_event("ResetHUD", "ResetHUD", "b")

  57.        

  58.         // Register cvars

  59.         register_cvar("sv_amxxhookmod",  "version 1.5", FCVAR_SERVER) // yay public cvar

  60.         pHook =         register_cvar("sv_hook", "1")

  61.         pThrowSpeed =   register_cvar("sv_hookthrowspeed", "1000")

  62.         pSpeed =        register_cvar("sv_hookspeed", "300")

  63.         pWidth =        register_cvar("sv_hookwidth", "32")

  64.         pSound =        register_cvar("sv_hooksound", "1")

  65.         pColor =        register_cvar("sv_hookcolor", "1")

  66.         pPlayers =      register_cvar("sv_hookplayers", "0")

  67.         pInterrupt =    register_cvar("sv_hookinterrupt", "0")

  68.         pAdmin =        register_cvar("sv_hookadminonly",  "0")

  69.         pHookSky =      register_cvar("sv_hooksky", "0")

  70.         pOpenDoors =    register_cvar("sv_hookopendoors", "1")

  71.         pUseButtons =   register_cvar("sv_hookusebuttons", "1")

  72.         pHostage =      register_cvar("sv_hookhostflollow", "1")

  73.         pWeapons =      register_cvar("sv_hookpickweapons", "1")

  74.         pInstant =      register_cvar("sv_hookinstant", "0")

  75.         pHookNoise =    register_cvar("sv_hooknoise", "0")

  76.         pMaxHooks =     register_cvar("sv_hookmax", "0")

  77.         pRndStartDelay = register_cvar("sv_hookrndstartdelay", "0.0")

  78.        

  79.        

  80.         // Touch forward

  81.         register_forward(FM_Touch, "fwTouch")

  82.        

  83.         // Get maxplayers

  84.         gMaxPlayers = get_maxplayers()

  85. }

  86.  

  87. public plugin_precache()

  88. {

  89.         // Hook Model

  90.         engfunc(EngFunc_PrecacheModel, "models/rpgrocket.mdl")

  91.        

  92.         // Hook Beam

  93.         sprBeam = engfunc(EngFunc_PrecacheModel, "sprites/zbeam4.spr")

  94.        

  95.         // Hook Sounds

  96.         engfunc(EngFunc_PrecacheSound, "weapons/xbow_hit1.wav") // good hit

  97.         engfunc(EngFunc_PrecacheSound, "weapons/xbow_hit2.wav") // wrong hit

  98.        

  99.         engfunc(EngFunc_PrecacheSound, "weapons/xbow_hitbod1.wav") // player hit

  100.        

  101.         engfunc(EngFunc_PrecacheSound, "weapons/xbow_fire1.wav") // deploy

  102. }

  103.  

  104.  

  105. public make_hook(id)

  106. {

  107.         if (get_pcvar_num(pHook) && is_user_alive(id) && canThrowHook[id] && !gHooked[id]) {           

  108.                 if (get_pcvar_num(pAdmin))

  109.                 {

  110.                         // Only the admins can throw the hook

  111.                         // if(is_user_admin(id)) { <- does not work...         

  112.                         if (!(get_user_flags(id) & ADMINLEVEL) && !g_bHookAllowed[id])

  113.                         {

  114.                                 // Show a message

  115.                                 client_print(id, print_chat, "[Hook] %L",id,"NO_ACC_COM")

  116.                                 console_print(id, "[Hook] %L",id,"NO_ACC_COM")

  117.                                

  118.                                 return PLUGIN_HANDLED

  119.                         }

  120.                 }

  121.                

  122.                 new iMaxHooks = get_pcvar_num(pMaxHooks)

  123.                 if (iMaxHooks > 0)

  124.                 {

  125.                         if (gHooksUsed[id] >= iMaxHooks)

  126.                         {

  127.                                 client_print(id, print_chat, "[Hook] Mar elhasznaltad a maximalisan enegdett mennyiseget a hook-bol")

  128.                                 statusMsg(id, "[Hook] %d of %d hooks used.", gHooksUsed[id], get_pcvar_num(pMaxHooks))

  129.                                

  130.                                 return PLUGIN_HANDLED

  131.                         }

  132.                         else

  133.                         {

  134.                                 gHooksUsed[id]++

  135.                                 statusMsg(id, "[Hook] %d of %d hooks used.", gHooksUsed[id], get_pcvar_num(pMaxHooks))

  136.                         }

  137.                 }

  138.                 new Float:fDelay = get_pcvar_float(pRndStartDelay)

  139.                 if (fDelay > 0 && !rndStarted)

  140.                         client_print(id, print_chat, "[Hook] Nemtudod hasznalni a hook-ot az ido letelte elott %0.0f masodperc", fDelay)

  141.                        

  142.                 throw_hook(id)

  143.         }

  144.         return PLUGIN_HANDLED

  145. }

  146.  

  147. public del_hook(id)

  148. {

  149.         // Remove players hook

  150.         if (!canThrowHook[id])

  151.                 remove_hook(id)

  152.        

  153.         return PLUGIN_HANDLED

  154. }

  155.  

  156. public round_bstart()

  157. {

  158.         // Round is not started anymore

  159.         if (rndStarted)

  160.                 rndStarted = false

  161.        

  162.         // Remove all hooks

  163.         for (new i = 1; i <= gMaxPlayers; i++)

  164.         {

  165.                 if (is_user_connected(i))

  166.                 {

  167.                         if(!canThrowHook[i])

  168.                                 remove_hook(i)

  169.                 }

  170.         }

  171. }

  172.  

  173. public round_estart()

  174. {

  175.         new Float:fDelay = get_pcvar_float(pRndStartDelay)

  176.         if (fDelay > 0.0)

  177.                 set_task(fDelay, "rndStartDelay")

  178.         else

  179.         {

  180.                 // Round is started...

  181.                 if (!rndStarted)

  182.                         rndStarted = true

  183.         }

  184. }

  185.  

  186. public rndStartDelay()

  187. {

  188.         if (!rndStarted)

  189.                 rndStarted = true

  190. }

  191.  

  192. public Restart()

  193. {

  194.         for (new id = 0; id < gMaxPlayers; id++)

  195.         {

  196.                 if (is_user_connected(id))

  197.                         gRestart[id] = true

  198.         }

  199. }

  200.  

  201. public Update(id)

  202. {

  203.         if (!gUpdate[id])

  204.                 gUpdate[id] = true

  205.        

  206.         return PLUGIN_CONTINUE

  207. }

  208.  

  209. public ResetHUD(id)

  210. {

  211.         if (gRestart[id])

  212.         {

  213.                 gRestart[id] = false

  214.                 return

  215.         }

  216.         if (gUpdate[id])

  217.         {

  218.                 gUpdate[id] = false

  219.                 return

  220.         }

  221.         if (gHooked[id])

  222.         {

  223.                 remove_hook(id)

  224.         }

  225.         if (get_pcvar_num(pMaxHooks) > 0)

  226.         {

  227.                 gHooksUsed[id] = 0

  228.                 statusMsg(0, "[Hook] 0 of %d hooks used.", get_pcvar_num(pMaxHooks))

  229.         }

  230. }

  231.  

  232. public fwTouch(ptr, ptd)

  233. {

  234.         if (!pev_valid(ptr))

  235.                 return FMRES_IGNORED

  236.        

  237.         new id = pev(ptr, pev_owner)

  238.        

  239.         // Get classname

  240.         static szPtrClass[32]  

  241.         pev(ptr, pev_classname, szPtrClass, charsmax(szPtrClass))

  242.        

  243.         if (equali(szPtrClass, "Hook"))

  244.         {              

  245.                 static Float:fOrigin[3]

  246.                 pev(ptr, pev_origin, fOrigin)

  247.                

  248.                 if (pev_valid(ptd))

  249.                 {

  250.                         static szPtdClass[32]

  251.                         pev(ptd, pev_classname, szPtdClass, charsmax(szPtdClass))

  252.                                                

  253.                         if (!get_pcvar_num(pPlayers) && /*equali(szPtdClass, "player")*/ is_user_alive(ptd))

  254.                         {

  255.                                 // Hit a player

  256.                                 if (get_pcvar_num(pSound))

  257.                                         emit_sound(ptr, CHAN_STATIC, "weapons/xbow_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

  258.                                 remove_hook(id)

  259.                                

  260.                                 return FMRES_HANDLED

  261.                         }

  262.                         else if (equali(szPtdClass, "hostage_entity"))

  263.                         {

  264.                                 // Makes an hostage follow

  265.                                 if (get_pcvar_num(pHostage) && get_user_team(id) == 2)

  266.                                 {                                      

  267.                                         //cs_set_hostage_foll(ptd, (cs_get_hostage_foll(ptd) == id) ? 0 : id)

  268.                                         // With the use function we have the sounds!

  269.                                         dllfunc(DLLFunc_Use, ptd, id)

  270.                                 }

  271.                                 if (!get_pcvar_num(pPlayers))

  272.                                 {

  273.                                         if(get_pcvar_num(pSound))

  274.                                                 emit_sound(ptr, CHAN_STATIC, "weapons/xbow_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

  275.                                         remove_hook(id)

  276.                                 }

  277.                                 return FMRES_HANDLED

  278.                         }

  279.                         else if (get_pcvar_num(pOpenDoors) && equali(szPtdClass, "func_door") || equali(szPtdClass, "func_door_rotating"))

  280.                         {

  281.                                 // Open doors

  282.                                 // Double doors tested in de_nuke and de_wallmart

  283.                                 static szTargetName[32]

  284.                                 pev(ptd, pev_targetname, szTargetName, charsmax(szTargetName))

  285.                                 if (strlen(szTargetName) > 0)

  286.                                 {      

  287.                                         static ent

  288.                                         while ((ent = engfunc(EngFunc_FindEntityByString, ent, "target", szTargetName)) > 0)

  289.                                         {

  290.                                                 static szEntClass[32]

  291.                                                 pev(ent, pev_classname, szEntClass, charsmax(szEntClass))

  292.                                                

  293.                                                 if (equali(szEntClass, "trigger_multiple"))

  294.                                                 {

  295.                                                         dllfunc(DLLFunc_Touch, ent, id)

  296.                                                         goto stopdoors // No need to touch anymore

  297.                                                 }

  298.                                         }

  299.                                 }

  300.                                

  301.                                 // No double doors.. just touch it

  302.                                 dllfunc(DLLFunc_Touch, ptd, id)

  303. stopdoors:                             

  304.                         }

  305.                         else if (get_pcvar_num(pUseButtons) && equali(szPtdClass, "func_button"))

  306.                         {

  307.                                 if (pev(ptd, pev_spawnflags) & SF_BUTTON_TOUCH_ONLY)

  308.                                         dllfunc(DLLFunc_Touch, ptd, id) // Touch only

  309.                                 else                   

  310.                                         dllfunc(DLLFunc_Use, ptd, id) // Use Buttons                   

  311.                         }

  312.                 }

  313.                

  314.                 // If cvar sv_hooksky is 0 and hook is in the sky remove it!

  315.                 new iContents = engfunc(EngFunc_PointContents, fOrigin)

  316.                 if (!get_pcvar_num(pHookSky) && iContents == CONTENTS_SKY)

  317.                 {

  318.                         if(get_pcvar_num(pSound))

  319.                                 emit_sound(ptr, CHAN_STATIC, "weapons/xbow_hit2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

  320.                         remove_hook(id)

  321.                         return FMRES_HANDLED

  322.                 }

  323.                

  324.                 // Pick up weapons..

  325.                 if (get_pcvar_num(pWeapons))

  326.                 {

  327.                         static ent

  328.                         while ((ent = engfunc(EngFunc_FindEntityInSphere, ent, fOrigin, 15.0)) > 0)

  329.                         {

  330.                                 static szentClass[32]

  331.                                 pev(ent, pev_classname, szentClass, charsmax(szentClass))

  332.                                

  333.                                 if (equali(szentClass, "weaponbox") || equali(szentClass, "armoury_entity"))

  334.                                         dllfunc(DLLFunc_Touch, ent, id)

  335.                         }

  336.                 }

  337.                

  338.                 // Player is now hooked

  339.                 gHooked[id] = true

  340.                 // Play sound

  341.                 if (get_pcvar_num(pSound))

  342.                         emit_sound(ptr, CHAN_STATIC, "weapons/xbow_hit1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

  343.                

  344.                 // Make some sparks :D

  345.                 message_begin_f(MSG_BROADCAST, SVC_TEMPENTITY, fOrigin, 0)

  346.                 write_byte(9) // TE_SPARKS

  347.                 write_coord_f(fOrigin[0]) // Origin

  348.                 write_coord_f(fOrigin[1])

  349.                 write_coord_f(fOrigin[2])

  350.                 message_end()          

  351.                

  352.                 // Stop the hook from moving

  353.                 set_pev(ptr, pev_velocity, Float:{0.0, 0.0, 0.0})

  354.                 set_pev(ptr, pev_movetype, MOVETYPE_NONE)

  355.                

  356.                 //Task

  357.                 if (!task_exists(id + 856))

  358.                 {

  359.                         static TaskData[2]

  360.                         TaskData[0] = id

  361.                         TaskData[1] = ptr

  362.                         gotohook(TaskData)

  363.                        

  364.                         set_task(0.1, "gotohook", id + 856, TaskData, 2, "b")

  365.                 }

  366.         }

  367.         return FMRES_HANDLED

  368. }

  369.  

  370. public hookthink(param[])

  371. {

  372.         new id = param[0]

  373.         new HookEnt = param[1]

  374.        

  375.         if (!is_user_alive(id) || !pev_valid(HookEnt) || !pev_valid(id))

  376.         {

  377.                 remove_task(id + 890)

  378.                 return PLUGIN_HANDLED

  379.         }

  380.        

  381.        

  382.         static Float:entOrigin[3]

  383.         pev(HookEnt, pev_origin, entOrigin)

  384.        

  385.         // If user is behind a box or something.. remove it

  386.         // only works if sv_interrupt 1 or higher is

  387.         if (get_pcvar_num(pInterrupt) && rndStarted)

  388.         {

  389.                 static Float:usrOrigin[3]

  390.                 pev(id, pev_origin, usrOrigin)

  391.                

  392.                 static tr

  393.                 engfunc(EngFunc_TraceLine, usrOrigin, entOrigin, 1, -1, tr)

  394.                

  395.                 static Float:fFraction

  396.                 get_tr2(tr, TR_flFraction, fFraction)

  397.                

  398.                 if (fFraction != 1.0)

  399.                         remove_hook(id)

  400.         }

  401.        

  402.         // If cvar sv_hooksky is 0 and hook is in the sky remove it!

  403.         new iContents = engfunc(EngFunc_PointContents, entOrigin)

  404.         if (!get_pcvar_num(pHookSky) && iContents == CONTENTS_SKY)

  405.         {

  406.                 if(get_pcvar_num(pSound))

  407.                         emit_sound(HookEnt, CHAN_STATIC, "weapons/xbow_hit2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

  408.                 remove_hook(id)

  409.         }

  410.        

  411.         return PLUGIN_HANDLED

  412. }

  413.  

  414. public gotohook(param[])

  415. {

  416.         new id = param[0]

  417.         new HookEnt = param[1]

  418.  

  419.         if (!is_user_alive(id) || !pev_valid(HookEnt) || !pev_valid(id))

  420.         {

  421.                 remove_task(id + 856)

  422.                 return PLUGIN_HANDLED

  423.         }

  424.         // If the round isnt started velocity is just 0

  425.         static Float:fVelocity[3]

  426.         fVelocity = Float:{0.0, 0.0, 1.0}

  427.        

  428.         // If the round is started and player is hooked we can set the user velocity!

  429.         if (rndStarted && gHooked[id])

  430.         {

  431.                 static Float:fHookOrigin[3], Float:fUsrOrigin[3], Float:fDist

  432.                 pev(HookEnt, pev_origin, fHookOrigin)

  433.                 pev(id, pev_origin, fUsrOrigin)

  434.                

  435.                 fDist = vector_distance(fHookOrigin, fUsrOrigin)

  436.                

  437.                 if (fDist >= 30.0)

  438.                 {

  439.                         new Float:fSpeed = get_pcvar_float(pSpeed)

  440.                        

  441.                         fSpeed *= 0.52

  442.                        

  443.                         fVelocity[0] = (fHookOrigin[0] - fUsrOrigin[0]) * (2.0 * fSpeed) / fDist

  444.                         fVelocity[1] = (fHookOrigin[1] - fUsrOrigin[1]) * (2.0 * fSpeed) / fDist

  445.                         fVelocity[2] = (fHookOrigin[2] - fUsrOrigin[2]) * (2.0 * fSpeed) / fDist

  446.                 }

  447.         }

  448.         // Set the velocity

  449.         set_pev(id, pev_velocity, fVelocity)

  450.        

  451.         return PLUGIN_HANDLED

  452. }

  453.                

  454. public throw_hook(id)

  455. {

  456.         // Get origin and angle for the hook

  457.         static Float:fOrigin[3], Float:fAngle[3],Float:fvAngle[3]

  458.         static Float:fStart[3]

  459.         pev(id, pev_origin, fOrigin)

  460.        

  461.         pev(id, pev_angles, fAngle)

  462.         pev(id, pev_v_angle, fvAngle)

  463.        

  464.         if (get_pcvar_num(pInstant))

  465.         {

  466.                 get_user_hitpoint(id, fStart)

  467.                

  468.                 if (engfunc(EngFunc_PointContents, fStart) != CONTENTS_SKY)

  469.                 {

  470.                         static Float:fSize[3]

  471.                         pev(id, pev_size, fSize)

  472.                        

  473.                         fOrigin[0] = fStart[0] + floatcos(fvAngle[1], degrees) * (-10.0 + fSize[0])

  474.                         fOrigin[1] = fStart[1] + floatsin(fvAngle[1], degrees) * (-10.0 + fSize[1])

  475.                         fOrigin[2] = fStart[2]

  476.                 }

  477.                 else

  478.                         xs_vec_copy(fStart, fOrigin)

  479.         }

  480.  

  481.        

  482.         // Make the hook!

  483.         Hook[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))

  484.                

  485.         if (Hook[id])

  486.         {

  487.                 // Player cant throw hook now

  488.                 canThrowHook[id] = false

  489.                

  490.                 static const Float:fMins[3] = {-2.840000, -14.180000, -2.840000}

  491.                 static const Float:fMaxs[3] = {2.840000, 0.020000, 2.840000}

  492.                

  493.                 //Set some Data

  494.                 set_pev(Hook[id], pev_classname, "Hook")

  495.                

  496.                 engfunc(EngFunc_SetModel, Hook[id], "models/rpgrocket.mdl")

  497.                 engfunc(EngFunc_SetOrigin, Hook[id], fOrigin)

  498.                 engfunc(EngFunc_SetSize, Hook[id], fMins, fMaxs)               

  499.                

  500.                 //set_pev(Hook[id], pev_mins, fMins)

  501.                 //set_pev(Hook[id], pev_maxs, fMaxs)

  502.                

  503.                 set_pev(Hook[id], pev_angles, fAngle)

  504.                

  505.                 set_pev(Hook[id], pev_solid, 2)

  506.                 set_pev(Hook[id], pev_movetype, 5)

  507.                 set_pev(Hook[id], pev_owner, id)

  508.                

  509.                 //Set hook velocity

  510.                 static Float:fForward[3], Float:Velocity[3]

  511.                 new Float:fSpeed = get_pcvar_float(pThrowSpeed)

  512.                

  513.                 engfunc(EngFunc_MakeVectors, fvAngle)

  514.                 global_get(glb_v_forward, fForward)

  515.                

  516.                 Velocity[0] = fForward[0] * fSpeed

  517.                 Velocity[1] = fForward[1] * fSpeed

  518.                 Velocity[2] = fForward[2] * fSpeed

  519.                

  520.                 set_pev(Hook[id], pev_velocity, Velocity)

  521.  

  522.                 // Make the line between Hook and Player

  523.                 message_begin_f(MSG_BROADCAST, SVC_TEMPENTITY, Float:{0.0, 0.0, 0.0}, 0)

  524.                 if (get_pcvar_num(pInstant))

  525.                 {

  526.                         write_byte(1) // TE_BEAMPOINT

  527.                         write_short(id) // Startent

  528.                         write_coord_f(fStart[0]) // End pos

  529.                         write_coord_f(fStart[1])

  530.                         write_coord_f(fStart[2])

  531.                 }

  532.                 else

  533.                 {

  534.                         write_byte(8) // TE_BEAMENTS

  535.                         write_short(id) // Start Ent

  536.                         write_short(Hook[id]) // End Ent

  537.                 }

  538.                 write_short(sprBeam) // Sprite

  539.                 write_byte(1) // StartFrame

  540.                 write_byte(1) // FrameRate

  541.                 write_byte(600) // Life

  542.                 write_byte(get_pcvar_num(pWidth)) // Width

  543.                 write_byte(get_pcvar_num(pHookNoise)) // Noise

  544.                 // Colors now

  545.                 if (get_pcvar_num(pColor))

  546.                 {

  547.                         if (get_user_team(id) == 1) // Terrorist

  548.                         {

  549.                                 write_byte(255) // R

  550.                                 write_byte(0)   // G

  551.                                 write_byte(0)   // B

  552.                         }

  553.                         #if defined _cstrike_included

  554.                         else if(cs_get_user_vip(id)) // vip for cstrike

  555.                         {

  556.                                 write_byte(0)   // R

  557.                                 write_byte(255) // G

  558.                                 write_byte(0)   // B

  559.                         }

  560.                         #endif // _cstrike_included

  561.                         else if(get_user_team(id) == 2) // CT

  562.                         {

  563.                                 write_byte(0)   // R

  564.                                 write_byte(0)   // G

  565.                                 write_byte(255) // B

  566.                         }

  567.                         else

  568.                         {

  569.                                 write_byte(255) // R

  570.                                 write_byte(255) // G

  571.                                 write_byte(255) // B

  572.                         }

  573.                 }

  574.                 else

  575.                 {

  576.                         write_byte(255) // R

  577.                         write_byte(255) // G

  578.                         write_byte(255) // B

  579.                 }

  580.                 write_byte(192) // Brightness

  581.                 write_byte(0) // Scroll speed

  582.                 message_end()

  583.                

  584.                 if (get_pcvar_num(pSound) && !get_pcvar_num(pInstant))

  585.                         emit_sound(id, CHAN_BODY, "weapons/xbow_fire1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_HIGH)

  586.                

  587.                 static TaskData[2]

  588.                 TaskData[0] = id

  589.                 TaskData[1] = Hook[id]

  590.                

  591.                 set_task(0.1, "hookthink", id + 890, TaskData, 2, "b")

  592.         }

  593.         else

  594.                 client_print(id, print_chat, "Nem tud hookolni")

  595. }

  596.  

  597. public remove_hook(id)

  598. {

  599.         //Player can now throw hooks

  600.         canThrowHook[id] = true

  601.        

  602.         // Remove the hook if it is valid

  603.         if (pev_valid(Hook[id]))

  604.                 engfunc(EngFunc_RemoveEntity, Hook[id])

  605.         Hook[id] = 0

  606.        

  607.         // Remove the line between user and hook

  608.         if (is_user_connected(id))

  609.         {

  610.                 message_begin(MSG_BROADCAST, SVC_TEMPENTITY, {0,0,0}, id)

  611.                 write_byte(99) // TE_KILLBEAM

  612.                 write_short(id) // entity

  613.                 message_end()

  614.         }

  615.        

  616.         // Player is not hooked anymore

  617.         gHooked[id] = false

  618.         return 1

  619. }

  620.  

  621. public give_hook(id, level, cid)

  622. {

  623.         if (!cmd_access(id ,level, cid, 1))

  624.                 return PLUGIN_HANDLED

  625.                

  626.         if (!get_pcvar_num(pAdmin))

  627.         {

  628.                 console_print(id, "[Hook] Csak admin hook kikapcsolva")

  629.                 return PLUGIN_HANDLED

  630.         }

  631.        

  632.         static szTarget[32]

  633.         read_argv(1, szTarget, charsmax(szTarget))

  634.        

  635.         new iUsrId = cmd_target(id, szTarget)

  636.        

  637.         if (!iUsrId)

  638.                 return PLUGIN_HANDLED

  639.                

  640.         static szName[32]

  641.         get_user_name(iUsrId, szName, charsmax(szName))

  642.        

  643.         if (!g_bHookAllowed[iUsrId])

  644.         {

  645.                 g_bHookAllowed[iUsrId] = true

  646.                

  647.                 console_print(id, "[Hook] Hozzaferest adtal %s-nak a hook-hoz", szName)

  648.         }

  649.         else

  650.                 console_print(id, "[Hook] %s mar hozzafer a hook-hoz", szName)

  651.        

  652.         return PLUGIN_HANDLED

  653. }

  654.  

  655. public take_hook(id, level, cid)

  656. {

  657.         if (!cmd_access(id ,level, cid, 1))

  658.                 return PLUGIN_HANDLED

  659.        

  660.         if (!get_pcvar_num(pAdmin))

  661.         {

  662.                 console_print(id, "[Hook] Csak admin hook kikapcsolva")

  663.                 return PLUGIN_HANDLED

  664.         }

  665.                

  666.         static szTarget[32]

  667.         read_argv(1, szTarget, charsmax(szTarget))

  668.        

  669.         new iUsrId = cmd_target(id, szTarget)

  670.        

  671.         if (!iUsrId)

  672.                 return PLUGIN_HANDLED

  673.                

  674.         static szName[32]

  675.         get_user_name(iUsrId, szName, charsmax(szName))

  676.        

  677.         if (g_bHookAllowed[iUsrId])

  678.         {

  679.                 g_bHookAllowed[iUsrId] = false

  680.                

  681.                 console_print(id, "[Hook] A hasznalathoz %s jog szukseges", szName)

  682.         }

  683.         else

  684.                 console_print(id, "[Hook] %s nem fér hozzá a horoghoz", szName)

  685.        

  686.         return PLUGIN_HANDLED

  687. }

  688.  

  689. // Stock by Chaosphere

  690. stock get_user_hitpoint(id, Float:hOrigin[3])

  691. {

  692.         if (!is_user_alive(id))

  693.                 return 0

  694.        

  695.         static Float:fOrigin[3], Float:fvAngle[3], Float:fvOffset[3], Float:fvOrigin[3], Float:feOrigin[3]

  696.         static Float:fTemp[3]

  697.        

  698.         pev(id, pev_origin, fOrigin)

  699.         pev(id, pev_v_angle, fvAngle)

  700.         pev(id, pev_view_ofs, fvOffset)

  701.        

  702.         xs_vec_add(fOrigin, fvOffset, fvOrigin)

  703.        

  704.         engfunc(EngFunc_AngleVectors, fvAngle, feOrigin, fTemp, fTemp)

  705.        

  706.         xs_vec_mul_scalar(feOrigin, 8192.0, feOrigin)

  707.         xs_vec_add(fvOrigin, feOrigin, feOrigin)

  708.        

  709.         static tr

  710.         engfunc(EngFunc_TraceLine, fvOrigin, feOrigin, 0, id, tr)

  711.         get_tr2(tr, TR_vecEndPos, hOrigin)

  712.         //global_get(glb_trace_endpos, hOrigin)

  713.        

  714.         return 1

  715. }

  716.  

  717. stock statusMsg(id, szMsg[], {Float,_}:...)

  718. {

  719.         static iStatusText

  720.         if (!iStatusText)

  721.                 iStatusText = get_user_msgid("StatusText")

  722.        

  723.         static szBuffer[512]

  724.         vformat(szBuffer, charsmax(szBuffer), szMsg, 3)

  725.        

  726.         message_begin((id == 0) ? MSG_ALL : MSG_ONE, iStatusText, _, id)

  727.         write_byte(0) // Unknown

  728.         write_string(szBuffer) // Message

  729.         message_end()

  730.        

  731.         return 1

  732. }

Valaki megtudná nekem csinálni h más szinü legyen a hook CT: zöld
Kód:
RGB: 0 250 0

TE : narancs sárga:
Kód:
RGB: 255 127 0

akár hányszor megcsináltam
Kód:
Server shutting down

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: HooK
HozzászólásElküldve:2012.02.26. 16:02 
Offline
Developer
Avatar

Csatlakozott:2011.06.01. 21:11
Hozzászólások:7966
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 537 alkalommal
Idézet:
Server shutting down


Csak így, semmi más nincs hozzá írva?

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: HooK
HozzászólásElküldve:2012.02.26. 16:10 
Offline
Nagyúr
Avatar

Csatlakozott:2011.12.18. 10:40
Hozzászólások:671
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 20 alkalommal
csak ez hasznalnam es kidob a szerverrol

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: HooK
HozzászólásElküldve:2012.02.26. 16:11 
Offline
Developer
Avatar

Csatlakozott:2011.06.01. 21:11
Hozzászólások:7966
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 537 alkalommal
Passz, lehet a narancs sárga színt nem bírja, próbálj meg másikat
Kód:
TE : narancs sárga:
Kód: Egész kijelölése
RGB: 255 127 0

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: HooK
HozzászólásElküldve:2012.02.26. 17:13 
Offline
Imperátor
Avatar

Csatlakozott:2009.04.21. 09:33
Hozzászólások:3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
:D:D:D:D:D:D


Átírás nélkül MEGY? :)
kiki írta:
Passz, lehet a narancs sárga színt nem bírja, próbálj meg másikat
Kód:
TE : narancs sárga:
Kód: Egész kijelölése
RGB: 255 127 0

_________________
Kód:
I'm back

Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: HooK
HozzászólásElküldve:2012.02.26. 17:34 
Offline
Nagyúr
Avatar

Csatlakozott:2011.12.18. 10:40
Hozzászólások:671
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 20 alkalommal
Metal: ja:)

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [6 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 31 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole