Jeśli dla jakiegoś, np. modelu dwa razy dam "precache_model", to o ile zmniejszy się limit niestandardowych plików do użycia w pluginach? Amxmodx ma coś w sobie co blokuje takie podwójne precache?
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.
|
Guest Message by DevFuse
[ROZWIĄZANE] Działanie precache_model, itp.
Temat rozp. sebul, 14.08.2013 13:21
2 odpowiedzi w tym temacie
#1
Napisano 14.08.2013 13:21
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#2
Napisano 14.08.2013 13:44
Jeżeli kilka razy zrobisz precache modelu tego samego modelu, to liczy go i tak jeden raz.
@Edit
Dla potwierdzenia podam dowód:
if ( !Q_stricmp(v5, v1) )
return v3;
Jeżeli v5 i v1 będą te same to zwróci return v3, czyli funkcja zwróci ID modelu, a nie doda go kilka razy.
@Edit
Dla potwierdzenia podam dowód:
int __cdecl PF_precache_model_I(int a1) { int v1; // esi@1 signed int v2; // edi@3 int v3; // ebx@6 int v4; // eax@8 int v5; // eax@15 v1 = a1; if ( !a1 ) Host_Error("PF_precache_model_I: NULL pointer"); if ( *(_BYTE *)a1 <= 32 ) Host_Error("PF_precache_model_I: Bad string '%s'", a1); v2 = 0; if ( *(_BYTE *)a1 == 33 ) { v1 = a1 + 1; v2 = 1; } if ( *(_DWORD *)&sv[244836] == 1 ) { v3 = 0; while ( 1 ) { v5 = *(_DWORD *)&sv[4 * v3 + 196936]; if ( !v5 ) break; if ( !Q_stricmp(v5, v1) ) return v3; ++v3; if ( v3 == 512 ) Host_Error( "PF_precache_model_I: Model '%s' failed to precache because the item count is over the %d limit.\nReduce the number of brush models and/or regular models in the map to correct this.", v1, 512); } *(_DWORD *)&sv[4 * v3 + 196936] = v1; *(_DWORD *)&sv[4 * v3 + 198984] = Mod_ForName(v1, 1, 1); if ( !v2 ) sv[v3 + 201032] |= 1u; } else { v3 = 0; while ( 1 ) { while ( 1 ) { v4 = *(_DWORD *)&sv[4 * v3 + 196936]; if ( v4 ) break; ++v3; if ( v3 == 512 ) goto LABEL_11; } if ( !Q_stricmp(v4, v1) ) break; ++v3; if ( v3 == 512 ) LABEL_11: Host_Error("PF_precache_model_I: '%s' Precache can only be done in spawn functions", v1); } } return v3; }
if ( !Q_stricmp(v5, v1) )
return v3;
Jeżeli v5 i v1 będą te same to zwróci return v3, czyli funkcja zwróci ID modelu, a nie doda go kilka razy.
Użytkownik Cypis' edytował ten post 14.08.2013 13:49
#3
Napisano 14.08.2013 15:18
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych