Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • Не хотите БАН?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок
  • Загляните на торговую площадку

    Там вы можете купить
    Всё что касается игровых серверов
  • 0
AJlex

пара вопросов

1.как обратиться к символу в строке по индексу?

2.у игрока обнуляется человечность если не зайти после смерти перед рестартом,есть ли фикс,и если нет то какой файл смотреть?

Share this post


Link to post
Share on other sites

12 answers to this question

Recommended Posts

  • 0

1.как обратиться к символу в строке по индексу?

2.у игрока обнуляется человечность если не зайти после смерти перед рестартом,есть ли фикс,и если нет то какой файл смотреть?

 

1. По первому вопросу не совсем понятно что вы имеете ввиду.

2. По второму вопросу, используйте этот запрос, проблем больше не будет таких:

DELETE
    FROM `character_data`
        USING character_data, character_data
        AS tmpcharacter_data
        WHERE NOT character_data.CharacterID=tmpcharacter_data.CharacterID
        AND character_data.CharacterID<tmpcharacter_data.CharacterID
        AND (character_data.PlayerUID=tmpcharacter_data.PlayerUID);

Share this post


Link to post
Share on other sites



  • 0

Насчет второго 

Пропажа хуманити случается если стоит чистка трупов в БД на замену лучше ставить удаление людей не заходивших в игру 10-15 дней

Share this post


Link to post
Share on other sites
  • 0

в чате пишу строку,строка записывается в переменную,строку нужно разделить,метода сплит стринг в арме не нашел,нашел только для армы 3,не знаю как обратиться к конкретному символу в строке,что то типо

for "_i" from 0 to count(toArray _text) do
{
   if(_text select _i  == ' ') then
   {
      //code
   }
}

Share this post


Link to post
Share on other sites
  • 0

посмотри в инфистаре, там же есть блокировка запретных символов... сейчас вырежу, может поможет.

_display = findDisplay 24;
if(isNull _display) then {
    uiSleep 0.3;
} else {
    _chat = _display displayCtrl 101;
    _txt = ctrlText _chat;
    if(_txt in ['ТВОЙ СИМВОЛ ИЛИ ПЕРЕМЕННАЯ']) then {
        [] spawn {
            for '_i' from 0 to 10 do {
                _chat ctrlSetText 'о боже, в этой части кода что то происходит!';
            };
        };
    };
};

Share this post


Link to post
Share on other sites
  • 0

это проверка на наличие символа в строке,мне нужно узнать индекс символа в строке,чтобы обрезать строку

Share this post


Link to post
Share on other sites
  • 0

это проверка на наличие символа в строке,мне нужно узнать индекс символа в строке,чтобы обрезать строку

ВЫ ЖЕ САМИ ПИСАЛИ "не знаю как обратиться к конкретному символу в строке" хватит путать :)

разве сам символ нельзя считать индексом? Я похоже дурак и чего то не понимаю... Может тогда опишите то что вы в конечном счете хотите добиться, может быть так получиться что то посоветовать Вам.

Edited by JustBullet (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

мне нужно взять строку из чата и разделить ее пробелом

"разве сам символ нельзя считать индексом?"
символ это символ,а индекс символа это номер его позиции в строке

кусок вашего кода выше говорит о присутствии конкретного символа в строке

Share this post


Link to post
Share on other sites
  • 0

я понимаю что такое индекс и символ, имел ввиду что разве этого не достаточно :)

Какую то конкретную строку? Как вы собираетесь понять что и где разделить?

 

Попробуйте отловить строку целиком, записать её и через цикл считать каждый первый символ и исключать его, так до конца пока не настанет конец строки, таким образом можно посчитать от начала до конца символы и их кол-во и с считать номер(цифру) индексом, получается экое форматирование в цифру ну а потом цифру  уже во что угодно... пока просто то что первое в голову пришло...

Share this post


Link to post
Share on other sites
  • 0

я и пробовал по индексу,про метод select уже прочитал
 

hint str ("japa is the man!" select [8]); //the man!
hint str ("japa is the man!" select [0,7]); //japa is

