Модератор форума: drifter-dron, admin, TweIk  
Вопросы по скриптингу
Mr_NiggerДата: Вторник, 29.04.2014, 07:33:05 | Сообщение # 1006

Группа: Пользователи
Сообщений: 101
КРОТ,спасибо,а почему когда я кикаю игроков их кикает,но причину им не пишет?

Сообщение отредактировал Mr_Nigger - Вторник, 29.04.2014, 07:54:31
 
СообщениеКРОТ,спасибо,а почему когда я кикаю игроков их кикает,но причину им не пишет?

Автор - Mr_Nigger
Дата добавления - 29.04.2014 в 07:33:05
007Дата: Вторник, 29.04.2014, 08:43:24 | Сообщение # 1007

Группа: Пользователи
Сообщений: 1
Можно ли обойти рандом изнутри сервеа? Чтобы он всегда давал максимум?
Например вот этот:

 prinesmet [playerid]= random(60);
        countmet [playerid]= countmet [playerid]+ prinesmet[playerid];
 
СообщениеМожно ли обойти рандом изнутри сервеа? Чтобы он всегда давал максимум?
Например вот этот:

 prinesmet [playerid]= random(60);
        countmet [playerid]= countmet [playerid]+ prinesmet[playerid];

Автор - 007
Дата добавления - 29.04.2014 в 08:43:24
КРОТДата: Вторник, 29.04.2014, 19:14:34 | Сообщение # 1008

Группа: Скриптер
Сообщений: 151
Mr_Nigger, команда кик в сампе не пишет причину это тебе надо самому сделать создай проверку на текст после IDа игрока и сделай выбор, если текста нет - кикать молча либо требовать указать причину если есть то
Код
new msg[254];
format(msg,254,"%s был кикнут с сервера, причина: %s",переменная которая отвечает за ник игрока, переменная которая отвечает за текст);
SendClientMessageToAll(0xDD4400FF,msg);
эт набросок поэтому сам под себя настрой ибо хз как у тебя, если есть время можешь скачать Mafia Wars 1.3 там вырезать систему кика, но лучше напиши свою

007, рандом ты никак не обойдёшь, можно просто заменить
Код
prinesmet [playerid]= random(60);

на
Код
prinesmet [playerid]= 60;

либо сделать примитивный диапазон:
Код
prinesmet [playerid]= random(21)+9;// 9 - минимальное число, 21 - число которое будет прибавлено к 9


Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего
Аминь


Сообщение отредактировал КРОТ - Вторник, 29.04.2014, 19:24:38
 
СообщениеMr_Nigger, команда кик в сампе не пишет причину это тебе надо самому сделать создай проверку на текст после IDа игрока и сделай выбор, если текста нет - кикать молча либо требовать указать причину если есть то
Код
new msg[254];
format(msg,254,"%s был кикнут с сервера, причина: %s",переменная которая отвечает за ник игрока, переменная которая отвечает за текст);
SendClientMessageToAll(0xDD4400FF,msg);
эт набросок поэтому сам под себя настрой ибо хз как у тебя, если есть время можешь скачать Mafia Wars 1.3 там вырезать систему кика, но лучше напиши свою

007, рандом ты никак не обойдёшь, можно просто заменить
Код
prinesmet [playerid]= random(60);

на
Код
prinesmet [playerid]= 60;

либо сделать примитивный диапазон:
Код
prinesmet [playerid]= random(21)+9;// 9 - минимальное число, 21 - число которое будет прибавлено к 9

Автор - КРОТ
Дата добавления - 29.04.2014 в 19:14:34
BlootysДата: Среда, 30.04.2014, 18:46:01 | Сообщение # 1009

Группа: Пользователи
Сообщений: 1
Помогите! Как создать опрос, или текст, да всё что угодно в ID1274 (Объект)? Типо подходишь к этой фигне а там опрос или текст написан помогииите headbang headbang headbang headbang headbang headbang headbang headbang headbang headbang headbang
 
СообщениеПомогите! Как создать опрос, или текст, да всё что угодно в ID1274 (Объект)? Типо подходишь к этой фигне а там опрос или текст написан помогииите headbang headbang headbang headbang headbang headbang headbang headbang headbang headbang headbang

Автор - Blootys
Дата добавления - 30.04.2014 в 18:46:01
КРОТДата: Четверг, 01.05.2014, 04:22:46 | Сообщение # 1010

Группа: Скриптер
Сообщений: 151
Blootys, ээмм, ну ты загнул конечно
но кажись понял твою мысль, скорее всего ты имел ввиду не объект а пикап
а именно: подходишь к пикапу, подбираешь его и тебе создаётся что нужно
попробуй это, может быть это оно и есть

