Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Marker dla CT i VIPA


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 Szpon

    Życzliwy

  • Zbanowany

Reputacja: -2
Nowy

  • Postów:35
  • Imię:Patryk
  • Lokalizacja:WRGames
Offline

Napisano 27.05.2014 13:51

Witam. Szukam gotowego pluginu (jak takowy jest) na Marker dla CT i VIPA na serwer JBl. Zna ktoś taki plugin?



#2 szelbi

    Hero

  • Power User

Reputacja: 373
Wszechpomocny

  • Postów:1 032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 27.05.2014 14:06

Daj SMA zwykłego markera.


  • +
  • -
  • 0

#3 Szpon

    Życzliwy

  • Autor tematu
  • Zbanowany

Reputacja: -2
Nowy

  • Postów:35
  • Imię:Patryk
  • Lokalizacja:WRGames
Offline

Napisano 27.05.2014 14:09

 

#include <amxmodx>

#include <amxmisc>

#include <fakemeta>

#include <xs>



#define PLUGIN "Magic Marker"

#define VERSION "3.0"

#define AUTHOR "stupok69"



#define MAX_PLAYERS 32

#define USAGE_LEVEL ADMIN_KICK



new Float:origin[MAX_PLAYERS+1][3]

new prethink_counter[MAX_PLAYERS+1]

new bool:is_drawing[MAX_PLAYERS+1]

new bool:is_holding[MAX_PLAYERS+1]



new spriteid



public plugin_init()

{

    register_plugin(PLUGIN, VERSION, AUTHOR)

    register_clcmd("+paint", "paint_handler", 0, "Paint on the walls!")

    register_clcmd("-paint", "paint_handler", 0, "Paint on the walls!")

    register_forward(FM_PlayerPreThink, "forward_FM_PlayerPreThink", 0)

}



public plugin_precache()

{

    spriteid = precache_model("sprites/lgtning.spr")

}



public paint_handler(id)

{

    if(is_user_admin(id) || get_user_team(id) == 2) // Tylko admin badz CT

    {

        if(!is_user_alive(id))

        {

            client_print(id, print_chat, "* Nie mozesz uzywac markera , kiedy nie zyjesz.")

            return PLUGIN_HANDLED

        }

       

        static cmd[2]

        read_argv(0, cmd, 1)

       

        switch(cmd[0])

        {

            case '+': is_drawing[id] = true

            case '-': is_drawing[id] = false

        }

    }

    return PLUGIN_HANDLED

}



public forward_FM_PlayerPreThink(id)

{

    if(prethink_counter[id]++ > 5)

    {

        if(is_drawing[id] && !is_aiming_at_sky(id))

        {

            static Float:cur_origin[3], Float:distance



            cur_origin = origin[id]

           

            if(!is_holding[id])

            {

                fm_get_aim_origin(id, origin[id])

                move_toward_client(id, origin[id])

                is_holding[id] = true

                return FMRES_IGNORED

            }

           

            fm_get_aim_origin(id, origin[id])

            move_toward_client(id, origin[id])

           

            distance = get_distance_f(origin[id], cur_origin)

           

            if(distance > 2)

            {

                draw_line(origin[id], cur_origin)

            }

        }

        else

        {

            is_holding[id] = false

        }

        prethink_counter[id] = 0

    }

   

    return FMRES_IGNORED

}



stock draw_line(Float:origin1[3], Float:origin2[3])

{

    message_begin(MSG_BROADCAST,SVC_TEMPENTITY)

    write_byte(TE_BEAMPOINTS)

    engfunc(EngFunc_WriteCoord, origin1[0])

    engfunc(EngFunc_WriteCoord, origin1[1])

    engfunc(EngFunc_WriteCoord, origin1[2])

    engfunc(EngFunc_WriteCoord, origin2[0])

    engfunc(EngFunc_WriteCoord, origin2[1])

    engfunc(EngFunc_WriteCoord, origin2[2])

    write_short(spriteid)

    write_byte(0)

    write_byte(10)

    write_byte(255)

    write_byte(50)

    write_byte(0)

    write_byte(random(255))

    write_byte(random(255))

    write_byte(random(255))

    write_byte(255)

    write_byte(0)

    message_end()

}



//from fakemeta_util.inc

stock fm_get_aim_origin(index, Float:origin[3])

{

    static Float:start[3], Float:view_ofs[3]

    pev(index, pev_origin, start)

    pev(index, pev_view_ofs, view_ofs)

    xs_vec_add(start, view_ofs, start)

   

    static Float:dest[3]

    pev(index, pev_v_angle, dest)

    engfunc(EngFunc_MakeVectors, dest)

    global_get(glb_v_forward, dest)

    xs_vec_mul_scalar(dest, 9999.0, dest)

    xs_vec_add(start, dest, dest)

   

    engfunc(EngFunc_TraceLine, start, dest, 0, index, 0)

    get_tr2(0, TR_vecEndPos, origin)

   

    return 1

}



stock move_toward_client(id, Float:origin[3])

{       

    static Float:player_origin[3]

   

    pev(id, pev_origin, player_origin)

   

    origin[0] += (player_origin[0] > origin[0]) ? 1.0 : -1.0

    origin[1] += (player_origin[1] > origin[1]) ? 1.0 : -1.0

    origin[2] += (player_origin[2] > origin[2]) ? 1.0 : -1.0

}

//Thanks Alka!

stock bool:is_aiming_at_sky(index)

{

    static target, temp

   

    get_user_aiming(index, target, temp)

   

    if(engfunc(EngFunc_PointContents,target) == CONTENTS_SKY)

        return true

   

    return false

}

 



#4 szelbi

    Hero

  • Power User

Reputacja: 373
Wszechpomocny

  • Postów:1 032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 27.05.2014 14:13

Spoiler

  • +
  • -
  • 0

#5 sdanielos

    Pomocny

  • Zbanowany

Reputacja: 8
Nowy

  • Postów:46
  • Imię:Daniell
  • Lokalizacja:DaLEKo
Offline

Napisano 27.05.2014 16:05

Po prostu dajesz vipowi flagę ADMIN_KICK. Nie potrzeba plutonu, lecz jakbyś chciał kolega chyba dał u góry.




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych