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
Inny

[JB] VIP, błędy podczas kompilacji :/

inny

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

#1 Dragon1020

    Pomocny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:50
  • Lokalizacja:Polska
Offline

Napisano 27.11.2013 02:52

Otóż próbowałem przerobić vipa, dodać kilka innych profesji, aż do momentu gdy przy profesji Trucizna wyskoczyły błędy oraz przy regeneracji HP

 

Oto .sma:

 

  
 

    /*
            Changelog:
                    19.02.2012r. 1.0 beta
                    13.03.2012r. 1.1 beta - dodanie możliwości zapisu wybranej opcji (nvault) i upiększenie menu
     */
     
    #include <amxmodx>
    #include <amxmisc>
    #include <hamsandwich>
    #include <cstrike>
    #include <fun>
    #include <fakemeta>
    #include <engine>
    #include <colorchat>
    #include <nvault>
    #include <fakemeta_util>
     
    #define PLUGIN "Vip JailBreak"
    #define VERSION "1.1"
    #define AUTHOR "KreC!K"

    #define ZADANIE_WSKRZES 6240
    #define VIPS
    #define GRAWITACJA 0.5
    #define FLAGA ADMIN_LEVEL_G
    //#define ZAPIS
     
    #define MAX 32             //Max number of valid player entities

    #pragma tabsize 0
     
    #if defined VIPS
    new maxplayers
    #endif
    #if defined ZAPIS
    new vault
    #endif
    new wybor_gracza[33]
    new skoki2[33]
    new freeze[33]
    new zamrozenie[33]
    new morfina[33]
    new niewidzialnosc[33]
    new odbicie[33]
    new wartosc_odbicia[33]
    new regeneracja[33]

    new g_msg_screenfade
    #define TASK_ID 128000
    #define CZAS_LADOWANIA 10 // Jak dlugo ma sie ladowac moc w s
    new moc_zaladowana[33]
    new zatrucie[33]
    new msg_bartime

    new player_b_eye[33] = 0        //Ability to place camera
    new sprite_line = 0

     
    enum { Brak = 0, Grawitacja, Regeneracja, Skoki, Morfina, Zamrozenie, Duszek, Gumowy, Trucizna, Kamera }
     
    public plugin_init() {
            register_plugin(PLUGIN, VERSION, AUTHOR)
           
           
            register_clcmd("say /vip_menu", "menu_cmd")
            #if defined VIPS
            maxplayers = get_maxplayers()
            register_clcmd("say /vips", "print_vips", 0);
            register_clcmd("say /vipy", "print_vips", 0);
            register_clcmd("say /vipinfo", "MOTD")
            #endif
           
            RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1)
            RegisterHam(Ham_TakeDamage, "player", "TakeDamage", 1)
            RegisterHam(Ham_Killed, "player", "Killed", 1);
           
            register_forward(FM_CmdStart, "CmdStart");
            register_forward(FM_PlayerPreThink, "client_PreThink");
            register_forward(FM_PlayerPreThink, "regeneration_health", 1);

            register_event("CurWeapon", "CurWeapon", "be", "1=1");
            register_event("ResetHUD", "ResetHUD", "abe");
            register_event("Damage", "Damage", "be", "2!0", "3=0", "4!0");

            register_think("PlayerCamera","Think_PlayerCamera");

            msg_bartime = get_user_msgid("BarTime");
            g_msg_screenfade = get_user_msgid("ScreenFade");
           
            #if defined ZAPIS
            vault=nvault_open("Menu")
            if (vault == INVALID_HANDLE)
            set_fail_state( "Nie moge otworzyc pliku :/");
            #endif
    }
    #if defined ZAPIS
    public client_connect(id)
    {
            load_wybor(id)
    }
    #endif
    public menu_cmd(id)
    {
            if(get_user_flags(id) & ADMIN_LEVEL_G)
            {
                    if(cs_get_user_team(id) == CS_TEAM_T)
                    {
                            new tytul[128], name[32], wybor[128]
                           
                            if(wybor_gracza[id] == Brak)
                                    format(wybor, 127, "\ybrak.")
                            if(wybor_gracza[id] == Grawitacja)
                                    format(wybor, 127, "\ygrawitacja.")
                            if(wybor_gracza[id] == Skoki)
                                    format(wybor, 127, "\ypodwojny skok.")
                            if(wybor_gracza[id] == Duszek)
                                    format(wybor, 127, "\yniewidzialnosc.")
                            if(wybor_gracza[id] == Gumowy)
                                    format(wybor, 127, "\ygumowy pancerz.")
                            if(wybor_gracza[id] == Trucizna)
                                    format(wybor, 127, "\yzatruwasz.")
                                   
                            get_user_name(id, name, 31)
                            format(tytul, 127, "\y%s, \rwitaj w menu do zarzadzania Vip'em\d by KreC!K^n\wTwoja aktualnie uzyta opcja to: %s", name, wybor)
                            new menu = menu_create(tytul, "menu_tt")
                            menu_additem(menu, "Grawitacja") // item = 0
                            menu_additem(menu, "Podwojny skok") // item = 1
                            menu_additem(menu, "Widzialnosc [10/255] gdy sie nie ruszasz") // item = 2
                            menu_additem(menu, "Gumowy Pancerz [1/5] na odbicie pocisku") // item = 3
                            menu_additem(menu, "Po zaladowaniu noza [10s],[1/6],[8dmg/5s] na zatrucie") // item = 4
                            #if defined ZAPIS
                            menu_additem(menu, "\rZapisz swoja wybrana opcje\d(bedzie ona wczytana przy kazdym polaczeniu z serwerem [mozna zmienic])")
                            #endif
                            menu_display(id, menu, 0)
                    }
                    else if(cs_get_user_team(id) == CS_TEAM_CT)
                    {
                            new tytul[128], name[32], wybor[128]
                           
                            if(wybor_gracza[id] == Brak)
                                    format(wybor, 127, "\ybrak.")
                            if(wybor_gracza[id] == Grawitacja)
                                    format(wybor, 127, "\ygrawitacja.")
                            if(wybor_gracza[id] == Regeneracja)
                                    format(wybor, 127, "\yregeneracja.")
                            if(wybor_gracza[id] == Skoki)
                                    format(wybor, 127, "\ypodwojny skok.")
                            if(wybor_gracza[id] == Morfina)
                                    format(wybor, 127, "\ymorfina.")
                            if(wybor_gracza[id] == Zamrozenie)
                                    format(wybor, 127, "\yzamrozenie.")
                            if(wybor_gracza[id] == Kamera)
                                    format(wybor, 127, "\ykamera.")
                           
                            get_user_name(id, name, 31)
                            format(tytul, 127, "\y%s, \rwitaj w menu do zarzadzania Vip'em\d by KreC!K^n\wTwoja aktualnie uzyta opcja to: %s", name, wybor)
                            new menu = menu_create(tytul, "menu_ct")
                            menu_additem(menu, "Grawitacja") // item = 0
                            menu_additem(menu, "Regeneracja HP na kucaniu z nozem [do 100HP]") // item = 0
                            menu_additem(menu, "Podwojny skok") // item = 1
                            menu_additem(menu, "Morfina [1/2]") // item = 2
                            menu_additem(menu, "Zamrozenie [1/4]") // item = 3
                            menu_additem(menu, "Kamera [E]") // item = 4
                            #if defined ZAPIS
                            menu_additem(menu, "\rZapisz swoja wybrana opcje\d(bedzie ona wczytana przy kazdym polaczeniu z serwerem [mozna zmienic])")
                            #endif
                            menu_display(id, menu, 0)
                    }
            }
            else
            client_print(id, print_chat, "[Vip] Nie masz dostepu do tej uslugi.")
           
            return 0
    }
    public menu_tt(id, menu, item)
    {
            switch(item)
            {
            case 0:{
                            wybor_gracza[id] = Grawitacja
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04grawitacje^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
                    }
            case 1:{
                            wybor_gracza[id] = Skoki
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04podwojny skok^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
                    }
            case 2:{
                            wybor_gracza[id] = Duszek
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04duszka, nie ruszaj sie by utrzymac niska widzialnosc!^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
}
            case 3:{
                            wybor_gracza[id] = Gumowy
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04gumowy pancerz 1/5 na odbicie pocisku^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
}
            case 4:{
                            wybor_gracza[id] = Trucizna
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04Trucizne i po zaladowaniu noza(10s) masz 1/6 na zabranie 8dmg co 5sek po trafieniu w straznika^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
                    }
                    #if defined ZAPIS
            case 5:{
                            save_wybor(id)
                           
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wlasnie zapisano ^x04Twoj ^x03wybor.")
                    }
                    #endif
            }
    }
    public menu_ct(id, menu, item)
    {
            switch(item)
            {
            case 0:{
                            wybor_gracza[id] = Grawitacja
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04grawitacje^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
                    }
            case 1:{
                            wybor_gracza[id] = Regeneracja
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04 regeneracje, kucnij z nozem zeby zregenerowac do 100HP^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
                    }
            case 2:{
                            wybor_gracza[id] = Skoki
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04podwojny skok^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
                    }
            case 3:{
                            wybor_gracza[id] = Morfina
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04morfine^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
                    }
            case 4:{
                            wybor_gracza[id] = Zamrozenie
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04zamrozenie^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
                    }
            case 5:{
                            wybor_gracza[id] = Kamera
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04kamere, stawiasz na (E) i potem widok kamera/normal na (E)^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.")
                    }
                    #if defined ZAPIS
            case 6:{
                            save_wybor(id)
                           
                            ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wlasnie zapisano ^x04Twoj ^x03wybor.")
                    }
                    #endif
            }
    }
    public Odrodzenie(id)
    {
            if(wybor_gracza[id] == Grawitacja && (get_user_flags(id) & ADMIN_LEVEL_G))
            set_user_gravity(id, GRAWITACJA)
            set_user_rendering(id, kRenderFxNone, 255,0,0, kRenderTransAlpha, 999)
            if(wybor_gracza[id] == Regeneracja && cs_get_user_team(id) == CS_TEAM_CT && (get_user_flags(id) & ADMIN_LEVEL_G))
            if(is_user_alive(id))
            set_user_rendering(id, kRenderFxNone, 0,0,0, kRenderTransAlpha, 999)
            if(wybor_gracza[id] == Zamrozenie && cs_get_user_team(id) == CS_TEAM_CT && (get_user_flags(id) & ADMIN_LEVEL_G))
            set_user_rendering(id, kRenderFxNone, 0,0,0, kRenderTransAlpha, 999)
            if(wybor_gracza[id] == Morfina && cs_get_user_team(id) == CS_TEAM_CT && (get_user_flags(id) & ADMIN_LEVEL_G))
            if(wybor_gracza[id] == Duszek && cs_get_user_team(id) == CS_TEAM_T && (get_user_flags(id) & ADMIN_LEVEL_G))
            if(wybor_gracza[id] == Gumowy && cs_get_user_team(id) == CS_TEAM_T && (get_user_flags(id) & ADMIN_LEVEL_G))
            wartosc_odbicia[id] = 3;
            if(wybor_gracza[id] == Trucizna && cs_get_user_team(id) == CS_TEAM_T && (get_user_flags(id) & ADMIN_LEVEL_G))
            if(wybor_gracza[id] == Kamera && cs_get_user_team(id) == CS_TEAM_CT && (get_user_flags(id) & ADMIN_LEVEL_G))
           
           
           
            //////////////do skoków
            if(wybor_gracza[id] == Skoki && (get_user_flags(id) & ADMIN_LEVEL_G))
            skoki2[id] = 1
            if(wybor_gracza[id] != Skoki)
            skoki2[id] = 0
            ////////////// i koniec
     
            //////////////do freeza
            if(wybor_gracza[id] == Zamrozenie && (get_user_flags(id) & ADMIN_LEVEL_G))
            freeze[id] = 1
            if(wybor_gracza[id] != Zamrozenie)
            freeze[id] = 0
            ////////////// i koniec

            //////////////do morfiny
            if(wybor_gracza[id] == Morfina && (get_user_flags(id) & ADMIN_LEVEL_G))
            morfina[id] = 1
            if(wybor_gracza[id] != Morfina)
            morfina[id] = 0
            ////////////// i koniec

            //////////////do duszka
            if(wybor_gracza[id] == Duszek && (get_user_flags(id) & ADMIN_LEVEL_G))
            niewidzialnosc[id] = 1
            if(wybor_gracza[id] != Duszek)
            niewidzialnosc[id] = 0
            ////////////// i koniec

            //////////////do gumowego pancerza
            if(wybor_gracza[id] == Gumowy && (get_user_flags(id) & ADMIN_LEVEL_G))
            odbicie[id] = 1
            if(wybor_gracza[id] != Duszek)
            odbicie[id] = 0
            ////////////// i koniec

            //////////////do trucizny
            if(wybor_gracza[id] == Trucizna && (get_user_flags(id) & ADMIN_LEVEL_G))
            zatrucie[id] = 1
            if(wybor_gracza[id] != Trucizna)
            zatrucie[id] = 0
            ////////////// i koniec

            //////////////do trucizny
            if(wybor_gracza[id] == Kamera && (get_user_flags(id) & ADMIN_LEVEL_G))
            player_b_eye[id] = 1
            if(wybor_gracza[id] != Kamera)
            player_b_eye[id] = 0
            ////////////// i koniec

            //////////////do regeneracji
            if(wybor_gracza[id] == Regeneracja && (get_user_flags(id) & ADMIN_LEVEL_G))
            regeneracja[id] = 1
            if(wybor_gracza[id] != Regeneracja)
            regeneracja[id] = 0
            ////////////// i koniec

}
public plugin_precache()
{
    precache_model("models/rpgrocket.mdl")
    sprite_line = precache_model("sprites/dot.spr")
    }
    public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
    {
            new liczba = random_num(1, 4)
           
            if(!is_user_connected(idattacker))
                    return HAM_IGNORED;
     
            if(!freeze[idattacker])
                    return HAM_IGNORED;
                   
            if(freeze[idattacker] && damage>0 && !zamrozenie[this] && liczba==4){
                    fm_set_rendering(this, kRenderFxGlowShell, 0,0,255, kRenderGlow, 60)
                    zamrozenie[this] = true
                    set_pev(this, pev_flags, FL_FROZEN)
                    set_task(5.0, "Odmroz", this)
            }
            if(zamrozenie[this])
                    return HAM_SUPERCEDE
                   
            return HAM_IGNORED
    }
    public Odmroz(id)
    {
            set_pev(id, pev_flags, FL_CLIENT)
            fm_set_rendering(id, kRenderFxGlowShell, 0,0,0, kRenderGlow, 100)
            zamrozenie[id] = false
    }
    public CmdStart(id, uc_handle)
    {
            static moze_skoczyc;
           
            if(!is_user_alive(id) || !(get_user_flags(id) & ADMIN_LEVEL_G))
            return FMRES_IGNORED;
           
            if(skoki2[id] == 1 && (get_user_flags(id) & ADMIN_LEVEL_H))
            {
                   
                    new button = get_uc(uc_handle, UC_Buttons);
                    new oldbutton = pev(id, pev_oldbuttons);
                    new flags = pev(id, pev_flags);
                    if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && moze_skoczyc & (1<<id))
                    {
                            moze_skoczyc &=  ~(1<<id)  
                            new Float:velocity[3];
                            pev(id, pev_velocity, velocity);
                            velocity[2] = random_float(265.0,285.0);
                            set_pev(id, pev_velocity, velocity);
                    }
                    else if(flags & FL_ONGROUND){
                            moze_skoczyc |= (1<<id)
                    }
                   
            }
            return FMRES_IGNORED;
           
    }
    #if defined VIPS
    public print_vips(user)
    {
            new adminnames[33][32]
            new message[256]
            new id, count, x, len
           
            for(id = 1 ; id <= maxplayers ; id++)
                    if(is_user_connected(id))
                    if(get_user_flags(id) & FLAGA)
                    get_user_name(id, adminnames[count++], 31)
           
            len = format(message, 255, "^x04 VIPY ONLINE: ")
            if(count > 0) {
                    for(x = 0 ; x < count ; x++) {
                            len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
                            if(len > 96 ) {
                                    ColorChat(user, GREEN, "%s", message);
                                    len = format(message, 255, "^x04 ")
                            }
                    }
                    ColorChat(user, GREEN, "%s", message);
            }
            else {
                    len += format(message[len], 255-len, "Brak Vipow ONLINE")
                   
                    ColorChat(user, GREEN, "%s", message);
            }
           
           
    }
    #endif
    public MOTD( id,level,cid ) {
           
            if ( !cmd_access(id,level,cid,1) )
            return PLUGIN_CONTINUE
           
            show_motd( id,"vip.txt","Informacje VIP." );
           
            return PLUGIN_CONTINUE
    }
    public client_disconnect(id){
            wybor_gracza[id] = Brak
    }
    #if defined ZAPIS
    public plugin_end()
            nvault_close(vault)
           
    public load_wybor(id)
    {
            new name[35]
            get_user_name(id,name,34)
            new vaultkey[64],vaultdata[256]
            format(vaultkey,63,"%s-wybor",name)
            format(vaultdata,255,"%d",wybor_gracza[id])
            nvault_get(vault,vaultkey,vaultdata,255)
           
            new wybortemp[33]
            parse(vaultdata,wybortemp, 32)
           
            wybor_gracza[id]=str_to_num(wybortemp)
     
            return PLUGIN_CONTINUE
    }  
     
    public save_wybor(id){
           
            new name[35]
            get_user_name(id,name,34)
            new vaultkey[64],vaultdata[256]
            format(vaultkey,63,"%s-wybor",name)
            format(vaultdata,255,"%d", wybor_gracza[id])
            nvault_set(vault,vaultkey,vaultdata)
           
            return PLUGIN_CONTINUE
    }
    #endif