к глобальным new добавляешь
Код
new oprospickup;
в public OnGameModeInit()

   
Код
oprospickup = CreatePickup(1274,2,-1331.279,495.054,11.195);// пикап  будет находиться на авианосце в СФ

в public OnPlayerPickUpPickup(playerid, pickupid)

   
Код
if(pickupid == oprospickup)
     {
         // тут вставляешь что тебе нужно когда берется пикап, например даст 1000$
         GivePlayerMoney(playerid,1000);
     }

если нету паблика OnPlayerPickUpPickup
то вставляй после любого паблика это:

Код
public OnPlayerPickUpPickup(playerid, pickupid)
{
     if(pickupid == oprospickup)
     {
         // тут вставляешь что тебе нужно когда берется пикап, например даст 1000$
         GivePlayerMoney(playerid,1000);
     }
     return 1;
}

это тебе пример как будет работать пикап, мне кажется именно это тебе нужно поскольку ID который ты написал это доллар, его для пикапов чаще всего используют нежели как обычный объект


Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего
Аминь
 
СообщениеBlootys, ээмм, ну ты загнул конечно
но кажись понял твою мысль, скорее всего ты имел ввиду не объект а пикап
а именно: подходишь к пикапу, подбираешь его и тебе создаётся что нужно
попробуй это, может быть это оно и есть

к глобальным new добавляешь
Код
new oprospickup;
в public OnGameModeInit()

   
Код
oprospickup = CreatePickup(1274,2,-1331.279,495.054,11.195);// пикап  будет находиться на авианосце в СФ

в public OnPlayerPickUpPickup(playerid, pickupid)

   
Код
if(pickupid == oprospickup)
     {
         // тут вставляешь что тебе нужно когда берется пикап, например даст 1000$
         GivePlayerMoney(playerid,1000);
     }

если нету паблика OnPlayerPickUpPickup
то вставляй после любого паблика это:

Код
public OnPlayerPickUpPickup(playerid, pickupid)
{
     if(pickupid == oprospickup)
     {
         // тут вставляешь что тебе нужно когда берется пикап, например даст 1000$
         GivePlayerMoney(playerid,1000);
     }
     return 1;
}

это тебе пример как будет работать пикап, мне кажется именно это тебе нужно поскольку ID который ты написал это доллар, его для пикапов чаще всего используют нежели как обычный объект

Автор - КРОТ
Дата добавления - 01.05.2014 в 04:22:46
Mr_NiggerДата: Суббота, 03.05.2014, 11:40:47 | Сообщение # 1011

Группа: Пользователи
Сообщений: 101
КРОТ,это есть такой баг на 0.3х,на 0.3х не доходит чето и у многих причину не показывает,можно это как то исправить?(а так с самим киком все норм)

Сообщение отредактировал Mr_Nigger - Воскресенье, 04.05.2014, 00:07:37
 
СообщениеКРОТ,это есть такой баг на 0.3х,на 0.3х не доходит чето и у многих причину не показывает,можно это как то исправить?(а так с самим киком все норм)

Автор - Mr_Nigger
Дата добавления - 03.05.2014 в 11:40:47
КРОТДата: Воскресенье, 04.05.2014, 17:37:09 | Сообщение # 1012

Группа: Скриптер
Сообщений: 151
Mr_Nigger, скинь-ка свою команду, потому что я с таким багом никогда не встречался если честно

Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего
Аминь
 
СообщениеMr_Nigger, скинь-ка свою команду, потому что я с таким багом никогда не встречался если честно

Автор - КРОТ
Дата добавления - 04.05.2014 в 17:37:09
Mr_NiggerДата: Воскресенье, 04.05.2014, 19:21:16 | Сообщение # 1013

Группа: Пользователи
Сообщений: 101
КРОТ,на других версиях причину показывает и все работает,искал решение в интернете говорят что пакеты не доходят какие-то,и ещё на серваке на одном на котором я играл,такая же тема.
Вот код
 
