Well, I had no issues with other lobbies, so I don't know, you must be right.
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Ну получилось как получилось
Завязано на радаре поэтому смена стандартного эффекта до 2с (обновление карты). Работает если работает радар + включено в настройках патча + включено отображение дропа в стандартных настройках. Фильтр лута очень не очень, но в 90% вроде справлялся. Проблема только с шапками, но тут только надумал только если ручками каждому шлему в армордат прописать новый меш (highlight.drop_highlight_helmet), попытался сделать свой мешочек, но он почему-то...
На базе хангер эмиттера, сильно не тестировалось, толком не понял куда и как крепить эффекты на ездового пета сопартийцев, есть проблемы с их "красотой" (да и вообще вопрос как спавнить и убивать свои отдельные эммитеры в мир без критов, всякие NDestroy() пробовал), вообще такое ощущение что Actor из GetActorPlayer гораздо "полнее" акторов из foreach, плюс например есть момент если убегаешь в трансформе ездового коня из области отрисовки, а потом возвращаешься то визуально ты как будто...
если углубляться в оптимизацию, то на интерфейсе такие вещи в принципе не делаютсяЕще бы делать все не через анус
ну собственно да так и есть, а цель и была просто сделать универсальную отключаемую свистоперделку) ну и понять бы еше как в лобби эффекты рисоватьтак что отвечая на фразу "не через анус" - а и будет через анус, увы, это одна из насущных проблем, когда ты хочешь сделать что-то сам, без взаимодействия с сервером
a you sure? i didn't change anything in this feautures. yes, i don't fully understand how mount/pet works, so change/add their highlight in next fixThe latest update has broken several features:
RADAR
AUTO-POTION
It is also missing the INTERFACE name on the Main Menu. You can skill see the button, but without name.
function HandleChatMessage( String param )
{
local int nTmp;
local int SayType;
local int SysMsgIndex;
local int foundID;
local EChatType type;
local ESystemMsgType systemType;
local string text;
local Color color;
local SystemMsgData SysMsgData;
// local char test;
//~ debug(param);
ParseInt(param, "Type", nTmp);
type = EChatType(nTmp);
SayType=nTmp;
ParseString(param, "Msg", text);
// 시스템 메시지일때는 스크립트의 색상을 사용 - lancelot 2008. 8. 18.
if(type==CHAT_SYSTEM)
{
ParseInt(param, "SysMsgIndex", SysMsgIndex);
//text = text @ SysMsgIndex;
if(SysMsgIndex==-1)
{
Color=GetChatColorByType(SayType); // 시스템 메시지는 5
}
else
{
GetSystemMsgInfo(SysMsgIndex, SysMsgData);
color=SysMsgData.FontColor;
}
switch (SysMsgIndex)
{
// damage
case 2261: //out
case 2262: //in
case 2281: //out transfer pain
// drop
case 28:
case 52: // + adena
case 672:
case 29: // spoil?
case 53: // add n item
case 301: // delete n item
case 608: // party spoil
case 299: // party drop
case 45: // quest EXP
case 331: // quest SP
case 3259:
case 1707: // PC Cafe
case 2393: // PC Cafe
text = CreateCostString(text);
break;
case 3163:
case 3144:
case 2147:
case 2148:
text = text @ "by" @ AttributeEnchantScript.UpdateTargetInfo() $ ".";
break;
case 1589:
class'CommandChannelAPI'.static.RequestCommandChannelInfo();
break;
}
function string CreateCostString(string sourceString)
{
local string currentSymbol,
finalString,
numberString;
local int i,
lengthNumber;
lengthNumber = 0;
finalString = "";
numberString = "";
for (i = 0; i < Len(sourceString); i++)
{
currentSymbol = Mid(sourceString, i, 1);
if (Asc(currentSymbol) >= 48 && Asc(currentSymbol) <= 57)
{
if (lengthNumber == 0)
{
if (Right(finalString, 1) == " " || finalString == "" || finalString == "(")
{
numberString = numberString $ currentSymbol;
lengthNumber++;
}
else
{
finalString = finalString $ currentSymbol;
}
}
else
{
numberString = numberString $ currentSymbol;
lengthNumber++;
}
}
else
{
if (lengthNumber <= 0)
{
finalString = finalString $ currentSymbol;
}
else
{
if (lengthNumber > 3)
if (currentSymbol == " " || currentSymbol == "." || currentSymbol == "" || currentSymbol == ")")
numberString = MakeCostString(numberString);
finalString = finalString $ numberString;
finalString = finalString $ currentSymbol;
numberString = "";
lengthNumber = 0;
}
}
}
return finalString;
}