Скриптинг курилка

В дополнение своей проблемы....
После экспериментов, понял, что callback не работает в filterscript. Если подправить и запустить как gamemode всё начинает работать... Бред какой-то...
Reply

Что за ерунда с GetPVarString?

Код:
           new str[10];
	   GetPVarString(playerid, "txt_a_flood_string", str, sizeof(str));
Quote:

[19:06:14] [debug] Run time error 4: "Array index out of bounds"
[19:06:14] [debug] Accessing element at negative index -1

а если вместо sizeof(str) написать вручную 9 например (а не 10 как возвращает sizeof) то всё ок. получается надо делать sizeof(str)-1?
Reply

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
Что за ерунда с GetPVarString?

Код:
           new str[10];
	   GetPVarString(playerid, "txt_a_flood_string", str, sizeof(str));

а если вместо sizeof(str) написать вручную 9 например (а не 10 как возвращает sizeof) то всё ок. получается надо делать sizeof(str)-1?
Ну судя по инклуду и документации, это не размер массива назначения, а длина возвращаемой строки.
Quote:

The maximum length of the returned string.

Reply

Кто-нибудь знает, есть возможность отсылать СМС на подобие этого плагина - https://sampforum.blast.hk/showthread.php?tid=327157, но не через протокол mail.ru (ибо в пришедшем смс показывается мыло отправителя)? Желательно плагин.
Reply

Ты можешь купить GSM плату и отсылать СМС через неё или использовать платные сервисы.
Reply

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Ты можешь купить GSM плату и отсылать СМС через неё или использовать платные сервисы.
Интересует бесплатный вариант.
Reply

Quote:
Originally Posted by Urukhay
Посмотреть сообщение
Интересует бесплатный вариант.
Reply

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Тем не менее многие пользуются бесплатной отправкой электронной почты, хотя, это уже другая история..
Reply

Stepashka, зачем людей обманывать? Бесплатный сыр для второй мыши, помяним первую.
Reply

Quote:
Originally Posted by SoNikMells
Посмотреть сообщение
Stepashka, зачем людей обманывать? Бесплатный сыр для второй мыши, помяним первую.
В мышеловке сыр для любой мыши бесплатный )
Reply

Народ, подскажите какие вообще надо античиты ставить основные?
деньги, хп/броня, аммо ...
Reply

Грамотный админ - лучший античит. Естественно, не с РП-серверов.
Reply

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Грамотный админ - лучший античит. Естественно, не с РП-серверов.
лучший античит был бы, если их вообще не было бы
либо клиент защищал бы
но увы
Reply

Quote:
Originally Posted by proSeryoga
Посмотреть сообщение
Народ, подскажите какие вообще надо античиты ставить основные?
деньги, хп/броня, аммо ...
по мере работы сервера увидишь, кучу всего надо
Reply

Как мы знаем, строки функциями лучше не возвращать. Поэтому есть 3 выхода к одной задаче. Какой лучше?

1) Создаём общую глобальную переменную, для всех игроков одну. При вызове функции в неё запишется
текст. А из того места, где мы вызывали эту функцию, мы используем эту глобальную переменную, соответственно после вызова функции. Минус: Возможно, что в ту долю секунды, между завершением функции и взятием данных из переменной, возможен вызов этой функции другим игроком, и переменная изменится и даст неверное значение.

2) Делаем на PVar'ах типа string. То же самое, но вместо глобальной переменной PVar, но уже каждому игроку. Здесь никто не перекроет значение.

3) Вместо написания функции в отдельном месте, перенесём её внутренности прямо в то место, откуда бы мы её вызывали. Минус: нужно будет размножать один и тот же код во многих местах.
Reply

Quote:
Originally Posted by Urukhay
Посмотреть сообщение
Как мы знаем, строки функциями лучше не возвращать. Поэтому есть 3 выхода к одной задаче. Какой лучше?

1) Создаём общую глобальную переменную, для всех игроков одну. При вызове функции в неё запишется
текст. А из того места, где мы вызывали эту функцию, мы используем эту глобальную переменную, соответственно после вызова функции. Минус: Возможно, что в ту долю секунды, между завершением функции и взятием данных из переменной, возможен вызов этой функции другим игроком, и переменная изменится и даст неверное значение.

2) Делаем на PVar'ах типа string. То же самое, но вместо глобальной переменной PVar, но уже каждому игроку. Здесь никто не перекроет значение.

3) Вместо написания функции в отдельном месте, перенесём её внутренности прямо в то место, откуда бы мы её вызывали. Минус: нужно будет размножать один и тот же код во многих местах.
И почему это лучше не возвращать? Дайте расширенный ответ!

pawn Код:
RetStr(string[], size = sizeof(string))
{
    if(strlen(string) == 0) return 0;
    strins(string, "Не ", 0, size);
    return 1;
}

public OnFilterScriptInit()
{
    new string[64] = "выдумывай ху*ню!";
    print(string);
    RetStr(string);
    print(string);
    return 1;
}
Reply

Quote:
Originally Posted by White_116
Посмотреть сообщение
И почему это лучше не возвращать? Дайте расширенный ответ!

pawn Код:
RetStr(string[], size = sizeof(string))
{
    if(strlen(string) == 0) return 0;
    strins(string, "Не ", 0, size);
    return 1;
}

public OnFilterScriptInit()
{
    new string[64] = "выдумывай ху*ню!";
    print(string);
    RetStr(string);
    print(string);
    return 1;
}
Ты не возвращаешь строку, ты передаешь её по ссылке, это разные вещи.
А возвращать строки действительно не рекомендуется, потому что размер возвращаемой строки нельзя узнать пока ты её не получишь, а если он будет больше чем массив в который ты пытаешься её записать, у тебя произойдет выход за пределы массива.
Reply

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Ты не возвращаешь строку, ты передаешь её по ссылке, это разные вещи.
Это решение, 4 способ.
Reply

Есть тот, кто использует классы при программировании в pawn? Если да, то для чего?
Reply

Quote:
Originally Posted by Urukhay
Посмотреть сообщение
Есть тот, кто использует классы при программировании в pawn? Если да, то для чего?
Больше петросянов в студию, пожалуйста.
Reply


Forum Jump:


Users browsing this thread: 42 Guest(s)