public Killed(id)
{
    if(morfina[id] && random_num(1,3) == 1)
        set_task(0.1, "Wskrzes", id+ZADANIE_WSKRZES);
}

public Wskrzes(id)
    ExecuteHamB(Ham_CS_RoundRespawn, id-ZADANIE_WSKRZES);

public client_PreThink ( id )
{
    //USE Button actives USEMAGIC
    if (pev(id,pev_button) & IN_USE )
        Use_Spell(id)
    
    return;

new button2 = get_user_button(id);

//USE Button actives forward\backward\left\right

if (niewidzialnosc[id] && get_entity_flags(id) & FL_ONGROUND && (!(button2 & (IN_FORWARD+IN_BACK+IN_MOVELEFT+IN_MOVERIGHT)) && is_user_alive(id)))
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 10);
}
else set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);

return;

    if(!task_exists(id+TASK_ID))
    return;
    
    if(pev(id, pev_button) & (IN_MOVELEFT+IN_MOVERIGHT+IN_FORWARD+IN_BACK+IN_JUMP+IN_DUCK))
    {
        change_task(id+TASK_ID, CZAS_LADOWANIA.0);
        set_bartime(id, CZAS_LADOWANIA);
    }
}

public CurWeapon(id)
{
    if(get_user_weapon(id) == CSW_KNIFE && !moc_zaladowana[id] && zatrucie[id])
    {
        set_task(CZAS_LADOWANIA.0, "MocZaladowana", id+TASK_ID);
        set_bartime(id, CZAS_LADOWANIA);
    }
    else
    {
        remove_task(id+TASK_ID);
        set_bartime(id, 0);
    }
}

stock set_bartime(id, czas)
{
    message_begin((id)?MSG_ONE:MSG_ALL, msg_bartime, _, id)
    write_short(czas);
    message_end();   
}

public MocZaladowana(id)
{
    id -= TASK_ID;
    
    if(!zatrucie[id]) return;
    
    moc_zaladowana[id] = true;
    client_print(id, print_center, "Umiejetnosc zostala aktywowana!");
    CurWeapon(id);
}
    
    
public ResetHUD(id) moc_zaladowana[id] = false;

#define TASK_ZATRUCIE 64000

new zatruwajacy[33];

public Damage(id)
{
    new attacker = get_user_attacker(id);

    if(!is_user_alive(attacker)) return;
    
    if(!moc_zaladowana[attacker]) return;
    
    zatruwajacy[id] = attacker;
    if(!task_exists(id+TASK_ZATRUCIE)) set_task(1.0, "Zatruj", id+TASK_ZATRUCIE, _, _, "a", 5);

    new idattacker = get_user_attacker(id);

    

    if(!is_user_connected(idattacker) || get_user_team(id) == get_user_team(idattacker))

    return;

    

    if(odbicie[idattacker] && random_num(1, wartosc_odbicia[idattacker]) == 1)

        Display_Fade(id, 1<<14, 1<<14 ,1<<16, 0, 255, 0, 230);

    

    return;

}



stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)

{

    message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id );

    write_short( duration );

    write_short( holdtime );    

    write_short( fadetype );    

    write_byte ( red );        

    write_byte ( green );        

    write_byte ( blue );    

    write_byte ( alpha );    

    message_end();

}
public Zatruj(id)
{
    id -= TASK_ZATRUCIE;
    client_print(id, print_center, "Zostales zatruty!!");
    ExecuteHamB(!zatruwajacy[id], id, 8.0, 0.0);
}
public Use_Spell(id)
{
    if (player_b_eye[id] != 0) item_eye(id)
    return PLUGIN_HANDLED
}
public item_eye(id)
{
    if (player_b_eye[id] == -1)
    {
        //place camera
        new Float:playerOrigin[3]
        entity_get_vector(id,EV_VEC_origin,playerOrigin)
        new ent = create_entity("info_target")
        entity_set_string(ent, EV_SZ_classname, "PlayerCamera")
        entity_set_int(ent, EV_INT_movetype, MOVETYPE_NOCLIP)
        entity_set_int(ent, EV_INT_solid, SOLID_NOT)
        entity_set_edict(ent, EV_ENT_owner, id)
        entity_set_model(ent, "models/rpgrocket.mdl")                  //Just something
        entity_set_origin(ent,playerOrigin)
        entity_set_int(ent,EV_INT_iuser1,0)        //Viewing through this camera                        
        set_rendering (ent,kRenderFxNone, 0,0,0, kRenderTransTexture,0)
        entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01)
        player_b_eye[id] = ent
    }
    else
    {
        //view through camera or stop viewing
        new ent = player_b_eye[id]
        if (!is_valid_ent(ent))
        {
            attach_view(id,id)
            return PLUGIN_HANDLED
        }
        new viewing = entity_get_int(ent,EV_INT_iuser1)
        
        if (viewing)
        {    
            entity_set_int(ent,EV_INT_iuser1,0)
            attach_view(id,id)
        }    
        else
        {
            entity_set_int(ent,EV_INT_iuser1,1)
            attach_view(id,ent)
        }
    }
    
    return PLUGIN_HANDLED
}

