Проблема с PVarInt -
Aizov - 15.06.2014
PHP код:
CMD:changebizness(playerid,params[])
{
new str[32],string[144];
if(Player[playerid][Bizness] == 0)return SCM(playerid,-1,"У вас нету бизнеса");
switch(Player[playerid][Bizness])
{
case 1:format(str,sizeof(str),"Ammo Los Santos");
}
new idplayer,cash;
if(sscanf(params,"dd",idplayer,cash))return SCM(playerid,-1,"Введите /changebizness [id покупателя] [сумма]");
//if(idplayer == playerid)return SCM(playerid,-1,"Вы не можете продать бизнес себе");
SendFormatedMessage(idplayer,-1,"%s предложил купить его бизнесс %s за %d. Введите Y для согласия или N для отмены",Player[playerid][Nick],str,cash);
SetPVarInt(idplayer,"Bizness",Player[playerid][Bizness]);
SetPVarInt(idplayer,"bID",playerid);
SetPVarInt(idplayer,"Cash",cash);
SetPVarInt(idplayer,"TypeArgeement",1);
format(string,sizeof(string),"%d",GetPVarInt(idplayer,"TypeArgeement"));
SCM(idplayer,-1,string);
return true;
}
Вместо 1 выводит 0
Re: Проблема с PVarInt -
Stepashka - 15.06.2014
Нельзя установить PVar и сразу затребовать его, он будет доступен только после отправки пакета и получении следующего. Используй локальную переменную.
А для преобразования числа в строку используйте
valstr
Re: Проблема с PVarInt -
Jon_De - 15.06.2014
Quote:
Originally Posted by Stepashka
Нельзя установить PVar и сразу затребовать его, он будет доступен только после отправки пакета и получении следующего. Используй локальную переменную.
А для преобразования числа в строку используйте valstr
|
С чего это нельзя то? Он не на клиенте хранится
Re: Проблема с PVarInt -
Stepashka - 15.06.2014
Quote:
Originally Posted by Jon_De
С чего это нельзя то? Он не на клиенте хранится
|
Но клиент подтверждает информацию о записи.
Re: Проблема с PVarInt -
Ru-user - 15.06.2014
Забавно, если бы это было правдой
pawn Код:
public OnPlayerConnect (playerid)
{
SetPVarInt(playerid, "Test", 255);
printf("Test = %i", GetPVarInt(playerid, "Test"));
}
Можеш проверить, выведет 255
Re: Проблема с PVarInt -
Stepashka - 15.06.2014
Quote:
Originally Posted by Ru-user
Забавно, если бы это было правдой
pawn Код:
public OnPlayerConnect (playerid) { SetPVarInt(playerid, "Test", 255); printf("Test = %i", GetPVarInt(playerid, "Test")); }
Можеш проверить, выведет 255
|
А теперь это в других колбеках проверьте.
Re: Проблема с PVarInt -
Aizov - 15.06.2014
Не надо тут выделываться. Степашка тащит. Помог бы мне степашка с загрузкой билбордов
Re: Проблема с PVarInt -
Ru-user - 15.06.2014
Quote:
Originally Posted by Stepashka
А теперь это в других колбеках проверьте.
|
Прекрасно работает.
Почему ты считаешь, что сервер должен спрашивать у клиента разрешение, на хранение данных у себя в памяти?
Кроме того, чтобы потроллить программистов.
Re: Проблема с PVarInt -
Stepashka - 15.06.2014
Quote:
Originally Posted by Ru-user
Почему ты считаешь, что сервер должен спрашивать у клиента разрешение, на хранение данных у себя в памяти?
|
Сервер не разрешение спрашивает, а синхронизирует данные, PVar живет пока клиент подключен к серверу, вот эта сама проверка и тормозит сохранение.
PS и для чистоты эксперимента проверять надо не на локальной машине.
Re: Проблема с PVarInt -
Ru-user - 15.06.2014
Зачем же клиенту эти данные? Не вижу смысла.
Сервер выделяет память под PVar, а при закрытии соединения с клиентом освобождает её. Нафига ему синхронизировать эти данные?!
Re: Проблема с PVarInt -
Stepashka - 15.06.2014
Quote:
Originally Posted by Ru-user
Зачем же клиенту эти данные? Не вижу смысла.
Сервер выделяет память под PVar, а при закрытии соединения с клиентом освобождает её. Нафига ему синхронизировать эти данные?!
|
Читайте внимательно, синхронизируются не данные, проверяется подключен ли клиент к серверу.
Re: Проблема с PVarInt -
Ru-user - 15.06.2014
В SetPVar... в качестве аргумента мы указываем ид игрока, а точнее ид слота. Серверу хорошо известно занят слот или нет, и для этого ему ненужно отправлять запросы
в другой конец планеты.
Все-таки решил проверить на удаленном сервере, работает нормально.
В общем, не хочу дальше спорить
Re: Проблема с PVarInt -
Stepashka - 15.06.2014
Quote:
Originally Posted by Ru-user
В SetPVar... в качестве аргумента мы указываем ид игрока, а точнее ид слота. Серверу хорошо известно занят слот или нет, и для этого ему ненужно отправлять запросы в другой конец планеты.
Все-таки решил проверить на удаленном сервере, работает нормально.
В общем, не хочу дальше спорить 
|
поверьте на слово, не первый раз сталкиваемся когда нельзя получить PVar сразу после его записи.
Но согласен что стоит прекратить спорить.
Re: Проблема с PVarInt -
Jon_De - 15.06.2014
Quote:
Originally Posted by Stepashka
Но клиент подтверждает информацию о записи.
|
Почему у меня тогда всё и всегда работает на пварах как надо? Сразу устанавливает и сразу выдает новое значение? (Пс: не на локальном сервере, на рабочем)
А у автора либо игрок не подключен под этим ид, либо ссканф тупит
Re: Проблема с PVarInt -
OKStyle - 16.06.2014
Всё нормально должно работать даже в пределах одного колбэка, не говоря уже об установке и получении следующей строкой. Просто Aizov засрал раздел тупыми темами.
Re: Проблема с PVarInt -
Aizov - 16.06.2014
Quote:
Originally Posted by OKStyle
Всё нормально должно работать даже в пределах одного колбэка, не говоря уже об установке и получении следующей строкой. Просто Aizov засрал раздел тупыми темами.
|
Я пишу свой мод. Если у меня не получается я создаю тему с вопросом. Вроде форум для этого предназначен.
Перевел все на переменные работает нормально.
Для теста подключите DC_CM как у меня все и затребуйте данные с Pvar'a
Re: Проблема с PVarInt -
OKStyle - 16.06.2014
Если не получается - юзай поиск, а не засоряй форум беспонтовыми вопросами. Форум не для тебя одного тут создан, чтобы твой мод писал весь раздел.
А dc_cmd обнови до последней версии.
Re: Проблема с PVarInt -
Aizov - 16.06.2014
Quote:
Originally Posted by OKStyle
Если не получается - юзай поиск, а не засоряй форум беспонтовыми вопросами. Форум не для тебя одного тут создан, чтобы твой мод писал весь раздел.
А dc_cmd обнови до последней версии.
|
Сначала я пользуюсь поиском. Потом уже создаю тему
Re: Проблема с PVarInt -
White_116 - 16.06.2014
Quote:
Originally Posted by Aizov
Сначала я пользуюсь поиском. Потом уже создаю тему
|
Пора единую тему создать, "Вопросы от Aizov", "Решение проблем Aizov-а", "Пишем мод Aizov-у".
Изучай то, с чем ты работаешь, бессмысленные попытки "авось заработает", как я уже говорил, ни к чему хорошему не приводят. Гвоздодёром и гвозди можно забивать, только он не для этого предназначен.
Re: Проблема с PVarInt -
Aizov - 16.06.2014
Quote:
Originally Posted by White_116
Пора единую тему создать, "Вопросы от Aizov", "Решение проблем Aizov-а", "Пишем мод Aizov-у".
Изучай то, с чем ты работаешь, бессмысленные попытки "авось заработает", как я уже говорил, ни к чему хорошему не приводят. Гвоздодёром и гвозди можно забивать, только он не для этого предназначен.
|
Улыбнуло). Дело в том что я написал большую часть кода. Я делаю то чего нету не в пабликах ни в других модах.
У меня часто бывают проблемы со сложными системами