Код
if(strcmp(cmd, "/kick", true) == 0)
    {
           if (PlayerInfo[playerid] [pAdmin]>= 1)
          {
           tmp = strtok(cmdtext, idx);
          if(!strlen(tmp)) return   SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick  [id][ïðè÷èíà]");
          if (dostup [playerid]!= 1) return      ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Äîñòóï àäìèíèñòðàòîðà","Ââåäèòå ïàðîëü îò àäìèíèñòðàòèâíîé ïàíåëè","Îê","Îòìåíà");
          giveplayerid = ReturnUser(tmp);
          if (PlayerInfo[playerid] [pLevel]>= 2 && PlayerInfo[playerid] [pAdmin]>= 1)
          {
             if(IsPlayerConnected(giveplayerid))
             {
                 if(giveplayerid != INVALID_PLAYER_ID)
                 {
                 if(PlayerInfo[giveplayerid] [pAdmin]> 0) return SendClientMessage(playerid, COLOR_GRAD2, "Àäìèíèñòðàòîð íå ìîæåò áûòü êèêíóò!");
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                   GetPlayerName(playerid, sendername, sizeof(sendername));
                   new length = strlen(cmdtext);
                   while ((idx < length) && (cmdtext [idx]<= ' '))
                   {
                      idx++;
                   }
                   new offset = idx;
                   new result[64];
                   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                   {
                      result[idx - offset] = cmdtext[idx];
                      idx++;
                   }
                   result[idx - offset] = EOS;
                   if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick  [id][reason]");
                   new year, month,day;
                   getdate(year, month, day);
                   PlayerInfo[giveplayerid] [pRp]-=5;
                         new msg[254];
                   format(msg,254,"%s %s êèêíóë %s. Ïðè÷èíà: %s",BossRank, sendername,giveplayer, (result));
                   SendClientMessageToAll(COLOR_LIGHTRED,msg);
                   return 1;
                }
             }
          }
          else
          {
             SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Èãðîê íå íàéäåí!");
          }
       }
       Kick(playerid);
    }


Переводить не стал,думаю все понятно будет в коде и без этого
 
СообщениеКРОТ,на других версиях причину показывает и все работает,искал решение в интернете говорят что пакеты не доходят какие-то,и ещё на серваке на одном на котором я играл,такая же тема.
Вот код
 
Код
if(strcmp(cmd, "/kick", true) == 0)
    {
           if (PlayerInfo[playerid] [pAdmin]>= 1)
          {
           tmp = strtok(cmdtext, idx);
          if(!strlen(tmp)) return   SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick  [id][ïðè÷èíà]");
          if (dostup [playerid]!= 1) return      ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Äîñòóï àäìèíèñòðàòîðà","Ââåäèòå ïàðîëü îò àäìèíèñòðàòèâíîé ïàíåëè","Îê","Îòìåíà");
          giveplayerid = ReturnUser(tmp);
          if (PlayerInfo[playerid] [pLevel]>= 2 && PlayerInfo[playerid] [pAdmin]>= 1)
          {
             if(IsPlayerConnected(giveplayerid))
             {
                 if(giveplayerid != INVALID_PLAYER_ID)
                 {
                 if(PlayerInfo[giveplayerid] [pAdmin]> 0) return SendClientMessage(playerid, COLOR_GRAD2, "Àäìèíèñòðàòîð íå ìîæåò áûòü êèêíóò!");
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                   GetPlayerName(playerid, sendername, sizeof(sendername));
                   new length = strlen(cmdtext);
                   while ((idx < length) && (cmdtext [idx]<= ' '))
                   {
                      idx++;
                   }
                   new offset = idx;
                   new result[64];
                   while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                   {
                      result[idx - offset] = cmdtext[idx];
                      idx++;
                   }
                   result[idx - offset] = EOS;
                   if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick  [id][reason]");
                   new year, month,day;
                   getdate(year, month, day);
                   PlayerInfo[giveplayerid] [pRp]-=5;
                         new msg[254];
                   format(msg,254,"%s %s êèêíóë %s. Ïðè÷èíà: %s",BossRank, sendername,giveplayer, (result));
                   SendClientMessageToAll(COLOR_LIGHTRED,msg);
                   return 1;
                }
             }
          }
          else
          {
             SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Èãðîê íå íàéäåí!");
          }
       }
       Kick(playerid);
    }


Переводить не стал,думаю все понятно будет в коде и без этого

Автор - Mr_Nigger
Дата добавления - 04.05.2014 в 19:21:16
КРОТДата: Воскресенье, 04.05.2014, 20:12:17 | Сообщение # 1014

Группа: Скриптер
Сообщений: 151
Mr_Nigger, ну если верить команде то у тебя вообще она кикает того игрока который её вводит:) ща попробую посмотреть в чём опа))

