←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Problem z klasą ~ Zabójca

  • +
  • -
Eldo. - zdjęcie Eldo. 10.09.2013

Siemka !

Stworzyłem klasę, która:

  •            Ładuję na nożu niewidzialność lecz, gdy dodałem aby moc ładowała się tylko podczas stania w miejscu nie działa już niewidzialność
  • Klasę daje w załączniku

Załączone pliki

Odpowiedz

  • +
  • -
Vasto_Lorde - zdjęcie Vasto_Lorde 11.09.2013

Ja bym zamienił if'a z:

if(!(is_user_moving(id)) && get_entity_flags(id) & FL_ONGROUND && (!(button2 & (IN_FORWARD+IN_BACK+IN_MOVELEFT+IN_MOVERIGHT)) && weapon == 29))

na

if(!(button2 & IN_FORWARD) && !(button2 & IN_BACK) && !(button2 & IN_MOVELEFT) && !(button2 & IN_MOVERIGHT) !(button2 & IN_JUMP) && weapon == CSW_KNIFE))

Ponieważ nie jestem pewny czy dodawanie:

IN_FORWARD+IN_BACK

W ten sposób jest poprawne.

Odpowiedz

  • +
  • -
Eldo. - zdjęcie Eldo. 11.09.2013

Zrobiłem to co napisałeś lecz podczas kompilacji wywala błędy:

 

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


Error: Expected token: ")", but found "!" on line 54
Warning: Expression has no effect on line 54
Error: Expected token: ";", but found ")" on line 54
Error: Invalid expression, assumed zero on line 54
Error: Too many error messages on one line on line 54


Compilation aborted.
4 Errors.
Could not locate output file C:\Users\Krupek\Desktop\CodMod\scripting\zabojca.amx (compile failed).

 


Użytkownik maybe1love edytował ten post 11.09.2013 13:51
Odpowiedz

  • +
  • -
Vasto_Lorde - zdjęcie Vasto_Lorde 11.09.2013

Usuń ostatni ")", bo jest ten jeden za dużo.

Odpowiedz

  • +
  • -
Eldo. - zdjęcie Eldo. 11.09.2013

Nadal występuje taki błąd.

Odpowiedz

  • +
  • -
Vasto_Lorde - zdjęcie Vasto_Lorde 11.09.2013

Sorry, ślepy jestem.

if(!(button2 & IN_FORWARD) && !(button2 & IN_BACK) && !(button2 & IN_MOVELEFT) && !(button2 & IN_MOVERIGHT) && !(button2 & IN_JUMP) && weapon == CSW_KNIFE)

Skompilowałem klasę pomyślnie z tym.

Odpowiedz

  • +
  • -
Eldo. - zdjęcie Eldo. 11.09.2013

Klasa teraz się kompiluje ale nie działa jak powinna.

Powinna: Gdy raz załaduje pasek jest niewidzialny lecz jak zmieni na inną broń jest widzialny i tak za każdym razem musi ładować jak zmieni na nóż. Posiadam klasę, która działa dobrze tylko, że w biegu można ładować pasek a ja chcę aby tylko w miejscu mógł ładować.

Odpowiedz

  • +
  • -
Vasto_Lorde - zdjęcie Vasto_Lorde 12.09.2013

To zrób CurWeapon, i ustawiaj tam 255 alpha, jeśli nie ma noża.

Odpowiedz

  • +
  • -
Eldo. - zdjęcie Eldo. 12.09.2013

Mógłbyś mi to zrobić .?

Za pmoc daje :plus:

Odpowiedz

  • +
  • -
Vasto_Lorde - zdjęcie Vasto_Lorde 12.09.2013

Jestem prawie pewny, że chodzi ci o to:

Spoiler

 

A z CurWeapon się nei zrozumieliśmy, myślałem, że gracz ma cały czas niewidzialność jak naładuje. Kod napisany w szkole, niekompilowany, niesprawdzany.

Odpowiedz

  • +
  • -
Eldo. - zdjęcie Eldo. 12.09.2013

Dalej nie działa.

Tu daję działającą klasę lecz pasek ładuje się nawet, gdy gracz jest w ruchu.

#include <amxmodx>
#include <engine>
#include <codmod>
#include <fun>
#include <dhudmessage>


#define TIME 5.0 
#define UNIKAT 2013


new const nazwa[]   = "Zabojca";
new const opis[]    = "";
new const bronie    = (1<<CSW_P228)|(1<<CSW_TMP)|(1<<CSW_FLASHBANG);
new const zdrowie   = 0;
new const kondycja  = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;


new const TXT[] = "[Zabojca] Jestes tymczasowo niewidzialny (noz)";  


new msgBarTime;


new bool:ma_klase[33];


public plugin_init()
{
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    
    register_event("CurWeapon", "knife", "be", "1=1");
    
    msgBarTime = get_user_msgid("BarTime");
}


public cod_class_enabled(id)
{
    ma_klase[id] = true;
     
    set_user_footsteps(id, 1);
}


public cod_class_disabled(id)
{
    ma_klase[id] = false;
    
    set_user_footsteps(id, 0);
}




public knife(id)
{
    if(ma_klase[id])
    {
        if(read_data(2) == CSW_KNIFE)
        {
            if(!task_exists(id+UNIKAT))
            {
                new data[1];
                data[0] = id;
                bartime(id, floatround(TIME))
                set_task(TIME, "set_invisible", id+UNIKAT, data, 1)
            }
        }
        else
        {
            if(task_exists(id+UNIKAT))
            {
                remove_task(id+UNIKAT);
                bartime(id, 0);
            }
            set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
        }
    }
    
}


public set_invisible(data[])
{
    new id = data[0];
    set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 10);
    
    set_dhudmessage(255, 255, 0, -1.0, 0.2, 0, 6.0, 3.0)
    show_dhudmessage(id, TXT)
}


stock bartime(id, czas) 
{
    message_begin(MSG_ONE_UNRELIABLE, msgBarTime, .player = id);
    write_short(czas);
    message_end();    
}

 

Odpowiedz