/* ==================================================================================================== */

//Called when PlayerCamera thinks
public Think_PlayerCamera(ent)
{
    new id = entity_get_edict(ent,EV_ENT_owner)
    
    //Check if player is still having the item and is still online
    if (!is_valid_ent(id) || player_b_eye[id] == 0 || !is_user_connected(id))
    {
        //remove entity
        if (is_valid_ent(id) && is_user_connected(id)) attach_view(id,id)
        remove_entity(ent)
    }
    else
    {
        //Dont use cpu when not alive anyway or not viewing
        if (!is_user_alive(id))
        {
            entity_set_float(ent,EV_FL_nextthink,halflife_time() + 3.0)
            return PLUGIN_HANDLED
        }
        
        if (!entity_get_int(ent,EV_INT_iuser1))
        {
            entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.5)
            return PLUGIN_HANDLED
        }
        
        entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01)
        
        //Find nearest player to camera
        new Float:pOrigin[3],Float:plOrigin[3],Float:ret[3]
        entity_get_vector(ent,EV_VEC_origin,plOrigin)
        new Float:distrec = 2000.0, winent = -1
        
        for (new i=0; i<MAX; i++)
        {
            if (is_user_connected(i) && is_user_alive(i))
            {
                entity_get_vector(i,EV_VEC_origin,pOrigin)
                pOrigin[2]+=10.0
                if (trace_line ( 0, plOrigin, pOrigin, ret ) == i && vector_distance(pOrigin,plOrigin) < distrec)
                {
                    winent = i
                    distrec = vector_distance(pOrigin,plOrigin)
                }
            }    
        }
        
        //Traceline and updown is still revresed
        if (winent > -1)
        {
            new Float:toplayer[3], Float:ideal[3],Float:pOrigin[3]
            entity_get_vector(winent,EV_VEC_origin,pOrigin)
            pOrigin[2]+=10.0
            toplayer[0] = pOrigin[0]-plOrigin[0]
            toplayer[1] = pOrigin[1]-plOrigin[1]
            toplayer[2] = pOrigin[2]-plOrigin[2]
            vector_to_angle ( toplayer, ideal )
            ideal[0] = ideal[0]*-1
            entity_set_vector(ent,EV_VEC_angles,ideal)
        }
    }
    
    return PLUGIN_CONTINUE
}