тогда по сути так должно быть
 

for "_i" from 0 to count(toArray _text) do
{
   if(_text select [_i,1]  == ' ') then
   {
      //code
   }
}

только вот пишет что нужен тип строка а получает массив,для меня неясно откуда,вот вы пишите обратиться к первому элементу у меня в коде так и есть по факту,с 0 элемента

Share this post


Link to post
Share on other sites
  • 0

я так понял со скриптом на обращение к символу в строке никто не подскажет правильный код.может тогда подскажете в другом?
например скрипт на удаление парашютов после воздушного патруля wai
 

PVDZE_atp = "Скрипт удаления парашютов запущен...";
publicVariableServer "PVDZE_atp";
while {true} do
{
    {
        _para_driver = str(driver _x);
        _driver_alive = alive(driver _x);
        if (_para_driver == "<NULL-object>") then
        {
          DeleteVehicle _x;
        };
        if(!_driver_alive) then
        {
            DeleteVehicle _x;
        };
        if(speed _x == 0) then
        {
            DeleteVehicle _x;
        };
    } forEach ([6800, 9200, 0] nearEntities [["ParachuteEast"],24000]);
    sleep 3;
};

скрипт работает,но парашюты не все удаляются,остаеться от 0-2 из 3
причем админкой они удаляются,сообщения для дебага выводил себе,объекта этого нет,как будто в цикле он не видит его
проверки добавлял,толку нет,код выше
может там свойство какое парашюта мешает или еще что,незнаю,моих знаний не хватает чтобы разобраться
и скрипт на графическое отображение сейф зон(маяки по периметру)
 

_infiSZ =
[
        [[6325.6772,7807.7412,0],400,true],
        [[4063.4226,11664.19,0],400,true],
        [[11447.472,11364.504,0],400,true],
        [[1606.6443,7803.5156,0],400,true],
        [[12944.227,12766.889,0],400,true],
		[[5068.6636,9723.4248,0],400,true],
		[[12060.471,12638.533,0],400,true],
        [[13531.3,6357.92,0.008],400,true],
        [[12060.471,12638.533,0],400,true],
        [[13532.614,6355.9497,0],400,true],
        [[7989.3354,2900.9946,0],400,true],
        [[4361.4937,2259.9526,0],400,true]
];
_USE_SIGNS = true;
if (isServer) exitWith
{
        if (_USE_SIGNS) then
        {
                {
                        _center = _x select 0;
                        _radius = _x select 1;
                        _lSign = _x select 2;
                        if (_lSign) then
                        {
                                for "_i" from 0 to 360 step (270 / _radius)*2 do
                                {
                                        _location = [(_center select 0) + ((cos _i) * _radius), (_center select 1) + ((sin _i) * _radius),0];
                                        _dir = ((_center select 0) - (_location select 0)) atan2 ((_center select 1) - (_location select 1));
                                        _object = createVehicle ["Sign_sphere100cm_EP1", _location, [], 0, "NO_COLLIDE"];
                                        _object setDir _dir;
                                        _object enableSimulation false;
                                        //CAN_COLLIDE
                                        //NO_COLLIDE
                                };
                        };
                } forEach _infiSZ;
        };
};

скрипт работает,маяки есть,все хорошо
но через ~30 сек начинает фпс прыгать у всех игроков меня с 60 до 42,прыгает каждые 3-8 сек
ладно бы там проседал фпс во время добавления или скрипт зацикливался и постоянно добавлял новые маяки
пробовал отключать физику,делать объект статичным
 

_object enableSimulation false;

мне это ничего не дало

может кто то что то подсказать?

Edited by AJlex (see edit history)

Share this post


Link to post
Share on other sites
  • 0

эти флажки на сейф зоне я ставлю сервером например. 1 раз поставил и забыл.

