Передача Pack внутри ArrayList через Forward (ой туплю..)

Banana

Участник
Сообщения
892
Реакции
113
PHP:
ArrayList callback_name = new ArrayList();
new Handle:pack = CreateDataPack(); 
WritePackString(pack, "StatsQuery");
WritePackString(pack, name);
WritePackString(pack, steamid);
WritePackString(pack, ip);
callback_name.Push(pack);

Call_StartForward(h_CallbackStatsQuery);
Call_PushCell(callback_name);
Call_Finish();

//Вот так передаю ArrayList внутри которого как видно Pack

public CallbackStatsQuery(ArrayList callback_name)
{
      Handle pack = view_as<DataPack>(callback_name.Get(0));
      ResetPack(pack); // Invalid data pack handle e0970710 (error 5).
}
Вот так получаю..

Судя по всему нужно или передать клон или передать права на хэндл? Чет жестко туплю, подскажите как правильно, желательно кодом. Спасибо =*
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #2
Когда-нибудь у меня дойдут руки где-нибудь описать коды ошибок.
Да, 5-ый код вылезает если владелец хендла не плагин, который с ним работает. Нужно на каждый плагин разные массивы с разными датапаками формировать.
 

Banana

Участник
Сообщения
892
Реакции
113
Пожалуйста дайте пример я тугодум слегка)
Сообщения автоматически склеены:

Стоп а как мне тогда получить хэндл плагина в которых я отправлю через форвард? плагин который отправляет не знает же кто им будет пользоваться..
 
Последнее редактирование:

Banana

Участник
Сообщения
892
Реакции
113
Все равно не понял, (честно пытался понять, но смотрю как сквозь текст..). Откуда 1 плагин который передает array с pack внутри себя может знать какие именно плагин его будет читать? (Как жаль что В ArrayList нельзя запихнуть строковый массив...)
 

DENFER

Пишу плагины за два биг тести и картошку фри..
Сообщения
260
Реакции
289
Почему нельзя? SetString и SetArray.
 

Banana

Участник
Сообщения
892
Реакции
113
Потомк что 1 индексу принадлежит 3 строки , а аррейлист такое не позволяет(
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
@Banana, надеюсь вы не создаете каждый раз ArrayList, что бы просто хранить в нем один единственный указатель на DataPack.

В конечном итоге куда адекватнее закрыть/очистить DataPack по завершению вызова, чтобы не делегировать права.
 
Последнее редактирование:

Banana

Участник
Сообщения
892
Реакции
113
@Banana, надеюсь вы не создаете каждый раз ArrayList, что бы просто хранить в нем один единственный указатель на DataPack.

В конечном итоге куда адекватнее закрыть/очистить DataPack по завершению вызова, чтобы не делегировать права.
простите я не понял вашу мысль(
Сообщения автоматически склеены:

Я так понимаю передать Pack невозможно по форварду?
Сообщения автоматически склеены:

Приходится передавать GetMyHandle() как ни крути(
 
Последнее редактирование:
Сверху Снизу