-------------------------------------------------------------
немного переделал, но она относительно запутанная сама по себе. много лишнего в ней, ща скину свою с твоими данными
Код
if(strcmp(cmd, "/kick", true) == 0)
       {
           if (PlayerInfo [playerid][pAdmin]>= 1)
           {
               tmp = strtok(cmdtext, idx);
               if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick  [id][ïðè÷èíà]");
               if (dostup [playerid]!= 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Äîñòóï àäìèíèñòðàòîðà","Ââåäèòå ïàðîëü îò àäìèíèñòðàòèâíîé ïàíåëè","Îê","Îòìåíà");
               giveplayerid = ReturnUser(tmp);
               if(IsPlayerConnected(giveplayerid) && giveplayerid != INVALID_PLAYER_ID)
               {
                   if(PlayerInfo [playerid][pLevel]>= 2)
                   {
                       if(PlayerInfo [giveplayerid][pAdmin]> 0) return SendClientMessage(playerid, COLOR_GRAD2, "Àäìèíèñòðàòîð íå ìîæåò áûòü êèêíóò!");
                       GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                       GetPlayerName(playerid, sendername, sizeof(sendername));
                       new length = strlen(cmdtext);
                       while ((idx < length) && (cmdtext [idx]<= ' '))
                       {
                           idx++;
                       }
                       new offset = idx;
                       new result[64];
                       while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                       {
                           result[idx - offset] = cmdtext[idx];
                           idx++;
                       }
                       result[idx - offset] = EOS;
                       if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick  [id][reason]");
                       new year, month,day;
                       getdate(year, month, day);
                       PlayerInfo [giveplayerid][pRp]-=5;
                       new msg[254];
                       format(msg,254,"%s %s êèêíóë %s. Ïðè÷èíà: %s",BossRank, sendername,giveplayer, (result));
                       SendClientMessageToAll(COLOR_LIGHTRED,msg);
                       Kick(giveplayerid);
                   }
                   else
                   {
                       SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Èãðîê íå íàéäåí!");
                       Kick(giveplayerid);
                   }
               }
           }
           return 1;
       }
-------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------
Лично я такую использую:
к глобальным дефайнам:
Код
#define checkplayer(%1); \
   if(!IsPlayerConnected(%1)){\
    SendClientMessage(playerid,COLOR_GREY,"Нет такого игрока");\
    return 1;\
   }

   #define getTgt(%2); tmp = strtok(cmdtext,idx); \
       if(!strlen(tmp)){ \
        SendClientMessage(playerid,COLOR_WHITE,%2); \
        return 1;\
       } \
       tgt = ReturnUser(tmp);\
       checkplayer(tgt);
к глобальным new
   
Код
new tgt;


в паблик с командами:

Код
if(iscmd(cmd,"/kick"))
      {
          if(!PlayerInfo[giveplayerid][pAdmin])
          {
              SendClientMessage(playerid,COLOR_GREY,"Вы не админ");
              return 1;
          }
          getTgt("Использование: /kick [игрок] {причина}");
          strmid(tmp,cmdtext,idx,strlen(cmdtext));
          KickEx(tgt,tmp,1);
          return 1;
      }

После дефайнов и глобальных new:

Код
KickEx(playerid,reason[],force=0)
      {
          new msg[256];
          new pname[32];
          GetPlayerName(playerid,pname,32);
          if(strlen(reason)>0 && PlayerInfo[giveplayerid][pLevel]>=2)
          {
              format(msg,256,"%s был кикнут с сервера, причина: %s",pname,reason);
              SendClientMessageToAllCOLOR_GREY,msg);
          }
          Kick(playerid);
      }

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

Если будешь использовать мою версию то в моде можно будет упростить код:
checkplayer(ID); // проверяет в сети игрок или нет. если нет то вернет сообщение что игрок не в сети
getTgt("Текст"); // возвращает tgt с ID нужного тебе игрока, если такого нет то напишет текст который в скобках


Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего
Аминь


Сообщение отредактировал КРОТ - Воскресенье, 04.05.2014, 20:42:27
 
СообщениеMr_Nigger, ну если верить команде то у тебя вообще она кикает того игрока который её вводит:) ща попробую посмотреть в чём опа))