public Create_Line(id,origin1[3],origin2[3],bool:draw)
{
    if (draw)
    {
        message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
        write_byte(0)
        write_coord(origin1[0])    // starting pos
        write_coord(origin1[1])
        write_coord(origin1[2])
        write_coord(origin2[0])    // ending pos
        write_coord(origin2[1])
        write_coord(origin2[2])
        write_short(sprite_line)    // sprite index
        write_byte(1)        // starting frame
        write_byte(5)        // frame rate
        write_byte(2)        // life
        write_byte(3)        // line width
        write_byte(0)        // noise
        write_byte(255)    // RED
        write_byte(50)    // GREEN
        write_byte(50)    // BLUE                    
        write_byte(155)        // brightness
        write_byte(5)        // scroll speed
        message_end()
    }
    
    new Float:ret[3],Float:fOrigin1[3],Float:fOrigin2[3]
    //So we dont hit ourself
    origin1[2]+=50
    IVecFVec(origin1,fOrigin1)
    IVecFVec(origin2,fOrigin2)
    new hit = trace_line ( 0, fOrigin1, fOrigin2, ret )
    return hit
    
}    

//Przy kucaniu
public regeneration_health(id)
{
    if((!regeneracja[id]) && is_user_alive(id))
        return;
    
    new button = get_user_button(id);
    if( button & IN_DUCK && get_user_weapon(id) == CSW_KNIFE)
    {
        if(get_user_health(id) > 100+cod_get_user_health( id, 1, 1, 1 ))
            return;
        else give_max_hp(id)
    }
    
}
public give_max_hp(id) set_user_health(id,get_user_health(id)+1)

A oto wyskakujące błędy podczas kompilacji:

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

abc.sma(478) : warning 225: unreachable code
abc.sma(490) : warning 225: unreachable code
abc.sma(599) : warning 213: tag mismatch
abc.sma(764) : error 017: undefined symbol "cod_get_user_health"

1 Error.
Could not locate output file abc.amxx (compile failed).

Wiadomo niektóre profesje a praktycznie większość są brane z perków/klas ale w większości nie było z tym problemu i działało (kwestia zmiany z new bool:ma_perk[33] na np. new zatrucie[33] ale z powyższymi błędami nie potrafię sobie poradzić i stąd proszę o pomoc

Nie wiem czy w dobrym dziale, myślę, że tak

Oczywiście zasłużony "+" dla osoby której uda się z tym uporać :)


  • +
  • -
  • 0

#2 Dragon1020

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:50
  • Lokalizacja:Polska
Offline

Napisano 27.11.2013 19:43

Nie mogę coś edytować postu więc:

Dodam jeszcze że nie działa zamrożenie, kamera i zatrucie, po zamrożeniu nie widać gracza w ogóle :/

kilka rzeczy pobugowanych przez to większość nie chce działać :/

(W razie "w" to na mod Jail Break)


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: inny

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

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