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
CoD Stary

Klasa Chodząca po ścianie

CoD Stary

  • Zamknięty Temat jest zamknięty
15 odpowiedzi w tym temacie

#1 Pijany

    Nowy

  • Zbanowany

Reputacja: 1
Nowy

  • Postów:5
  • Imię:Szymon
  • Lokalizacja:Olsztyn
Offline

Napisano 11.08.2011 18:57

Witam chciałbym wam pokazać jak zrobić klasę chodzącą po ścianie.
Klasę zrobiłem z pomocą mojego kolegi Fortress.

To dodajemy Przed public plugin_init()
new Float:g_wallorigin[33][3];

To dodajemy Do public plugin_init()
register_forward(FM_Touch, "fwd_touch");

To dodajemy na koniec sma (i zmieniamy nazwaklasy na jaka klase)
public fwd_touch(id, world)
{
    if(!is_user_alive(id) || klasa_gracza[id] != nazwaklasy)//tu
        return FMRES_IGNORED;
    
    new classname[32];
    entity_get_string(world, EV_SZ_classname, classname, 31);
    
    if(equal(classname, "worldspawn") || equal(classname, "func_wall") || equal(classname, "func_breakable"))
        entity_get_vector(id, EV_VEC_origin, g_wallorigin[id]);
    return FMRES_IGNORED;
}
public client_PreThink(id)
{
    new button = get_user_button(id);
    if(button & IN_USE && klasa_gracza[id] == nazwaklasy)//tu
    {
        static Float:origin[3];
        entity_get_vector(id, EV_VEC_origin, origin);
        
        if(get_distance_f(origin, g_wallorigin[id]) > 25.0)    
            return FMRES_IGNORED;
    
        if(get_entity_flags(id) & FL_ONGROUND) 
            return FMRES_IGNORED;

        if(button & IN_FORWARD)
        {
            static Float:velocity[3];
            velocity_by_aim(id, 240, velocity);
            entity_set_vector(id, EV_VEC_velocity, velocity);
        }
        else if(button & IN_BACK)
        {
            static Float:velocity[3];
            velocity_by_aim(id, -240, velocity);
            entity_set_vector(id, EV_VEC_velocity, velocity);
        }
    }    
    return FMRES_IGNORED;
}


#2 alc0

    Zaawansowany

  • Użytkownik

Reputacja: 22
Życzliwy

  • Postów:104
  • Steam:steam
  • Imię:Kacper
  • Lokalizacja:Podkarpacie
Offline

Napisano 11.08.2011 23:09

Pytanie za 100pkt. czy dajesz mi absolutną gwarancję że ta funkcja nie wywala error logów i nie ma jakichś bugów?
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika

#3 Pijany

    Nowy

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:5
  • Imię:Szymon
  • Lokalizacja:Olsztyn
Offline

Napisano 12.08.2011 08:59

Na 1oo %. Sam używam tej klasy w moim cod mod. ;)

#4 Barto_12_SAS

    mów mi Paja

  • Użytkownik

Reputacja: 44
Pomocny

  • Postów:433
  • GG:
  • Imię:Bartosz
  • Lokalizacja:Dąbrowa
Offline

Napisano 12.08.2011 09:30

Świetnie - na to czekałem , teraz jeszcze tylko podpalanie wroga :D

Ale ja też mam pytanie - bo nie wrzucam na razie tego na serwa dopóki nie wiem jak to działa - więc jak działa te wspinianie ? Pod "+use" ? Czy na jakis inny klawisz ?

A i co zrobić aby kilka klas miało tą właściwość ?

Użytkownik SAS edytował ten post 12.08.2011 09:30

  • +
  • -
  • 0

www.BartoIT.pl

:plus: - klikasz to, a dzięki temu rozwijam ten profil
Odwiedź strefę pobierania i pobierz wersję testową alfa Counter Strike: Global terror MOD


#5 Pijany

    Nowy

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:5
  • Imię:Szymon
  • Lokalizacja:Olsztyn
Offline

Napisano 12.08.2011 10:19

Klasa jest normalnie pod klawiszem "e" czyli +use

Jeśli chcesz dodać kilkom klasom to tak:
if(!is_user_alive(id) || klasa_gracza[id] != nazwaklasy)//tu
zamien to na
if(!is_user_alive(id) || klasa_gracza[id] != nazwa klasy || klasa_gracza[id] != nazwa klasy 2)//tu


#6 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 12.08.2011 10:43

raczej
if(!is_user_alive(id) || (klasa_gracza[id] != nazwa klasy && klasa_gracza[id] != nazwa klasy 2))

  • +
  • -
  • 2

#7 Pijany

    Nowy

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:5
  • Imię:Szymon
  • Lokalizacja:Olsztyn
Offline

Napisano 12.08.2011 11:08

Hehe pisałem na szybko i się skomplikowało to napisałem :D

#8 alc0

    Zaawansowany

  • Użytkownik

Reputacja: 22
Życzliwy

  • Postów:104
  • Steam:steam
  • Imię:Kacper
  • Lokalizacja:Podkarpacie
Offline

Napisano 12.08.2011 11:36

Leci plusik :blaga: , ale nie jestem pewien czy skorzystać, bo mi ludzie będą latać gdzieś za tekstury... <_< Przydały by się dobre mapki do tego...
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika

#9 sharkowy

    Lokalna anomalia sejsmiczna o nieustalonej genezie.

  • Przyjaciel

Reputacja: 113
Zaawansowany

  • Postów:1 981
Offline

Napisano 12.08.2011 11:44

