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

[ROZWIĄZANE] Czym się różni pobieranie modelu przez engfunc(EngFunc_PrecacheModel) A precache_model


Najlepsza odpowiedź GwynBleidD, 02.06.2015 12:11

Ich działanie się różni.

precache_model: https://github.com/a...xmodx.cpp#L2781

EngFunc_PrecacheModel: https://github.com/a...engfunc.cpp#L50

 

przy precache_model sprawa jest oczywista, PRECACHE_MODEL jest funkcją z API HLSDK (lub API Metamoda). Z EngFunc_PrecacheModel nie jest już tak łatwo, bo otrzymujemy strukturę g_engfuncs od metamoda przy rejestracji modułu, należy więc w źródłach metamoda śledzić co się z tym dzieje dalej... Założyć można jednak, że pfnPrecacheModel z g_engfuncs jest dokładnie tym samym, co PRECACHE_MODEL - jaki by był sens robienia tego inaczej?

 

Dlaczego istnieją 2 różne metody? Funkcje wbudowane w amxx powstawały później i były w 100% dopracowane i przetestowane, funkcje w modułach takich jak fakemeta powstały wcześniej, często będąc bezpośrednim mapowaniem na jakieś niekoniecznie udokumentowane funkcje w metamodzie lub samym HLDS. PRECACHE_MODEL w API pojawiło się również później i gdy się pojawiło, zostało użyte, EngFunc_PrecacheModel istnieje więc wyłącznie z powodów historycznych, gdy nie było jeszcze oficjalnego (lub łatwo dostępnego) API do ładowania modeli.

Przejdź do postu


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

#1 Skull.

    Wszechpomocny

  • Użytkownik

Reputacja: 70
Pomocny

  • Postów:314
  • Steam:steam
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 01.06.2015 00:23

Witam. Jak w temacie, Otóż czym się różnią te możliwości pobierania modelu od siebie?

 

 

1. Często spotykany sposób:

precache_model("models/nazwa.mdl");

2. Rzadko spotykany sposób:

engfunc(EngFunc_PrecacheModel, "models/nazwa.mdl");

Oczywiście za użyciem: :D

public plugin_precache()

Oraz kiedy jaki zastosować?


  • +
  • -
  • 0

#2 NoLiFeR

    Wszechobecny

  • Użytkownik

Reputacja: 103
Zaawansowany

  • Postów:483
  • GG:
  • Imię:Adrian
  • Lokalizacja:Sosnowiec
Offline

Napisano 01.06.2015 00:44

To bez znaczenia której używasz.

Obydwie robią to samo, podejrzewam że w ten sam sposób.


  • +
  • -
  • 0

#3 Skull.

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 70
Pomocny

  • Postów:314
  • Steam:steam
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 01.06.2015 01:25

To bez znaczenia której używasz.

Obydwie robią to samo, podejrzewam że w ten sam sposób.

To wiem że to samo, lecz czymś muszę się różnić.


  • +
  • -
  • 0

#4 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 01.06.2015 03:14

ad 1. biblioteka core

ad 2. biblioteka fakemeta


  • +
  • -
  • 0

#5 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 01.06.2015 15:08

Zagladnij do źródeł na gicie i zobacz :P
  • +
  • -
  • 0

#6 Skull.

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 70
Pomocny

  • Postów:314
  • Steam:steam
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 01.06.2015 20:31

ad 1. biblioteka core

ad 2. biblioteka fakemeta

w core zaglądałem i praktycznie nic się nie dowiedziałem.

 

Czyli rozumują: obydwie funkcje działają zawsze tak samo oraz i nic prócz biblioteki się nie różną?


  • +
  • -
  • 0

#7 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 02.06.2015 12:11   Najlepsza odpowiedź

Ich działanie się różni.

precache_model: https://github.com/a...xmodx.cpp#L2781

EngFunc_PrecacheModel: https://github.com/a...engfunc.cpp#L50

 

przy precache_model sprawa jest oczywista, PRECACHE_MODEL jest funkcją z API HLSDK (lub API Metamoda). Z EngFunc_PrecacheModel nie jest już tak łatwo, bo otrzymujemy strukturę g_engfuncs od metamoda przy rejestracji modułu, należy więc w źródłach metamoda śledzić co się z tym dzieje dalej... Założyć można jednak, że pfnPrecacheModel z g_engfuncs jest dokładnie tym samym, co PRECACHE_MODEL - jaki by był sens robienia tego inaczej?

 

Dlaczego istnieją 2 różne metody? Funkcje wbudowane w amxx powstawały później i były w 100% dopracowane i przetestowane, funkcje w modułach takich jak fakemeta powstały wcześniej, często będąc bezpośrednim mapowaniem na jakieś niekoniecznie udokumentowane funkcje w metamodzie lub samym HLDS. PRECACHE_MODEL w API pojawiło się również później i gdy się pojawiło, zostało użyte, EngFunc_PrecacheModel istnieje więc wyłącznie z powodów historycznych, gdy nie było jeszcze oficjalnego (lub łatwo dostępnego) API do ładowania modeli.


  • +
  • -
  • 3

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 Skull.

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 70
Pomocny

  • Postów:314
  • Steam:steam
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 03.06.2015 22:42

Ich działanie się różni.

precache_model: https://github.com/a...xmodx.cpp#L2781

EngFunc_PrecacheModel: https://github.com/a...engfunc.cpp#L50

 

przy precache_model sprawa jest oczywista, PRECACHE_MODEL jest funkcją z API HLSDK (lub API Metamoda). Z EngFunc_PrecacheModel nie jest już tak łatwo, bo otrzymujemy strukturę g_engfuncs od metamoda przy rejestracji modułu, należy więc w źródłach metamoda śledzić co się z tym dzieje dalej... Założyć można jednak, że pfnPrecacheModel z g_engfuncs jest dokładnie tym samym, co PRECACHE_MODEL - jaki by był sens robienia tego inaczej?

 

Dlaczego istnieją 2 różne metody? Funkcje wbudowane w amxx powstawały później i były w 100% dopracowane i przetestowane, funkcje w modułach takich jak fakemeta powstały wcześniej, często będąc bezpośrednim mapowaniem na jakieś niekoniecznie udokumentowane funkcje w metamodzie lub samym HLDS. PRECACHE_MODEL w API pojawiło się również później i gdy się pojawiło, zostało użyte, EngFunc_PrecacheModel istnieje więc wyłącznie z powodów historycznych, gdy nie było jeszcze oficjalnego (lub łatwo dostępnego) API do ładowania modeli.

I o takie wytłumaczenie mi właśnie chodziło. Dziękuje uprzejmie, plus poleciał. :)


  • +
  • -
  • 0

#9 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 04.06.2015 21:03

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




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

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