Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

[ROZWIĄZANE] Kilka pytań odnośnie tower defense


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

#1 ExTaza?!

    Wszechobecny

  • Użytkownik

Reputacja: 104
Zaawansowany

  • Postów:424
  • GG:
  • Imię:Piotr
  • Lokalizacja:Leszno
Offline

Napisano 09.02.2015 20:52

Cześć!
Z racji tego, ze przejąłem mod Tower Defense mam do was kilka pytań.

0. Lepszy engine czy fakemeta w zarządzaniu entami ?

1. Lepsze jest tworzenie entow przy plugin_precache a potem edytowanie ich właściwości, czy tak jak jest teraz czyli tworzenie, usuwanie, tworzenie, usuwanie..

2. Jak najlepiej nadać niewidzialność entowi ? set_rendering, set_ent_rendering czy set_entity_visiblity ?

3.

public fwAddToFullPack(es_handle, e, ENT, HOST, hostflags, player, set) {
    if(player || !is_user_connected(HOST) || !is_user_alive(HOST) || !is_valid_ent(ENT)) 
        return FMRES_IGNORED;
        
    if(td_is_ranger(ENT) && entity_get_int(ENT, EV_INT_ranger_status)) {    
        if(entity_get_edict(ENT, EV_ENT_turret_owner) == HOST) {
            set_es(es_handle, ES_RenderMode, kRenderTransAdd)
            set_es(es_handle, ES_RenderAmt, 255)
        }
        else {
            set_es(es_handle, ES_RenderMode, kRenderTransAdd)
            set_es(es_handle, ES_RenderAmt, 0)
        }
    }
    else if(td_is_ammobar(ENT)) {
        for(new i ; i < MAX_PLAYER_TURRET ; i++) {
            if(is_valid_ent( entity_get_edict(gPlayerTurretEnt[HOST][i], EV_ENT_turret_ammobar)))
                entity_set_float( entity_get_edict(gPlayerTurretEnt[HOST][i], EV_ENT_turret_ammobar), EV_FL_scale, gfPlayerAmmoBarScale[HOST])
        }
        
        if(gCvarValue[TURRET_SHOW_AMMO_BAR] == 1) {
            if(entity_get_edict(ENT, EV_ENT_turret_owner) == HOST) {
                set_es(es_handle, ES_RenderMode, kRenderTransTexture)
                set_es(es_handle, ES_RenderAmt, 255)
            }
            else {
                set_es(es_handle, ES_RenderMode, kRenderTransTexture)
                set_es(es_handle, ES_RenderAmt, 0)
            }
        }
    }    
                
    return FMRES_IGNORED;
}  

Ranger oraz ammo bar widzi każdy.. Dlaczego ? (ranger_status daje 1 jeśli ranger ma być widoczny dla WŁAŚCICIELA, 0 jeśli nie)

Użytkownik GwynBleidD edytował ten post 09.02.2015 23:25

  • +
  • -
  • 0

http://www.Cs-Kurnik.pl - Zapraszam!

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: awp.cs-kurnik.pl:27017 / 155.133.43.190:27017

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: ts3.cs-kurnik.pl - Darmowe kanały                     


#2 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

  • Postów:5411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 16.02.2015 01:07

0. Na to odpowiedzi nie znajdziesz, co najwyżej opinie zwolenników enginu lub fakemety. Różnice jakieś niby są, ale bardzo mało znaczące. Od siebie dodam, że sam stosuję taką zasadę, że jeśli mogę coś zrobić bez korzystania z fakemety, to robię to w engine, a jeśli chociaż jedna rzecz jest mi potrzebna z fakemety, to korzystam z fakemety, czyli z jednej strony staram się używać tylko engine, ale z drugiej strony, robię tak, żeby nie używać dwóch na raz.
1. To zależy jak często jakiś ent jest potrzebny, no i ogólnie do czego.
2. Ja tam zawsze używam "set_rendering".
3. Teraz tego nie ogarnę, późno i nie chce mi się.
  • +
  • -
  • 1
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Generator tabeli expa - aż do 103600 poziomu

#3 ExTaza?!

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 104
Zaawansowany

  • Postów:424
  • GG:
  • Imię:Piotr
  • Lokalizacja:Leszno
Offline

Napisano 16.02.2015 21:47

0. Mam takie samo zdanie, tylko myślałem, że są "inne" rozwiązania

1. Co Wave(aktualnie) są tworzone nowe enty z nowymi potworami, jeśli ich hp <= 0 wtedy jest odgrywana animacja śmierci i w zależności od czasu usuwa enta potowra. Bardzo podobnie jest z ich healthbarami, tylko one są usuwane zaraz po hp<= 0.

2. Dzięki

3. Powiedzmy, że "próbowaliśmy"(mrG) coś zdziałać, dla testów ustawiłem wypisywanie zmiennych, i wszystko wchodzi(wszystkie zmienne) są poprawne, czyli jeżeli jest właścicielem, to wchodzi do tego ifa, jednak tak jakby set_es nie działało. Jeśli może to zmienić dalszy przebieg: Używam najnowszej wersji 1.8.3dev. (build nr... jakiś tam, aktualizuje na bieżąco). Pan G podsunął mi pomysł ze zwracanymi wartościami, FMRES_IGNORED, FMRES_OVVERIDE....