safezone_sign = [
	[[4063.4226,11664.19],75,true], // баш
	[[11447.472,11364.504],75,true], //клён
	[[1606.6443,7803.5156],75,true], //банд
	[[12944.227,12766.889],75,true], //герои
	[[12060.471,12638.533],75,true], // авиация
	[[9929.0811,6017.0674],50,true], // черный
	[[6600.2534,7455.0254],110,true] // старый собор
];
	{
		_center = _x select 0;
		_radius = _x select 1;
		_lSign = _x select 2;
		if (_lSign) then
		{
			for '_i' from 0 to 360 step (270 / _radius)*2 do
			{
				_location = [(_center select 0) + ((cos _i) * _radius), (_center select 1) + ((sin _i) * _radius),0];
				_dir = ((_center select 0) - (_location select 0)) atan2 ((_center select 1) - (_location select 1));
				_object = createVehicle ['Sign_sphere100cm_EP1', _location, [], 0, 'CAN_COLLIDE'];
				_object setDir _dir;
				_object enableSimulation false;
				_object setVehicleInit "this enableSimulation false;";
			};
		};
	} count safezone_sign;

эта же переменная с сейфзонами пригождается для очистки трейдов от техники после рестарта в server_monitor

if (_object isKindOf "AllVehicles") then {
{
	if(_object distance (_x select 0) < (_x select 1)) then {
		deleteVehicle _object;
		[_ownerID,format["[VEHICLE CLEANUP ZONE]: %1 [%2],[%3,%4,%5]",(gettext (configFile >> 'CfgVehicles' >> (typeOf _object) >> 'displayName')),_ownerID,(getmagazinecargo _object),(getweaponcargo _object),(getbackpackcargo _object)]] call server_deleteObj;
		};
	} forEach safezone_sign;
};

нет необходимости ставить тучу допов, если можно взять полезную часть скрипта, и прикрутить именно туда-где она будет полезнее всего )

Share this post


Link to post
Share on other sites
  • 0

эти флажки на сейф зоне я ставлю сервером например. 1 раз поставил и забыл.

safezone_sign = [
	[[4063.4226,11664.19],75,true], // баш
	[[11447.472,11364.504],75,true], //клён
	[[1606.6443,7803.5156],75,true], //банд
	[[12944.227,12766.889],75,true], //герои
	[[12060.471,12638.533],75,true], // авиация
	[[9929.0811,6017.0674],50,true], // черный
	[[6600.2534,7455.0254],110,true] // старый собор
];
	{
		_center = _x select 0;
		_radius = _x select 1;
		_lSign = _x select 2;
		if (_lSign) then
		{
			for '_i' from 0 to 360 step (270 / _radius)*2 do
			{
				_location = [(_center select 0) + ((cos _i) * _radius), (_center select 1) + ((sin _i) * _radius),0];
				_dir = ((_center select 0) - (_location select 0)) atan2 ((_center select 1) - (_location select 1));
				_object = createVehicle ['Sign_sphere100cm_EP1', _location, [], 0, 'CAN_COLLIDE'];
				_object setDir _dir;
				_object enableSimulation false;
				_object setVehicleInit "this enableSimulation false;";
			};
		};
	} count safezone_sign;

эта же переменная с сейфзонами пригождается для очистки трейдов от техники после рестарта в server_monitor

if (_object isKindOf "AllVehicles") then {
{
	if(_object distance (_x select 0) < (_x select 1)) then {
		deleteVehicle _object;
		[_ownerID,format["[VEHICLE CLEANUP ZONE]: %1 [%2],[%3,%4,%5]",(gettext (configFile >> 'CfgVehicles' >> (typeOf _object) >> 'displayName')),_ownerID,(getmagazinecargo _object),(getweaponcargo _object),(getbackpackcargo _object)]] call server_deleteObj;
		};
	} forEach safezone_sign;
};

нет необходимости ставить тучу допов, если можно взять полезную часть скрипта, и прикрутить именно туда-где она будет полезнее всего )

у меня есть скрипт на удаление техники с трейдов если я понимаю о чем речь