-------------------------------------------------------------
немного переделал, но она относительно запутанная сама по себе. много лишнего в ней, ща скину свою с твоими данными
Код
if(strcmp(cmd, "/kick", true) == 0)
       {
           if (PlayerInfo [playerid][pAdmin]>= 1)
           {
               tmp = strtok(cmdtext, idx);
               if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick  [id][ïðè÷èíà]");
               if (dostup [playerid]!= 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Äîñòóï àäìèíèñòðàòîðà","Ââåäèòå ïàðîëü îò àäìèíèñòðàòèâíîé ïàíåëè","Îê","Îòìåíà");
               giveplayerid = ReturnUser(tmp);
               if(IsPlayerConnected(giveplayerid) && giveplayerid != INVALID_PLAYER_ID)
               {
                   if(PlayerInfo [playerid][pLevel]>= 2)
                   {
                       if(PlayerInfo [giveplayerid][pAdmin]> 0) return SendClientMessage(playerid, COLOR_GRAD2, "Àäìèíèñòðàòîð íå ìîæåò áûòü êèêíóò!");
                       GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                       GetPlayerName(playerid, sendername, sizeof(sendername));
                       new length = strlen(cmdtext);
                       while ((idx < length) && (cmdtext [idx]<= ' '))
                       {
                           idx++;
                       }
                       new offset = idx;
                       new result[64];
                       while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                       {
                           result[idx - offset] = cmdtext[idx];
                           idx++;
                       }
                       result[idx - offset] = EOS;
                       if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick  [id][reason]");
                       new year, month,day;
                       getdate(year, month, day);
                       PlayerInfo [giveplayerid][pRp]-=5;
                       new msg[254];
                       format(msg,254,"%s %s êèêíóë %s. Ïðè÷èíà: %s",BossRank, sendername,giveplayer, (result));
                       SendClientMessageToAll(COLOR_LIGHTRED,msg);
                       Kick(giveplayerid);
                   }
                   else
                   {
                       SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Èãðîê íå íàéäåí!");
                       Kick(giveplayerid);
                   }
               }
           }
           return 1;
       }
-------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------
Лично я такую использую:
к глобальным дефайнам:
Код
#define checkplayer(%1); \
   if(!IsPlayerConnected(%1)){\
    SendClientMessage(playerid,COLOR_GREY,"Нет такого игрока");\
    return 1;\
   }

   #define getTgt(%2); tmp = strtok(cmdtext,idx); \
       if(!strlen(tmp)){ \
        SendClientMessage(playerid,COLOR_WHITE,%2); \
        return 1;\
       } \
       tgt = ReturnUser(tmp);\
       checkplayer(tgt);
к глобальным new
   
Код
new tgt;


в паблик с командами:

Код
if(iscmd(cmd,"/kick"))
      {
          if(!PlayerInfo[giveplayerid][pAdmin])
          {
              SendClientMessage(playerid,COLOR_GREY,"Вы не админ");
              return 1;
          }
          getTgt("Использование: /kick [игрок] {причина}");
          strmid(tmp,cmdtext,idx,strlen(cmdtext));
          KickEx(tgt,tmp,1);
          return 1;
      }

После дефайнов и глобальных new:

Код
KickEx(playerid,reason[],force=0)
      {
          new msg[256];
          new pname[32];
          GetPlayerName(playerid,pname,32);
          if(strlen(reason)>0 && PlayerInfo[giveplayerid][pLevel]>=2)
          {
              format(msg,256,"%s был кикнут с сервера, причина: %s",pname,reason);
              SendClientMessageToAllCOLOR_GREY,msg);
          }
          Kick(playerid);
      }

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

Если будешь использовать мою версию то в моде можно будет упростить код:
checkplayer(ID); // проверяет в сети игрок или нет. если нет то вернет сообщение что игрок не в сети
getTgt("Текст"); // возвращает tgt с ID нужного тебе игрока, если такого нет то напишет текст который в скобках

Автор - КРОТ
Дата добавления - 04.05.2014 в 20:12:17
Mr_NiggerДата: Воскресенье, 04.05.2014, 22:51:03 | Сообщение # 1015

Группа: Пользователи
Сообщений: 101
КРОТ,помогло,слушай в команде /admins и там например два админа,у одного хелпер,и ему показывает там что они оба хелперы,а другой администратор,и ему показывает что они оба администраторы,когда изменяю playerid на targetid мне пишет:error 017: undefined symbol "targetid"

Сообщение отредактировал Mr_Nigger - Воскресенье, 04.05.2014, 22:54:14
 
СообщениеКРОТ,помогло,слушай в команде /admins и там например два админа,у одного хелпер,и ему показывает там что они оба хелперы,а другой администратор,и ему показывает что они оба администраторы,когда изменяю playerid на targetid мне пишет:error 017: undefined symbol "targetid"

Автор - Mr_Nigger
Дата добавления - 04.05.2014 в 22:51:03
КРОТДата: Воскресенье, 04.05.2014, 23:15:05 | Сообщение # 1016

Группа: Скриптер
Сообщений: 151
Mr_Nigger, скинька команду, я чёт нифига не понял хаха

Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего
Аминь
 
СообщениеMr_Nigger, скинька команду, я чёт нифига не понял хаха

Автор - КРОТ
Дата добавления - 04.05.2014 в 23:15:05
Mr_NiggerДата: Воскресенье, 04.05.2014, 23:24:54 | Сообщение # 1017

