Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » CreateEntityByName
CreateEntityByName
Sunday Дата: Среда, 01.05.2013, 11:28:42 | Сообщение # 1
Сообщений: 186
Репутация: 24 [ +/- ]
Парни, если я создаю Entity на респауне игрока, это простой эффект вспышки тесла, то после того как эффект сработал, он как Entity остается на карте или же удаляется? Или же его все таки надо удалять после того как он был произведен?

new tesla = CreateEntityByName("point_tesla");

Добавлено (01.05.2013, 10:50:31)
---------------------------------------------
я думал что эффекты работают иначе, сейчас просто поиском после создания проверил:

Код
if (IsValidEntity(tesla))
{
     PrintToChatAll("%d был удален", tesla);
     AcceptEntityInput(tesla, "Kill");
}


эх, похоже вот из за чего редко но падал сервер, из аз лимита в энтити, блин, я то думал эффекты работают иначе.

Добавлено (01.05.2013, 11:28:42)
---------------------------------------------
тема закрыта.

п.с. И как я проглядел такой момент... Сделал удаление через дата таймер спустя 0.7 сотых.

 
_wS_ Дата: Среда, 01.05.2013, 14:03:25 | Сообщение # 2
Цитата (Sunday)
Сделал удаление через дата таймер спустя 0.7 сотых.

Удалять через время лучше так:

Код
// ...
DispatchKeyValue(index, "OnUser1", "!self:kill::1.2:1"); // 1.2 = через сколько сек
DispatchSpawn(index);
AcceptEntityInput(index, "FireUser1");
 
Sunday Дата: Среда, 01.05.2013, 19:39:54 | Сообщение # 3
Сообщений: 186
Репутация: 24 [ +/- ]
Цитата (_wS_)
Удалять через время лучше так:

Код
// ...
DispatchKeyValue(index, "OnUser1", "!self:kill::1.2:1"); // 1.2 = через сколько сек
DispatchSpawn(index);
AcceptEntityInput(index, "FireUser1");


Спасибо _wS_! Сейчас попробую! klas

Добавлено (01.05.2013, 19:24:58)
---------------------------------------------
Код
if (GetConVarBool(cvar_Tesla))
{
         new Float:Origin[3];
         GetClientAbsOrigin(client, Origin);

         new tesla = CreateEntityByName("point_tesla");
         DispatchKeyValue(tesla, "m_flRadius", "100.0");
         DispatchKeyValue(tesla, "m_SoundName", "DoSpark");
         DispatchKeyValue(tesla, "beamcount_min", "42");
         DispatchKeyValue(tesla, "beamcount_max", "62");
         DispatchKeyValue(tesla, "texture", "sprites/physbeam.vmt");
         DispatchKeyValue(tesla, "m_Color", "255 255 255");
         DispatchKeyValue(tesla, "thick_min", "10.0");
         DispatchKeyValue(tesla, "thick_max", "11.0");
         DispatchKeyValue(tesla, "lifetime_min", "0.3");
         DispatchKeyValue(tesla, "lifetime_max", "0.3");
         DispatchKeyValue(tesla, "interval_min", "0.1");
         DispatchKeyValue(tesla, "interval_max", "0.2");
         DispatchKeyValue(tesla, "OnUser1", "!self:kill::1.2:1"); // 1.2 = через сколько сек // _wS_
              
         DispatchSpawn(tesla);
         TeleportEntity(tesla, Origin, NULL_VECTOR, NULL_VECTOR);
              
         AcceptEntityInput(tesla, "FireUser1"); // _wS_
         AcceptEntityInput(tesla, "TurnOn");
         AcceptEntityInput(tesla, "DoSpark");
}


Я как то не правильно это добавляю? Ни когда не сталкивался с таким классным способом, _wS_ можете подсказать? Потому что в таком варианте мне выводит ошибку Invalid entity search name !self:kill::1.2:1, найти имя не может, сейчас по капаюсь что можно сделать:)

Добавлено (01.05.2013, 19:39:54)
---------------------------------------------
Сделал вот так, все верно?:

Код
if (GetConVarBool(cvar_Tesla))
{
         new Float:Origin[3];
         GetClientAbsOrigin(client, Origin);

         new tesla = CreateEntityByName("point_tesla");
         DispatchKeyValue(tesla, "m_flRadius", "100.0");
         DispatchKeyValue(tesla, "m_SoundName", "DoSpark");
         DispatchKeyValue(tesla, "beamcount_min", "42");
         DispatchKeyValue(tesla, "beamcount_max", "62");
         DispatchKeyValue(tesla, "texture", "sprites/physbeam.vmt");
         DispatchKeyValue(tesla, "m_Color", "255 255 255");
         DispatchKeyValue(tesla, "thick_min", "10.0");
         DispatchKeyValue(tesla, "thick_max", "11.0");
         DispatchKeyValue(tesla, "lifetime_min", "0.3");
         DispatchKeyValue(tesla, "lifetime_max", "0.3");
         DispatchKeyValue(tesla, "interval_min", "0.1");
         DispatchKeyValue(tesla, "interval_max", "0.2");
              
         DispatchSpawn(tesla);
         TeleportEntity(tesla, Origin, NULL_VECTOR, NULL_VECTOR);

         KillFxTesla(tesla, 0.7);
              
         AcceptEntityInput(tesla, "TurnOn");
         AcceptEntityInput(tesla, "DoSpark");
}


и ниже паблик:
Код

public KillFxTesla(tesla, Float:seconds)
{
         if(IsValidEdict(tesla))
         {
             new String:buf[64];
             Format(buft, sizeof(buf), "OnUser1 !self:kill::%f:1", seconds);
             SetVariantString(buf);
             AcceptEntityInput(tesla, "AddOutput");
             AcceptEntityInput(tesla, "FireUser1");
         }
}


_wS_ Спасибо еще раз за подсказку и совет! Это замечательный вариант не требующий создания таймеров и лишних проверок! Надо больше мне обратить внимание на функции мапинга в будущем. По тестировал, проверил, удаляются на ура!


Сообщение отредактировал Sunday - Среда, 01.05.2013, 19:55:36
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » CreateEntityByName
  • Страница 1 из 1
  • 1
Поиск: