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

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
Reply

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

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

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

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

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

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

Чуть выше спрашивал про ограничение символов, возникла новая проблема. Делаю ограничение вводимых символов для ганг чата, т.е. чтобы в ганг чате было не размахнуться, устанавливаю 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;} 
Reply

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

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

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;

Reply

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

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

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

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

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

P.S. strlen(params). =)
Reply

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

Немного странный вопрос, но как правильно отображать 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.
Reply

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

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

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

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

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

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


Forum Jump:


Users browsing this thread: 7 Guest(s)