Группа: Пользователи
Сообщений: 101
КРОТ,вот
Код
else if (strcmp(cmd, "/admins", true) == 0)
     {
          if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2)
          {
            SendClientMessage(playerid, COLOR_YELLOW, "Àäìèíû Online:");
              for(new i = 0; i < MAX_PLAYERS; i++)
           {
                 if(IsPlayerConnected(i))
               {
                   if(PlayerInfo [i][pAdmin]>= 1)
                     {
                        new drank[20];
                    if(PlayerInfo [i][pAdmin]== 1) { drank = "1"; }
                    else if(PlayerInfo [i][pAdmin]== 2) { drank = "2"; }
                    else if(PlayerInfo [i][pAdmin]== 3) { drank = "3"; }
                    else if(PlayerInfo [i][pAdmin]== 4) { drank = "4"; }
                    else if(PlayerInfo [i][pAdmin]== 5) { drank = "5"; }
                    else if(PlayerInfo [i][pAdmin]== 6) { drank = "6"; }
                    else if(PlayerInfo [i][pAdmin]== 7) { drank = "7"; }
                    else if(PlayerInfo [i][pAdmin]== 8) { drank = "8"; }
                  new arank[64];
                 if(PlayerInfo [playerid][pAdmin]== 1) { arank = "Õåëïåð"; }
                 else if(PlayerInfo [playerid][pAdmin]== 2) { arank = "Ìëàäøèé Àäìèí"; }
                 else if(PlayerInfo [playerid][pAdmin]== 3) { arank = "Àäìèíèñòðàòîð"; }
                 else if(PlayerInfo [playerid][pAdmin]== 4) { arank = "Ñòàðøèé Àäìèí"; }
                 else if(PlayerInfo [playerid][pAdmin]== 5) { arank = "Ïîìîùíèê Ðóêîâîäèòåëÿ"; }
                 else if(PlayerInfo [playerid][pAdmin]== 6) { arank = "Ðóêîâîäèòåëü"; }
                 else if(PlayerInfo [playerid][pAdmin]== 7) { arank = "Ñìîòðÿùèé"; }
                 else if(PlayerInfo [playerid][pAdmin]== 8) { arank = "Ñêðèïòåð"; }
                 else { arank = "<ADM-CHAT>"; }

                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, 256, "%s | %s | ID:%d | lvl %s" arank,sendername,i,drank);
                    SendClientMessage(playerid, COLOR_WHITE, string);
                  }
               }
            }
        }
        return 1;
     }

когда заменяю playerid на targetid выдает error 17


Сообщение отредактировал Mr_Nigger - Воскресенье, 04.05.2014, 23:27:44
 
СообщениеКРОТ,вот
Код
else if (strcmp(cmd, "/admins", true) == 0)
     {
          if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2)
          {
            SendClientMessage(playerid, COLOR_YELLOW, "Àäìèíû Online:");
              for(new i = 0; i < MAX_PLAYERS; i++)
           {
                 if(IsPlayerConnected(i))
               {
                   if(PlayerInfo [i][pAdmin]>= 1)
                     {
                        new drank[20];
                    if(PlayerInfo [i][pAdmin]== 1) { drank = "1"; }
                    else if(PlayerInfo [i][pAdmin]== 2) { drank = "2"; }
                    else if(PlayerInfo [i][pAdmin]== 3) { drank = "3"; }
                    else if(PlayerInfo [i][pAdmin]== 4) { drank = "4"; }
                    else if(PlayerInfo [i][pAdmin]== 5) { drank = "5"; }
                    else if(PlayerInfo [i][pAdmin]== 6) { drank = "6"; }
                    else if(PlayerInfo [i][pAdmin]== 7) { drank = "7"; }
                    else if(PlayerInfo [i][pAdmin]== 8) { drank = "8"; }
                  new arank[64];
                 if(PlayerInfo [playerid][pAdmin]== 1) { arank = "Õåëïåð"; }
                 else if(PlayerInfo [playerid][pAdmin]== 2) { arank = "Ìëàäøèé Àäìèí"; }
                 else if(PlayerInfo [playerid][pAdmin]== 3) { arank = "Àäìèíèñòðàòîð"; }
                 else if(PlayerInfo [playerid][pAdmin]== 4) { arank = "Ñòàðøèé Àäìèí"; }
                 else if(PlayerInfo [playerid][pAdmin]== 5) { arank = "Ïîìîùíèê Ðóêîâîäèòåëÿ"; }
                 else if(PlayerInfo [playerid][pAdmin]== 6) { arank = "Ðóêîâîäèòåëü"; }
                 else if(PlayerInfo [playerid][pAdmin]== 7) { arank = "Ñìîòðÿùèé"; }
                 else if(PlayerInfo [playerid][pAdmin]== 8) { arank = "Ñêðèïòåð"; }
                 else { arank = "<ADM-CHAT>"; }

                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, 256, "%s | %s | ID:%d | lvl %s" arank,sendername,i,drank);
                    SendClientMessage(playerid, COLOR_WHITE, string);
                  }
               }
            }
        }
        return 1;
     }