я не могу понять причину причину проседания фпс

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By buka
      Всем здорова, значит сервер 1.9.0  почти чистый, приват базы и пару ботов на этих базах заспавненые в миссии, Играть скучновато, да и вообще на старых версиях всегда DZAI боты стояли... но на прошлой версии и на этой так и не могу победить, делаю по гайду, леплю строчку как написано, но инициализации нет, в логе тишина, ровно как и в игровом процессе, не знаю куда рыть уже, далее. Так втрое, переделывал скрипт авиа поддержки, всё работало ровно на тех же версиях что и DZAI, там для старых версий кто в курсе помнит нужно было еще дополнительно изменить строку в server_cleanup.sqf иначе техника взрывалась при спавне... (ботовская) ну и собственно в этой же строке я убирал дамаг на заспавниную технику миссией... сейчас я не могу найти где это в коде, техника взрывается после появления через 10 сек, очень жаль потому как скрипт выдался не плохой.И третье, очень много старых полезных скриптов просто недоступны, срок хранения их на серверах истёк и ссылки битые, у кого есть скрипт вырубания травы топором??? помню такой был мелкий...
    • By SkeepRyder
      Добрый день. Помогите решить 2 проблемы.
       
      1. Как отключить логи в ZEV миссиях? Там просто оч много строк, вручную удалять слишком долго, может есть какой-нибудь конфиг?
       
      2. 
      15:23:25 Wrong text element 'null' 15:23:25 Wrong text element 'null' 15:23:25 Wrong text element 'null' 15:23:25 Wrong text element 'null' 15:23:25 Error in expression <hud_blood = round(r_player_blood); if((_SRhud_humanity >= 15000) && (_SRhud_hum> 15:23:25 Error position: <_SRhud_humanity >= 15000) && (_SRhud_hum> 15:23:25 Error Undefined variable in expression: _srhud_humanity 15:23:25 File mpmissions\DZESR.Chernarus\custom\gui\hud\playerHud.sqf, line 15 Файлик худа
      disableSerialization; while {true} do { 1000 cutRsc ["SRhud","PLAIN"]; _wpui = uiNameSpace getVariable "SRhud"; _vitals = _wpui displayCtrl 4900; _thePlayer = player; _SRhud_zombieKills = _thePlayer getVariable["zombieKills",0]; _SRhud_killsH = _thePlayer getVariable["humanKills",0]; _cashMoney = _thePlayer getVariable["cashMoney",0]; _SRhud_killsB = _thePlayer getVariable["banditKills",0]; _SRhud_humanity = _thePlayer getVariable["humanity",0]; _SRhud_image = ""; _SRhud_blood = round(r_player_blood); if((_SRhud_humanity >= 15000) && (_SRhud_humanity <= 24999))then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\H1.paa'/>"; }; if((_SRhud_humanity >= 25000) && (_SRhud_humanity <= 49999))then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\H2.paa'/>"; }; if((_SRhud_humanity >= 50000) && (_SRhud_humanity <= 74999)) then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\H3.paa'/>"; }; if((_SRhud_humanity >= 75000) && (_SRhud_humanity <= 99999)) then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\H4.paa'/>"; }; if(_SRhud_humanity >= 100000) then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\H5.paa'/>"; }; if((_SRhud_humanity <= 14999) && (_SRhud_humanity >= -14999)) then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\S.paa'/>"; }; if((_SRhud_humanity <= -15000) && (_SRhud_humanity >= -24999))then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\B1.paa'/>"; }; if((_SRhud_humanity <= -25000) && (_SRhud_humanity >= -49999))then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\B2.paa'/>"; }; if((_SRhud_humanity <= -50000) && (_SRhud_humanity >= -74999)) then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\B3.paa'/>"; }; if((_SRhud_humanity <= -75000) && (_SRhud_humanity >= -99999)) then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\B4.paa'/>"; }; if(_SRhud_humanity <= -100000) then { _SRhud_image = "<img size='2.3' image='custom\gui\hud\icons\B5.paa'/>"; }; _vitals ctrlSetStructuredText parseText format [" <t size='1.5' align='right'> %1 </t><br/> <t size='0.8' align='right'> %2 </t> <br/> <t size='0.8' align='right'> %3 </t><img size='1.8' align='right' image='custom\gui\hud\icons\sz.paa'/> <br/> <t size='0.8' align='right'> %4 </t><img size='1.8' align='right' image='custom\gui\hud\icons\sb.paa'/> <br/> <t size='0.8' align='right'> %5 </t><img size='1.8' align='right' image='custom\gui\hud\icons\sh.paa'/> <br/> <br/><br/><br/> <t size='0.8' align='right'> %6 </t><img size='1.25' align='right' image='custom\gui\hud\icons\blood.paa'/> <br/> <t size='0.8' align='right'> %7 </t><img size='1.2' align='right' image='custom\gui\hud\icons\dollars.paa'/> <br/> ", _SRhud_image, _SRhud_humanity, _SRhud_zombieKills, _SRhud_killsB, _SRhud_killsH, _SRhud_blood, [_cashMoney] call BIS_fnc_numberText ]; _vitals ctrlCommit 0; sleep 2; }; Как можно решить эту проблему? Пробовал обьявлять, не получилось.
    • By Boom
      Такие вопросы, подскажите поалуйста
      Как вернуть метку на труп в плагине DZGM
      Как понять по логам что игрок дюпает, немогу прочитать в RTP этого, вижу что открывает сейф вылетает и так повтор, как понять что игроки дюпают валюту путём передажи её друг другу одноверменно
      Как отключать траву через скрипт который добавляет контекстное меню (RBM)
    • By hekut144
      Здравствуйте, пытаюсь собрать библиотеку хайва (епочевскую которая в репозитории vbawol), хочу сделать старт хуманити 0, вообщем уже который день ковыряюсь не выходит, при компиляции 3 ошибки, одна связаная с питоном (что-то с git-ом, переменные среды гиту\питону\всем нужным кастумным библиотекам заданы, репозиторий обьявлен в гите\студии)
      error MSB3073: The command "python C:\Users\THE_PRO\Documents\hiveDayz\Hive\Source\HiveLib\version_gen.py C:\Users\THE_PRO\Documents\hiveDayz\Hive\Source\HiveLib\Version.cpp.template C:\Users\THE_PRO\Documents\hiveDayz\Hive\Source\HiveLib\Version.cpp :VCEnd" exited with code 1. при компиляции орет след. (та самая ошибка связанная с питоном):
      2>  fatal: Not a git repository (or any of the parent directories): .git 2>  Traceback (most recent call last): 2>    File "C:\Users\THE_PRO\Documents\hiveDayz\Hive\Source\HiveLib\version_gen.py", line 8, in <module> 2>      _out.write(_in.read().replace("%GIT_VERSION%", version)) 2>  TypeError: a bytes-like object is required, not 'str' 2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(122,5): error MSB3073: The command "python C:\Users\THE_PRO\Documents\hiveDayz\Hive\Source\HiveLib\version_gen.py C:\Users\THE_PRO\Documents\hiveDayz\Hive\Source\HiveLib\Version.cpp.template C:\Users\THE_PRO\Documents\hiveDayz\Hive\Source\HiveLib\Version.cpp 2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(122,5): error MSB3073: :VCEnd" exited with code 1. повторюсь репозиторий я обьявил как git-у так и самой студии
      2-ая не понимает имеющуюся либу (пути к ней даны, это либа буста, лежащая в сборке дебага):
      error LNK1104: cannot open file 'libboost_system-vc120-mt-gd-1_55.lib' 3-ая как ни странно не может прочитать созданый им же (компилятором) либу error LNK1104: cannot open file 'C:\Users\THE_PRO\Documents\hiveDayz\Hive\Out\Win32\v120\HiveLibd.lib'  инклюды\либы вроде бы все описанные rajkosto (автором хайва) имеются... 
    • By SteelSoul
      Уважаемы коллеги, подскажите пожалуйста, где в 1.58 теперь находятся настройки джаммера, прайса, списка спавна техники, вероятность спавна лута и т.п.?
×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.