I tutaj jest bez sens.
- Jeśli ustawie w każdym z tych RenderAmt na 0 (czyli nie powinno pokazywać wogóle) to pokazje każdemu.
--- Jeśli ustawie w każdym z tych RenderAmt na 0 oraz zwrócę FMRES_OVERRIDE to nie pokaże ŻADNEGO ENTU, tak jakby wszystko było nie widzialne. (Przy FMRES_IGNORED pokazuje kazdemu)

- Jeśli jest tak jak teraz w kodzie, to pokazuje każdemu.
--- JEśli jestt tak jak teraz i zwrócę FMRES_OVERRIDE to nie pokazuje ŻADNEGO ENTu, tak jakby wszystko było nei widzialne. (Przy FMRES_IGNORED pokazuje każdemu).


Użytkownik ExTaza?! edytował ten post 16.02.2015 21:47

  • +
  • -
  • 0

http://www.Cs-Kurnik.pl - Zapraszam!

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: awp.cs-kurnik.pl:27017 / 155.133.43.190:27017

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: ts3.cs-kurnik.pl - Darmowe kanały                     


#4 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.02.2015 11:50

ad 3. to nie możesz zwracać odpowiedniej wartości w zależności od tego kto ma widzieć, a kto nie? Szkoda nadpisywać set_es dla ownera, skoro te którymi nadpisujesz robią to samo co domyślne.
  • +
  • -
  • 1
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#5 ExTaza?!

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 104
Zaawansowany

  • Postów:424
  • GG:
  • Imię:Piotr
  • Lokalizacja:Leszno
Offline

Napisano 18.02.2015 19:22

3.
 

public fwAddToFullPack(es_handle, e, ENT, HOST, hostflags, player, set) {
    if(player || !is_user_connected(HOST) || !is_user_alive(HOST) || !is_valid_ent(ENT))
        return FMRES_IGNORED;
        
    if(td_is_ranger(ENT) && entity_get_int(ENT, EV_INT_ranger_status)) {
        set_es(es_handle, ES_RenderMode, kRenderTransAdd)
                set_es(es_handle, ES_RenderFx, kRenderFxNone)
        if(entity_get_edict(ENT, EV_ENT_turret_owner) == HOST) {
            return FMRES_IGNORED;
        }
        else {
                 set_es(es_handle, ES_RenderAmt, 0)
                 return FMRES_OVERRIDE
                }
        
    }
    else if(td_is_ammobar(ENT)) {
        for(new i ; i < MAX_PLAYER_TURRET ; i++) {
            if(is_valid_ent( entity_get_edict(gPlayerTurretEnt[HOST][i], EV_ENT_turret_ammobar)))
                entity_set_float( entity_get_edict(gPlayerTurretEnt[HOST][i], EV_ENT_turret_ammobar), EV_FL_scale, gfPlayerAmmoBarScale[HOST])
        }
        
        if(gCvarValue[TURRET_SHOW_AMMO_BAR] == 1) {
                set_es(es_handle, ES_RenderMode, kRenderTransTexture)
                 set_es(es_handle, ES_RenderFx, kRenderFxNone)
            
            if(entity_get_edict(ENT, EV_ENT_turret_owner) == HOST) {
                return FMRES_IGNORED
            }
            else {
                    set_es(es_handle, ES_RenderAmt, 0)
                    return FMRES_OVERRIDE
                }

        }
    }    
                
    return FMRES_IGNORED;
}

I działa tak jak dawniej.. co ciekawe wcześniej teGo nie używałem (tych reTurnów) i działało poprawnie.... może coś usprawnili w 1.8.3 ? :0

Dzięki Sebul za pomoc, oraz GwynBleidD.

Można zamknąć :)


  • +
  • -
  • 0

http://www.Cs-Kurnik.pl - Zapraszam!

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: awp.cs-kurnik.pl:27017 / 155.133.43.190:27017

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: ts3.cs-kurnik.pl - Darmowe kanały                     


#6 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

  • Postów:5411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 18.02.2015 20:13

Taka jedna uwaga. Nie widzę sensu w pisaniu takich warunków
if(coś tam) return coś tam
else return coś tam
Skoro po spełnieniu warunku jest return, to nie trzeba używać "else".
  • +
  • -
  • 1
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Generator tabeli expa - aż do 103600 poziomu

#7 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 19.02.2015 15:46

Jeśli nie zmieniasz niewidzialności, nie powinieneś WCALE nic zmieniać. przenieś set_es do odpowiedniego ifa, inaczej będziesz miał problem gdy ktoś użyje wersji amxx, metamoda czy hlds na której to działało tak jak kiedyś.
  • +
  • -
  • 0
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#8 ExTaza?!

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 104
Zaawansowany

  • Postów:424
  • GG:
  • Imię:Piotr
  • Lokalizacja:Leszno
Offline

Napisano 20.02.2015 21:39

@GwynBleiD Tower defense będzie tylko na 1.8.3


  • +
  • -
  • 0

http://www.Cs-Kurnik.pl - Zapraszam!

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: awp.cs-kurnik.pl:27017 / 155.133.43.190:27017

 

b_350_20_FFAD41_E98100_000000_591F11.png IP: ts3.cs-kurnik.pl - Darmowe kanały                     


#9 radim

    Godlike

  • Moderator

Reputacja: 932
Master

  • Postów:2725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 21.02.2015 08:55

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !





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

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