когда заменяю playerid на targetid выдает error 17

Автор - Mr_Nigger
Дата добавления - 04.05.2014 в 23:24:54
КРОТДата: Понедельник, 05.05.2014, 00:31:09 | Сообщение # 1018

Группа: Скриптер
Сообщений: 151
Mr_Nigger, символа значит такого нету. а кмд:
Код
if (strcmp(cmd, "/admins", true) == 0)
       {
           if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2)
           {
               new admmsg[1024];
               new namelvl[32];
               for(new i=1; i<MAX_PLAYERS; i++)
               {
                   if(!IsPlayerConnected(i)) continue;
                   if(!IsPlayerNPC(i)) continue;
                   if(!PlayerInfo[i][pAdmin]) continue;
                   new lvl = PlayerInfo[i][pAdmin];
                   namelvl = "Имя уровня";
                   switch(lvl)
                   {
                       case 1: namelvl = "Õåëïåð";
                       case 2: namelvl = "Ìëàäøèé Àäìèí";
                       case 3: namelvl = "Àäìèíèñòðàòîð";
                       case 4: namelvl = "Ñòàðøèé Àäìèí";
                       case 5: namelvl = "Ïîìîùíèê Ðóêîâîäèòåëÿ";
                       case 6: namelvl = "Ðóêîâîäèòåëü";
                       case 7: namelvl = "Ñìîòðÿùèé";
                       case 8: namelvl = "Ñêðèïòåð";
                   }
                   GetPlayerName(playerid, sendername, sizeof(sendername));
                   format(admmsg,sizeof(admmsg),"%s\n%s(lvl: %i) %s(ID: %i)",admmsg,namelvl,lvl,sendername,i);
               }
               ShowPlayerDialog(playerid,1111,DIALOG_STYLE_MSGBOX,"Администраторы в сети:",admmsg,"Закрыть");
           }
           return 1;
       }
Куда проще и не без лишнего т.к. у тебя есть места где дублируются значения. "непонятно как" написанные названия уровней это я твоё скопировал что бы не мучатся
Главное проверь что бы у тебя не было диалога с IDом "1111" если есть, то в /admins замени ID диалога на любой свободный
---------------------------
Если надо именно в чат что бы писало, скажи переделаю под чат. ибо хз где твоя кмд используется и поэтому подставил диалог, т.к. он игрокам половчее))


Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего
Аминь


Сообщение отредактировал КРОТ - Понедельник, 05.05.2014, 00:35:01
 
СообщениеMr_Nigger, символа значит такого нету. а кмд:
Код
if (strcmp(cmd, "/admins", true) == 0)
       {
           if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2)
           {
               new admmsg[1024];
               new namelvl[32];
               for(new i=1; i<MAX_PLAYERS; i++)
               {
                   if(!IsPlayerConnected(i)) continue;
                   if(!IsPlayerNPC(i)) continue;
                   if(!PlayerInfo[i][pAdmin]) continue;
                   new lvl = PlayerInfo[i][pAdmin];
                   namelvl = "Имя уровня";
                   switch(lvl)
                   {
                       case 1: namelvl = "Õåëïåð";
                       case 2: namelvl = "Ìëàäøèé Àäìèí";
                       case 3: namelvl = "Àäìèíèñòðàòîð";
                       case 4: namelvl = "Ñòàðøèé Àäìèí";
                       case 5: namelvl = "Ïîìîùíèê Ðóêîâîäèòåëÿ";
                       case 6: namelvl = "Ðóêîâîäèòåëü";
                       case 7: namelvl = "Ñìîòðÿùèé";
                       case 8: namelvl = "Ñêðèïòåð";
                   }
                   GetPlayerName(playerid, sendername, sizeof(sendername));
                   format(admmsg,sizeof(admmsg),"%s\n%s(lvl: %i) %s(ID: %i)",admmsg,namelvl,lvl,sendername,i);
               }
               ShowPlayerDialog(playerid,1111,DIALOG_STYLE_MSGBOX,"Администраторы в сети:",admmsg,"Закрыть");
           }
           return 1;
       }
Куда проще и не без лишнего т.к. у тебя есть места где дублируются значения. "непонятно как" написанные названия уровней это я твоё скопировал что бы не мучатся
Главное проверь что бы у тебя не было диалога с IDом "1111" если есть, то в /admins замени ID диалога на любой свободный
---------------------------
Если надо именно в чат что бы писало, скажи переделаю под чат. ибо хз где твоя кмд используется и поэтому подставил диалог, т.к. он игрокам половчее))

