SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 05/11/2012, 09:19 AM   #441
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: Коллекция функций / макросов

Жить надо проще.
pawn Code:
FlipString(string[]) {
    if (string[0] == EOS) return false;
    for (new i, letter, len = strlen(string); i < len; i++) {
        if (len - i == i) break;
        letter = string[i];
        string[i] = string[len - i - 1];
        string[len - i - 1] = letter;
    }
    return true;
}
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 15/11/2012, 04:04 PM   #442
GameMan
Huge Clucker
 
GameMan's Avatar
 
Join Date: Mar 2011
Location: Russia
Posts: 370
Reputation: 19
Default Re: Коллекция функций / макросов

Проверяет наличие игрока в кубе координат.
pawn Code:
stock IsPlayerInCube(playerid, Float:min_x, Float:min_y, Float:min_z, Float:max_x, Float:max_y, Float:max_z)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:px, Float:py, Float:pz;
        GetPlayerPos(playerid, px, py, pz);
        if(px >= min_x && px <= max_x && py >= min_y && py <= max_y && pz >= min_z && pz <= max_z) return 1;
    }
    return 0;
}
GameMan is offline   Reply With Quote
Old 22/12/2012, 10:13 AM   #443
-Stranger-
Gangsta
 
-Stranger-'s Avatar
 
Join Date: Mar 2010
Location: TCP/IPv4
Posts: 770
Reputation: 40
Default Re: Коллекция функций / макросов

Защита для колбэка "OnDialogResponse".

В самое его начала вставляем следующий код:
PHP Code:
if(playerid == INVALID_PLAYER_ID || IsPlayerConnected(playerid) == 0) return 1;
if(
dialogid || dialogid 32767) return 1;
new 
itr = -1;
while(
inputtext[++itr])
{
    switch(
inputtext[itr])
    {
        case 
0x25inputtext[itr] = 0x23// Меняем '%' на '#'.
        
case 0x00 .. 0x1Finputtext[itr] = 0x3F// Меняем 'Управляющие символы' на '?'.
    
}

Так-же есть смысл, сразу после защиты, сделать такую строчку:
PHP Code:
if(dialogid == *любой свободный ID*) return 1
И все диалоги, которые не нужно обрабатывать, ссылать на указанный ID.
__________________
[Mess with the best, die like the rest]
Помог? - жми на . Тебе один клик, а мне приятно
-Stranger- is offline   Reply With Quote
Old 22/12/2012, 11:45 AM   #444
Barabashka
Little Clucker
 
Join Date: Dec 2012
Posts: 25
Reputation: 0
Default Re: Коллекция функций / макросов

Защита от чего собственно?
Barabashka is offline   Reply With Quote
Old 22/12/2012, 11:48 AM   #445
White_116
High-roller
 
Join Date: Sep 2010
Location: Russia/116
Posts: 1,495
Reputation: 69
Default Re: Коллекция функций / макросов

по ид не актуально, значит то символов при дальнейшей обработки текста.
__________________
White_116 is offline   Reply With Quote
Old 22/12/2012, 12:56 PM   #446
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: Коллекция функций / макросов

pawn Code:
if(playerid == INVALID_PLAYER_ID || IsPlayerConnected(playerid) == 0) return 1;
вторая проверка исключает первую, если в IsPlayerConnected передать INVALID_PLAYER_ID она вернет 0.
pawn Code:
if(dialogid < 1 || dialogid > 32767) return 1;
вообще бред сивой кобылы, я могу устанавливать любой идишник диалога в диапазоне integer переменной, кроме 0.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 22/12/2012, 01:32 PM   #447
-Stranger-
Gangsta
 
-Stranger-'s Avatar
 
Join Date: Mar 2010
Location: TCP/IPv4
Posts: 770
Reputation: 40
Default Re: Коллекция функций / макросов

Stepashka, Данная защита написана, используя официальную wiki: http://wiki.sa-mp.com/wiki/ShowPlayerDialog , а именно "An ID to assign this dialog to, so responses can be processed. Max dialogid is 32767. Using negative values will close any open dialog."...
__________________
[Mess with the best, die like the rest]
Помог? - жми на . Тебе один клик, а мне приятно
-Stranger- is offline   Reply With Quote
Old 11/01/2013, 08:55 AM   #448
Makar93
Gangsta
 
Makar93's Avatar
 
Join Date: Sep 2009
Posts: 541
Reputation: 9
Default Re: Коллекция функций / макросов

Quote:
Originally Posted by -Stranger- View Post
Stepashka, Данная защита написана, используя официальную wiki: http://wiki.sa-mp.com/wiki/ShowPlayerDialog , а именно "An ID to assign this dialog to, so responses can be processed. Max dialogid is 32767. Using negative values will close any open dialog."...
А не проще?
Code:
switch(dialogid)
{
case 1:
....
default: return 1;
}
__________________
Makar93 is offline   Reply With Quote
Old 14/01/2013, 12:21 PM   #449
DrSlett
Banned
 
Join Date: Sep 2012
Posts: 279
Reputation: 13
Default Re: Коллекция функций / макросов

Quote:
Originally Posted by Makar93 View Post
А не проще?
Code:
switch(dialogid)
{
case 1:
....
default: return 1;
}
Не имеет значения, эффект от использования будет тот же.
DrSlett is offline   Reply With Quote
Old 14/01/2013, 03:46 PM   #450
AirKite
Gangsta
 
AirKite's Avatar
 
Join Date: Feb 2009
Posts: 733
Reputation: 21
Default Re: Коллекция функций / макросов

Quote:
Originally Posted by Stepashka View Post
pawn Code:
if(playerid == INVALID_PLAYER_ID || IsPlayerConnected(playerid) == 0) return 1;
вторая проверка исключает первую, если в IsPlayerConnected передать INVALID_PLAYER_ID она вернет 0.
pawn Code:
if(dialogid < 1 || dialogid > 32767) return 1;
вообще бред сивой кобылы, я могу устанавливать любой идишник диалога в диапазоне integer переменной, кроме 0.
И первая проверка и вторая бред. dialogid действительно ограничен максимальным значением "32767", но каков повод это число вообще проверять, если даже было бы возможно передать свыше данного значения. Ну и потом, аргумент playerid не регулируется самим игроком, это ид игрока, ид сессии, я уже где то об этом говорил.
AirKite is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
SA-MP для Anderius, Criminal Russia, United и Gostown6 dimonml Русский/Russian 1009 28/02/2020 06:05 PM
Проблема с прорисовкой некоторых объект& ONIXS Русский/Russian 29 23/11/2011 04:24 PM
Символы, буковки, горячая замена ^Woozie^ Русский/Russian 23 27/02/2010 01:25 PM


All times are GMT. The time now is 10:38 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.