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: Скриптинг курилка - White_116 - 07.05.2012

Quote:
Originally Posted by Be$$0n
View Post
Снова я с вопросом:
К примеру есть 2 переменные:
new Float:a = 3.4;
new Float:b = 3.8;
Вопрос в следующем:
Как их округлить и преобразовать в целое число? ( К примеру если > *.5 то округлим на число больше, т.е было 3.8 стало 4)
https://sampwiki.blast.hk/wiki/Floatround
https://sampwiki.blast.hk/wiki/Floatround_method


Re: Скриптинг курилка - Baks - 07.05.2012

Подскажите, пожалуйста, как указать кол-во символов в sscanf? Т.е. мне необходимо задать точное кол-во символов, например, в причину кика.

PHP Code:
if (sscanf(params"us"IdReason)){ 
К примеру, от 3 до 15 символов.


Re: Скриптинг курилка - iEnemY - 07.05.2012

Code:
if(strlen(Reason) > 15 || strlen(Reason) < 3)
{
//...
}



Re: Скриптинг курилка - Baks - 07.05.2012

Благодарю, все работает. =)


Re: Скриптинг курилка - iEnemY - 08.05.2012

Эм... эт чо такое, и почему оно на меня ругаецо?
Warning: PlayerDialogResponse PlayerId: 6 dialog ID doesn't match last sent dialog ID

Только лог включил, а оно фигнёй страдать начинает...


Re: Скриптинг курилка - Baks - 08.05.2012

Чуть выше спрашивал про ограничение символов, возникла новая проблема. Делаю ограничение вводимых символов для ганг чата, т.е. чтобы в ганг чате было не размахнуться, устанавливаю 64 символа:

PHP Code:
if (strlen(Text) > 64 || strlen(Text) < 3){
// тыры-пыры, хрен
return 1;} 
Вроде хэппи энд, но когда я вбиваю более 64 символов, откуда не возьмись высвечивает надпись стандартная (сервер не знает команды). Откуда она и как исправить? Ведь по идеи должно высвечивать "тыры-пыры, хрен"...

Сама команда:

PHP Code:
dcmd_g(playeridparams[]){
new 
Text[64], PlayerFuckingName[MAX_PLAYER_NAME], Str1[150];
GetPlayerName(playeridPlayerFuckingNamesizeof(PlayerFuckingName));
if (
PlayerGang[playerid] == 0){
//
return 1;}
if (
sscanf(params"s"Text)){
//
return 1;}
if (
strlen(Text) > 64 || strlen(Text) < 3){
//
return 1;}
format(Str1sizeof(Str1), "[Gang Chat] от %s (%d): %s"PlayerFuckingNameplayeridText);
MessageToGangs(PlayerGang[playerid], Str1);
return 
1;} 
PHP Code:
forward MessageToGangs(gangidtext[]);
public 
MessageToGangs(gangidtext[]){
for (new 
0MAX_PLAYERSi++){
if (
PlayerGang[i] == gangid && IsPlayerConnected(i)) SendClientMessage(i0xFFFFFFFFtext);}
return 
1;} 



Re: Скриптинг курилка - DartfoL - 08.05.2012

Quote:
Originally Posted by iEnemY
View Post
Эм... эт чо такое, и почему оно на меня ругаецо?
Warning: PlayerDialogResponse PlayerId: 6 dialog ID doesn't match last sent dialog ID

Только лог включил, а оно фигнёй страдать начинает...
антиподмена ида диалога


Re: Скриптинг курилка - Evansive - 08.05.2012

Quote:
Originally Posted by Baks
View Post
Чуть выше спрашивал про ограничение символов, возникла новая проблема. Делаю ограничение вводимых символов для ганг чата, т.е. чтобы в ганг чате было не размахнуться, устанавливаю 64 символа
PHP Code:
dcmd_gplayeridparams[ ] )
{
    new
        
t_x64 ],
        
p_name24 ],
        
s_t80 ];
        
    
GetPlayerName(playeridp_name24 );
    if (
PlayerGangplayerid ] > 0)
    {
        if(
sscanf(params"s"t_x ) ) return SendClientMessageplayerid, -1"/g [ text ]" );
        if( 
strlent_x ) < 0b00010000 << 2)
        {
            
format(s_tsizeof s_t"[Gang Chat] от %s (%d): %s"p_nameplayeridt_x );
            
MessageToGangsPlayerGangplayerid ], s_t);
        }
    }
    return 
1;




Re: Скриптинг курилка - Baks - 08.05.2012

Evansive, проблема осталась (точно такая же как у меня), при 65 символах - ничего не пишет, при 66 и выше - сервер не знает команды.


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

Code:
sscanf(params, "s[64]", t_x )
читайте внимательно документацию.


Re: Скриптинг курилка - Baks - 08.05.2012

PHP Code:
sscanf(params"s[64]"t_x 
При любом вводе символов (до 64) пишет "/g [ text ]", если выше - сервер не знает команды.


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

А на кой черт тебе тут вообще sscanf?


Re: Скриптинг курилка - Baks - 08.05.2012

Хех и вправду, спасибо за подсказку, реализовал, все работает!

P.S. strlen(params). =)


Re: Скриптинг курилка - eakwarp - 08.05.2012

Quote:
Originally Posted by Baks
View Post
P.S. strlen(params). =)
isnull(params)? между прочим в комплекте со сканфф идет.


Re: Скриптинг курилка - Baks - 09.05.2012

Немного странный вопрос, но как правильно отображать score в ТАБ?

PHP Code:
forward CheckKills();
public 
CheckKills(){
new 
PlayerName[MAX_PLAYER_NAME];
for (new 
0MAX_PLAYERSi++){
if (
IsPlayerConnected(i)){
GetPlayerName(iPlayerNameMAX_PLAYER_NAME);
SetPlayerScore(iPlayerInfo[i][Kills]);
PlayerInfo[i][Kills] = GetPlayerScore(i);}}} 
Верна ли эта запись или можно по-другому? Дело в том, что мне нужно избежать 2-х функций Set/GetPlayerScore.


Re: Скриптинг курилка - raider19rus - 09.05.2012

Code:
forward CheckKills();
public CheckKills(){
for (new i = 0; i < GetMaxPlayers(); i++){
if (IsPlayerConnected(i)) SetPlayerScore(i, PlayerInfo[i][Kills]);}}
Не ?


Re: Скриптинг курилка - Baks - 09.05.2012

А реально без Set/GetPlayerScore? Т.к. люди юзают некий софт, с которым реально набить за пару секунд несколько тысяч Kills.


Re: Скриптинг курилка - Evansive - 09.05.2012

Quote:
Originally Posted by Baks
View Post
А реально без Set/GetPlayerScore? Т.к. люди юзают некий софт, с которым реально набить за пару секунд несколько тысяч Kills.
Да легко.

PHP Code:
if( GetPlayerScoreplayerid ) > PlayerInfoplayerid ] [ Kills ] ) SetPlayerScoreplayeridPlayerInfoplayerid ] [ Kills ] ); 



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

Храните, статистику на сервере и ни один чит не сможет её изменить.


Re: Скриптинг курилка - raider19rus - 09.05.2012

Не подскажите точные координаты камеры, когда игрок коннектится к серверу (берег Лос-Сантоса) ?