public void OnMapStart()
{
PrecacheDecal("materials/sprites/l4d_zone_1.vtf", true);
PrecacheDecal("materials/sprites/l4d_zone_1.vmt", true);
...
}
public void Event_TankSpawn(Event event, const char[] name, bool silent)
{
int iEntity = CreateEntityByName("env_sprite_oriented");
if (iEntity != -1)
{
DispatchKeyValue(iEntity, "rendermode", "5");
DispatchKeyValue(iEntity, "framerate", "0");
DispatchKeyValue(iEntity, "model", "materials/sprites/l4d_zone_1.vmt");
if (DispatchSpawn(iEntity))
{
float flOrigin[3];
GetClientAbsOrigin(client, flOrigin);
flOrigin[2] += 90.0;
TeleportEntity(client, flOrigin, NULL_VECTOR, NULL_VECTOR);
SetVariantString("!activator");
AcceptEntityInput(client, "SetParent", client, iEntity);
}
}
Что говорит IsModelPrecached, IsDecalPrecached?Никак не могу прекешировать спрайт
DispatchKeyValue(iEntity, "classname", "namesprite1");
DispatchKeyValue(iEntity, "spawnflags", "1"); //Start on
int iDecal = -1;
char sDecal[] = "materials/sprites/l4d_zone_1.vmt";
public void OnMapStart()
{
iDecal = PrecacheDecal(sDecal, true);
...
}
public void Event_TankSpawn(Event event, const char[] name, bool silent)
{
if(iDecal != -1)
{
int iEntity = CreateEntityByName("env_sprite_oriented");
if (iEntity != -1)
{
DispatchKeyValue(iEntity, "rendermode", "5");
DispatchKeyValue(iEntity, "framerate", "0");
DispatchKeyValue(iEntity, "model", sDecal);
if (DispatchSpawn(iEntity))
{
float flOrigin[3];
GetClientAbsOrigin(client, flOrigin);
flOrigin[2] += 90.0;
TeleportEntity(client, flOrigin, NULL_VECTOR, NULL_VECTOR);
SetVariantString("!activator");
AcceptEntityInput(client, "SetParent", client, iEntity);
AcceptEntityInput(iEntity, "ShowSprite");
}
}
}
else PrintToServer("Decal don't exists");
}
Console Output: Decal don't existsПопробуй так:
PHP:int iDecal = -1; char sDecal[] = "materials/sprites/l4d_zone_1.vmt"; public void OnMapStart() { iDecal = PrecacheDecal(sDecal, true); ... } public void Event_TankSpawn(Event event, const char[] name, bool silent) { if(iDecal != -1) { int iEntity = CreateEntityByName("env_sprite_oriented"); if (iEntity != -1) { DispatchKeyValue(iEntity, "rendermode", "5"); DispatchKeyValue(iEntity, "framerate", "0"); DispatchKeyValue(iEntity, "model", sDecal); if (DispatchSpawn(iEntity)) { float flOrigin[3]; GetClientAbsOrigin(client, flOrigin); flOrigin[2] += 90.0; TeleportEntity(client, flOrigin, NULL_VECTOR, NULL_VECTOR); SetVariantString("!activator"); AcceptEntityInput(client, "SetParent", client, iEntity); AcceptEntityInput(iEntity, "ShowSprite"); } } } else PrintToServer("Decal don't exists"); }
Делал через PrecacheModel("materials/sprites/l4d_zone_1.vmt"); все равно не работаетМожет быть нужно делать preload? Второй параметр - true в PrecacheModel/Decal/Generic.
Но насколько я помню, прекеш спрайтов я делал через PrecacheModel.
int iDecal = -1,
iModel = -1;
public void OnMapStart()
{
if((iDecal = PrecacheDecal("sprites/l4d_zone_1.vmt", true)) == -1) PrintToServer("Decal don't exists");
else PrintToServer("Decal successfully precached");
if((iDecal = PrecacheDecal("materials/sprites/l4d_zone_1.vmt", true)) == -1) PrintToServer("Model don't exists");
else PrintToServer("Model successfully precached");
}
Вложения (я перепроверил все очень тщательно, ошибки точно нету)Возможно, в .vmt прописан неправильный путь к "$basetexture", в результате чего и не удается прехешировать.
Если же нет, киньте ваши .vmt и .vtf, может ещё что там не так.
В обоих случаях * don't exists. (ток у тебя вроде ошибка в коде)@Vit_ amin, а в vmt правильно путь указан к vtf?
Я тут глянул: если PrecacheDecal(), то нужно указывать путь "sprites/l4d_zone_1.vmt", если PrecacheModel(), то "materials/sprites/l4d_zone_1.vmt".
Попробуй ещё так:PHP:int iDecal = -1, iModel = -1; public void OnMapStart() { if((iDecal = PrecacheDecal("sprites/l4d_zone_1.vmt", true)) == -1) PrintToServer("Decal don't exists"); else PrintToServer("Decal successfully precached"); if((iDecal = PrecacheDecal("materials/sprites/l4d_zone_1.vmt", true)) == -1) PrintToServer("Model don't exists"); else PrintToServer("Model successfully precached"); }
public OnMapStart()
{
new iModel = PrecacheModel("materials/sprites/l4d_zone.vmt");
PrintToServer("%d, %d", iModel, IsModelPrecached("materials/sprites/l4d_zone.vmt"));
}
поэтому можно попробовать перезалить модель на сервер ещё раз.номер, 1
Sprite
{
$basetexture "sprites/l4d_zone_1"
$spriteorientation "vp_parallel_oriented"
$spriteorigin "[.5 .5]"
}
public void OnMapStart()
{
PrecacheModel("sprites/l4d_zone_1.vmt", true);
}
DispatchKeyValue(iEntity, "model", "materials/sprites/l4d_zone_1.vmt");
PrecacheModel("sprites/l4d_zone_1.vmt", true); - работает !!! СпасибоСталкивался когда то с такой проблемой.
Попробуй так:
PHP:public void OnMapStart() { PrecacheModel("sprites/l4d_zone_1.vmt", true); }
bool preload обязательно true.
путь указывать без materiales/.
.vtf не кешировать.
Тут тоже без marerials/,
либо попробуй "model" заменить на "Sprite Name" либо "texture"
Да и не понятно откуда "model", если тут такого не нашел.
Кароче попробуй, только обязательно карту перезагрузи, либо сервер