Nieźle, mój kod identycznie robiłem to kolesiowi na zamówienie ;)
  • +
  • -
  • 0

#10 Barto_12_SAS

    mów mi Paja

  • Użytkownik

Reputacja: 44
Pomocny

  • Postów:433
  • GG:
  • Imię:Bartosz
  • Lokalizacja:Dąbrowa
Offline

Napisano 12.08.2011 16:41

Leci plusik :blaga: , ale nie jestem pewien czy skorzystać, bo mi ludzie będą latać gdzieś za tekstury... <_< Przydały by się dobre mapki do tego...



Mapki ... te z KZ możnaby przerobić , ale troche z deka głupio chyba :/

Po za tym chyba te z 4fun tez byłby dobre .
  • +
  • -
  • 0

www.BartoIT.pl

:plus: - klikasz to, a dzięki temu rozwijam ten profil
Odwiedź strefę pobierania i pobierz wersję testową alfa Counter Strike: Global terror MOD


#11 Na 5tyk

    Godlike

  • Użytkownik

Reputacja: 430
Wszechobecny

  • Postów:1 712
  • GG:
  • Imię:Patryk
  • Lokalizacja:PL
Offline

Napisano 13.08.2011 08:26

ESL Map i nie beda wchodzic :)
  • +
  • -
  • 0

#12 xXxTravisxXx

    Pomocny

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:57
  • Imię:Czaki
  • Lokalizacja:Poznań
Offline

Napisano 19.08.2011 22:25

Tak jak pisze naciskam "e" i nic klasa nie chodzi po scianach ;/
  • +
  • -
  • 0

#13 Barto_12_SAS

    mów mi Paja

  • Użytkownik

Reputacja: 44
Pomocny

  • Postów:433
  • GG:
  • Imię:Bartosz
  • Lokalizacja:Dąbrowa
Offline

Napisano 20.08.2011 06:59

Tak jak pisze naciskam "e" i nic klasa nie chodzi po scianach ;/


Właśnie - dana klasa "przykleja sie" do ściany ( przynajmiej tak jest u mnie ) .
A spróbój tak - podejdź do ściany wskocz na nią i trzymaj "e" - powinno zadziałać .
  • +
  • -
  • 0

www.BartoIT.pl

:plus: - klikasz to, a dzięki temu rozwijam ten profil
Odwiedź strefę pobierania i pobierz wersję testową alfa Counter Strike: Global terror MOD


#14 Ciuchcia:D

    Profesjonalista

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:187
  • Imię:Ciuchcia
  • Lokalizacja:Warszawa
Offline

Napisano 20.08.2011 07:06

A ja probowalem zrobic jako item, ale nie dzialalo.


public fwd_touch(id, world)
{
    if(!is_user_alive(id) || informacje_przedmiotu_gracza[id][0] == XX)//tu
        return FMRES_IGNORED;
    
    new classname[32];
    entity_get_string(world, EV_SZ_classname, classname, 31);
    
    if(equal(classname, "worldspawn") || equal(classname, "func_wall") || equal(classname, "func_breakable"))
        entity_get_vector(id, EV_VEC_origin, g_wallorigin[id]);
    return FMRES_IGNORED;
}
public client_PreThink(id)
{
    new button = get_user_button(id);
    if(button & IN_USE && informacje_przedmiotu_gracza[id][0] == XX)//tu
    {
        static Float:origin[3];
        entity_get_vector(id, EV_VEC_origin, origin);
        
        if(get_distance_f(origin, g_wallorigin[id]) > 25.0)    
            return FMRES_IGNORED;
    
        if(get_entity_flags(id) & FL_ONGROUND) 
            return FMRES_IGNORED;

        if(button & IN_FORWARD)
        {
            static Float:velocity[3];
            velocity_by_aim(id, 240, velocity);
            entity_set_vector(id, EV_VEC_velocity, velocity);
        }
        else if(button & IN_BACK)
        {
            static Float:velocity[3];
            velocity_by_aim(id, -240, velocity);
            entity_set_vector(id, EV_VEC_velocity, velocity);
        }
    }    
    return FMRES_IGNORED;
}

Jakby ktos umial to zrobic prosilbym bardzo
  • +
  • -
  • 0

#15 xXxTravisxXx

    Pomocny

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:57
  • Imię:Czaki
  • Lokalizacja:Poznań
Offline

Napisano 20.08.2011 07:53

SAS próbowałem i nic z tego nie wyszło ;/
  • +
  • -
  • 0

#16 Qski

    Pomocny

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:72
  • GG:
  • Lokalizacja:Lubichowo
Offline

Napisano 29.08.2011 13:54

Jeśli ktoś już ma
public client_PreThink(id)
niech wkleji to:
{
new button = get_user_button(id);
if(button & IN_USE && klasa_gracza[id] == nazwaklasy)//tu
{
static Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);

if(get_distance_f(origin, g_wallorigin[id]) > 25.0)
return FMRES_IGNORED;

if(get_entity_flags(id) & FL_ONGROUND)
return FMRES_IGNORED;

if(button & IN_FORWARD)
{
static Float:velocity[3];
velocity_by_aim(id, 240, velocity);
entity_set_vector(id, EV_VEC_velocity, velocity);
}
else if(button & IN_BACK)
{
static Float:velocity[3];
velocity_by_aim(id, -240, velocity);
entity_set_vector(id, EV_VEC_velocity, velocity);
}
}
return FMRES_IGNORED;
}
zaraz po pierwszym otwarciu

Użytkownik Qski edytował ten post 11.09.2011 06:20

  • +
  • -
  • 0





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

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

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