Вопрос по коду в 2016/2017 a.k.a 2к17
#1

Была одна тема на форуме, парень просил какую-то команду.
Ему вот скинули такой код:
PHP Code:
else if(strcmp(cmd"/givegun"true) == 0)
{
                
tmp strtok(cmdtextidx);
                if(
PlayerInfo[playerid][pAdmin] > 0
                {
                if(!
strlen(tmp)) return SendClientMessage(playeridCOLOR_WHITE"???????????: /givegun [id] [id ??????] [???????]");}
                new 
playa;
                new 
gun;
                new 
ammo;
                
playa ReturnUser(tmp);
                
tmp strtok(cmdtextidx);
                
gun strval(tmp);
                if(
gun <1||gun 46) return SendClientMessage(playeridCOLOR_GRAD1"????? ?????? ?? ?????? ???? ?????? 1 ? ?????? 46");
                if(!
strlen(tmp)) return SendClientMessage(playeridCOLOR_WHITE"???????????: /givegun [id] [id ??????] [???????]");
                
tmp strtok(cmdtextidx);
                
ammo strval(tmp);
                if(
ammo <1||ammo 5000) return SendClientMessage(playeridCOLOR_GRAD1"?????? ?????? 1 ??? ?????? 5000 ????????!");
                if(
PlayerInfo[playerid][pAdmin] >= 6)
                {
                        if(
IsPlayerConnected(playa))
                        {
                                new 
iname[MAX_PLAYER_NAME], dname[MAX_PLAYER_NAME];
                                
GetPlayerName(playeridinamesizeof(iname));
                                
GetPlayerName(playadnamesizeof(dname));
                                
GiveWeapon(playagunammo);
                                
SendClientMessage(playeridCOLOR_GRAD1"?????? ??????");
                                static const 
Frmt[] = "[A] %s[%d] выдал оружие (ID: %d, патронов: %d) игроку %s[%d];
                                new String_Frmt[sizeof(Frmt) + MAX_PLAYER_NAME + 3 + 2 + 4 + MAX_PLAYER_NAME + 3 - 12];
                                format(String_Frmt, sizeof(String_Frmt), Frmt, iname, playerid, gun, ammo, dname, playa);
                                SendAdminMessage(-1, String_Frmt);
                        }
                }
                }
                else return SendClientMessage(playerid, COLOR_GRAD1, "
?? ?? ???????????? ???????????? ??? ???????!");

На что я сделал замечани:
Quote:

Кажется люди в 2к16 (скоро 2к17) не слышали про sscanf

И дал ему такой код:
PHP Code:
CMD:gun(playerid,params[]){
        if(
p_info[playerid][p_admin] < 1) return true;
        if(
sscanf(params,"udd",params[0],params[1],params[2])) return SendClientMessage(playerid,-1"[Справка]: Используйте /gun [ID игрока] [ID оружия] [количество патронов]");
   
GivePlayerWeapon(params[0],params[1],params[2]);
        new 
mes[88];
        
format(messizeof(mes),"[A] %s[%d] выдал оружие %s",Name(playerid),playerid,params[0]);
        
Message_ToAdmins(0xA7CB44AAmes);
        return 
true;

PHP Code:
stock Message_ToAdmins(color, const fmat[], va_args<>)
{
    foreach(new 
Player)
        if (
p_info[i][p_admin] >= 1)
            
SendClientMessage(icolorva_return(fmatva_start<2>));

И ссылка на Pawn.CMD
На что мне сделали указание мол в 2к17 уже пишут примерно такой код:
PHP Code:
if(!strcmp(cmdtext"/ip"true))
{
     if(
PI[playerid][Admin] < 1)//заменяйте на свою переменную админки
         
return true;
     
extract params -> new plid; else
        return 
SendClientMessage(playerid, -1, !"- Подсказка: /ip [ID]");
     if(!
IsPlayerConnected(plid))
        return 
SendClientMessage(playerid, -1, !"Такого игрока нет");
                    
     new   
        
ip[16], name[MAX_PLAYER_NAME];
     
GetPlayerIp(plidipsizeof ip);
                
     
GetPlayerName(plidnamesizeof name);
     static const
         
fmt_str[] = "Ник: [%s]  IP: [%s]";
     new
         
string[sizeof fmt_str + (-2+MAX_PLAYER_NAME) + (-2+16)];
     
format(stringsizeof(string), fmt_strnameip);
     
SendClientMessage(playerid, -1string);
     return 
true;

Вопросы:
На сколько ли это актуально?
Есть-ли какая-то разница между ними? (скорость, память и т.п)
Стоит ли придержоваться второго варианта?
Reply


Messages In This Thread
Вопрос по коду в 2016/2017 a.k.a 2к17 - by Johhnyllll - 26.12.2016, 09:52
Re: Вопрос по коду в 2016/2017 a.k.a 2к17 - by OstGot - 26.12.2016, 10:25
Re: Вопрос по коду в 2016/2017 a.k.a 2к17 - by Mutha_X - 26.12.2016, 10:34
Re: Вопрос по коду в 2016/2017 a.k.a 2к17 - by Diman777 - 26.12.2016, 14:51
Re: Вопрос по коду в 2016/2017 a.k.a 2к17 - by Romz - 26.12.2016, 14:55
Re: Вопрос по коду в 2016/2017 a.k.a 2к17 - by Diman777 - 26.12.2016, 15:22

Forum Jump:


Users browsing this thread: 1 Guest(s)