SA-MP Forums Archive
Скриптинг курилка - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Скриптинг курилка (/showthread.php?tid=111279)



Re: Скриптинг курилка - -Stranger- - 12.10.2014

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


Re: Скриптинг курилка - Jon_De - 16.10.2014

Что за ерунда с 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?


Re: Скриптинг курилка - Stepashka - 16.10.2014

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.




Re: Скриптинг курилка - Urukhay - 21.10.2014

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


Re: Скриптинг курилка - Stepashka - 21.10.2014

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


Re: Скриптинг курилка - Urukhay - 21.10.2014

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


Re: Скриптинг курилка - Stepashka - 21.10.2014

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



Re: Скриптинг курилка - Urukhay - 21.10.2014

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


Re: Скриптинг курилка - SoNikMells - 21.10.2014

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


Re: Скриптинг курилка - Urukhay - 21.10.2014

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


Re: Скриптинг курилка - proSeryoga - 27.10.2014

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


Re: Скриптинг курилка - OKStyle - 27.10.2014

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


Re: Скриптинг курилка - proSeryoga - 27.10.2014

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


Re: Скриптинг курилка - Jon_De - 27.10.2014

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


Re: Скриптинг курилка - Urukhay - 28.10.2014

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

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

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

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


Re: Скриптинг курилка - White_116 - 28.10.2014

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;
}



Re: Скриптинг курилка - Stepashka - 28.10.2014

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;
}
Ты не возвращаешь строку, ты передаешь её по ссылке, это разные вещи.
А возвращать строки действительно не рекомендуется, потому что размер возвращаемой строки нельзя узнать пока ты её не получишь, а если он будет больше чем массив в который ты пытаешься её записать, у тебя произойдет выход за пределы массива.


Re: Скриптинг курилка - White_116 - 28.10.2014

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


Re: Скриптинг курилка - Urukhay - 28.10.2014

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


Re: Скриптинг курилка - Mutha_X - 28.10.2014

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