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


Dodatki SourceMod



Temat jest zamknięty