Автор - КРОТ
Дата добавления - 05.05.2014 в 00:31:09
Mr_NiggerДата: Понедельник, 05.05.2014, 16:54:40 | Сообщение # 1019

Группа: Пользователи
Сообщений: 101
КРОТ,сделай командой если не сложно)

Добавлено (05.05.2014, 16:54:40)
---------------------------------------------
КРОТ,и ещё почему у меня когда прописан 1 лвл при старте у меня ничего не дает что я поставил при старте,а когда выше 1 то все работает?

 
СообщениеКРОТ,сделай командой если не сложно)

Добавлено (05.05.2014, 16:54:40)
---------------------------------------------
КРОТ,и ещё почему у меня когда прописан 1 лвл при старте у меня ничего не дает что я поставил при старте,а когда выше 1 то все работает?


Автор - Mr_Nigger
Дата добавления - 05.05.2014 в 16:54:40
КРОТДата: Понедельник, 05.05.2014, 22:19:03 | Сообщение # 1020

Группа: Скриптер
Сообщений: 151
Mr_Nigger, командой это ты имеешь ввиду что бы в чат писало?

как вариант неправильная проверка стоит, скинь все строки связанные с этим. гляну, ток отдели чтоб не запутаться

Добавлено (05.05.2014, 22:19:03)
---------------------------------------------

Код
if (strcmp(cmd, "/admins", true) == 0)
        {
            if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2)
            {
                new admmsg[1024];
                new namelvl[32];
                for(new i=1; i<MAX_PLAYERS; i++)
                {
                    if(!IsPlayerConnected(i)) continue;
                    if(!IsPlayerNPC(i)) continue;
                    if(!PlayerInfo[i][pAdmin]) continue;
                    new lvl = PlayerInfo[i][pAdmin];
                    namelvl = "Имя уровня";
                    switch(lvl)
                    {
                        case 1: namelvl = "Õåëïåð";
                        case 2: namelvl = "Ìëàäøèé Àäìèí";
                        case 3: namelvl = "Àäìèíèñòðàòîð";
                        case 4: namelvl = "Ñòàðøèé Àäìèí";
                        case 5: namelvl = "Ïîìîùíèê Ðóêîâîäèòåëÿ";
                        case 6: namelvl = "Ðóêîâîäèòåëü";
                        case 7: namelvl = "Ñìîòðÿùèé";
                        case 8: namelvl = "Ñêðèïòåð";
                    }
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(admmsg,sizeof(admmsg),"%s(lvl: %i) %s(ID: %i)",namelvl,lvl,sendername,i);
                    SendClientMessage(playerid,COLOR_WHITE,admmsg);
                }
            }
            return 1;
        }
Команда в чат


Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего
Аминь
 
СообщениеMr_Nigger, командой это ты имеешь ввиду что бы в чат писало?

как вариант неправильная проверка стоит, скинь все строки связанные с этим. гляну, ток отдели чтоб не запутаться

Добавлено (05.05.2014, 22:19:03)
---------------------------------------------

Код
if (strcmp(cmd, "/admins", true) == 0)
        {
            if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2)
            {
                new admmsg[1024];
                new namelvl[32];
                for(new i=1; i<MAX_PLAYERS; i++)
                {
                    if(!IsPlayerConnected(i)) continue;
                    if(!IsPlayerNPC(i)) continue;
                    if(!PlayerInfo[i][pAdmin]) continue;
                    new lvl = PlayerInfo[i][pAdmin];
                    namelvl = "Имя уровня";
                    switch(lvl)
                    {
                        case 1: namelvl = "Õåëïåð";
                        case 2: namelvl = "Ìëàäøèé Àäìèí";
                        case 3: namelvl = "Àäìèíèñòðàòîð";
                        case 4: namelvl = "Ñòàðøèé Àäìèí";
                        case 5: namelvl = "Ïîìîùíèê Ðóêîâîäèòåëÿ";
                        case 6: namelvl = "Ðóêîâîäèòåëü";
                        case 7: namelvl = "Ñìîòðÿùèé";
                        case 8: namelvl = "Ñêðèïòåð";
                    }
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(admmsg,sizeof(admmsg),"%s(lvl: %i) %s(ID: %i)",namelvl,lvl,sendername,i);
                    SendClientMessage(playerid,COLOR_WHITE,admmsg);
                }
            }
            return 1;
        }
Команда в чат

Автор - КРОТ
Дата добавления - 05.05.2014 в 22:19:03
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
06:36:42
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2025

vkontakte :samp-pawno.ru: