Форум

Страница 1 из 11
Модератор форума: dr40 
Форум | www.SAMP-TEAM.com » Wiki SA-MP » Вопросы по скриптингу » Помогите с добавлением в сетстат
Помогите с добавлением в сетстат
Хотел бы добавить команду /setskill в сетстат,но хотел бы чтобы было как в команде допустим /setstat id №в сетстате №оружки и кол-во скилла(/setstat 0 36 31 1000 допустим),можно так сделать?

Вот сетскилл
Код
if(strcmp(cmd, "/setskill", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Ïîäñêàçêà: /setskill [playerid/PartOfName] [statcode] [amount]");
SendClientMessage(playerid, COLOR_GRAD4, "|1 pSDPistol |2 pDesert |3 pSmg |4 pAk |5 pM4 |6 pShot");
return 1;
}
giveplayerid = strval(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Ïîäñêàçêà: /setskill [playerid/PartOfName] [statcode] [amount]");
SendClientMessage(playerid, COLOR_GRAD4, "|1 pSDPistol |2 pDesert |3 pSmg |4 pAk |5 pM4 |6 pShot");
return 1;
}
new stat;
stat = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Ïîäñêàçêà: /setskill [playerid/PartOfName] [statcode] [amount]");
SendClientMessage(playerid, COLOR_GRAD4, "|1 pSDPistol |2 pDesert |3 pSmg |4 pAk |5 pM4 |6 pShot");
return 1;
}
new amount;
amount = strval(tmp);
if (PlayerInfo[playerid][pAdmin] >= 6)
{
switch (stat)
{
case 1:
{
PlayerInfo[giveplayerid][pSDPistol] = amount;
format(string, sizeof(string), " Ñêèëë îðóæèÿ SDPistol ó íåãî òåïåðü ðàâåí %d.", amount);
}
case 2:
{
PlayerInfo[giveplayerid][pDesertEagle] = amount;
format(string, sizeof(string), " Ñêèëë îðóæèÿ Desert Eagle ó íåãî òåïåðü ðàâåí %d.", amount);
}
case 3:
{
PlayerInfo[giveplayerid][pMP5] = amount;
format(string, sizeof(string), " Ñêèëë îðóæèÿ SMG ó íåãî òåïåðü ðàâåí %d.", amount);
}
case 4:
{
PlayerInfo[giveplayerid][pAK47] = amount;
format(string, sizeof(string), " Ñêèëë îðóæèÿ AK-47 ó íåãî òåïåðü ðàâåí %d.", amount);
}
case 5:
{
PlayerInfo[giveplayerid][pM4] = amount;
format(string, sizeof(string), " Ñêèëë îðóæèÿ M-4 ó íåãî òåïåðü ðàâåí %d.", amount);
}
case 6:
{
PlayerInfo[giveplayerid][pShotGun] = amount;
format(string, sizeof(string), " Ñêèëë îðóæèÿ ShotGun ó íåãî òåïåðü ðàâåí %d.", amount);
}
default:
{
format(string, sizeof(string), " Íåèçâåñòíîå çíà÷åíèå!", amount);
}

}
SendClientMessage(playerid, COLOR_GRAD1, string);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Ó âàñ íåò ïðàâ íà èñïîëüçîâàíèå ýòîé êîìàíäû!");
}
}
}
}
return 1;
}

извиняюсь за текст в команде
01.02.2015 в 17:01
Лучше оставь отдельной командой.
02.02.2015 в 02:31
Или так попробуй
Код
case 36:
         {
         tmp = strtok(cmdtext, idx);
         if(!strlen(tmp))
         {
         SendClientMessage(playerid, COLOR_GRAD1, "Iianeacea: /setskill [playerid/PartOfName] [statcode] [amount]");
         SendClientMessage(playerid, COLOR_GRAD4, "|1 pSDPistol |2 pDesert |3 pSmg |4 pAk |5 pM4 |6 pShot");
         return 1;
         }
         new stats;
         stats = strval(tmp);
         if (PlayerInfo[playerid][pAdmin] >= 6)
         {
          switch (stats)
          {
           case 1:
           {
           PlayerInfo[giveplayerid][pSDPistol] = amount;
           format(string, sizeof(string), " Neeee i?o?ey SDPistol o iaai oaia?u ?aaai %d.", amount);
           }
           case 2:
           {
           PlayerInfo[giveplayerid][pDesertEagle] = amount;
           format(string, sizeof(string), " Neeee i?o?ey Desert Eagle o iaai oaia?u ?aaai %d.", amount);
           }
           case 3:
           {
           PlayerInfo[giveplayerid][pMP5] = amount;
           format(string, sizeof(string), " Neeee i?o?ey SMG o iaai oaia?u ?aaai %d.", amount);
           }
           case 4:
           {
           PlayerInfo[giveplayerid][pAK47] = amount;
           format(string, sizeof(string), " Neeee i?o?ey AK-47 o iaai oaia?u ?aaai %d.", amount);
           }
           case 5:
           {
           PlayerInfo[giveplayerid][pM4] = amount;
           format(string, sizeof(string), " Neeee i?o?ey M-4 o iaai oaia?u ?aaai %d.", amount);
           }
           case 6:
           {
           PlayerInfo[giveplayerid][pShotGun] = amount;
           format(string, sizeof(string), " Neeee i?o?ey ShotGun o iaai oaia?u ?aaai %d.", amount);
           }
           default:
           {
           format(string, sizeof(string), " Iaecaanoiia cia?aiea!", amount);
           }
          }
          SendClientMessage(playerid, COLOR_GRAD1, string);
          }
          else
          {
          SendClientMessage(playerid, COLOR_GRAD1, " O aan iao i?aa ia eniieuciaaiea yoie eiiaiau!");
          }
        }
02.02.2015 в 02:38
Мне пишет на серве,неизвестное значение
Когда пишу допустим /setstat 0 36 1(любое вообще число)
Пишет:
SendClientMessage(playerid, COLOR_GRAD1, "Подсказка: /setskill [playerid/PartOfName] [statcode] [amount]");
SendClientMessage(playerid, COLOR_GRAD4, "|1 pSDPistol |2 pDesert |3 pSmg |4 pAk |5 pM4 |6 pShot");

А когда продолжаю допустим:/setstat 0 36 5 100,пишет неизвестное значение

Может мой косяк,глянь вот все:
Код
case 36:
           {
           tmp = strtok(cmdtext, idx);
           if(!strlen(tmp))
           {
           SendClientMessage(playerid, COLOR_GRAD1, "Ïîäñêàçêà: /setskill [playerid/PartOfName] [statcode] [amount]");
           SendClientMessage(playerid, COLOR_GRAD4, "|1 pSDPistol |2 pDesert |3 pSmg |4 pAk |5 pM4 |6 pShot");
           return 1;
           }
           new stats;
           stats = strval(tmp);
           if (PlayerInfo[playerid][pAdmin] >= 6)
           {
            switch (stats)
            {
             case 1:
             {
             PlayerInfo[giveplayerid][pSDPistol] = amount;
             format(string, sizeof(string), " Ñêèëë îðóæèÿ SDPistol ó íåãî òåïåðü ðàâåí %d.", amount);
             }
             case 2:
             {
             PlayerInfo[giveplayerid][pDesertEagle] = amount;
             format(string, sizeof(string), " Ñêèëë îðóæèÿ Desert Eagle ó íåãî òåïåðü ðàâåí %d.", amount);
             }
             case 3:
             {
             PlayerInfo[giveplayerid][pMP5] = amount;
             format(string, sizeof(string), " Ñêèëë îðóæèÿ MP5 ó íåãî òåïåðü ðàâåí %d.", amount);
             }
             case 4:
             {
             PlayerInfo[giveplayerid][pAK47] = amount;
             format(string, sizeof(string), " Ñêèëë îðóæèÿ AK47 ó íåãî òåïåðü ðàâåí %d.", amount);
             }
             case 5:
             {
             PlayerInfo[giveplayerid][pM4] = amount;
             format(string, sizeof(string), " Ñêèëë îðóæèÿ M4A1 ó íåãî òåïåðü ðàâåí %d.", amount);
             }
             case 6:
             {
             PlayerInfo[giveplayerid][pShotGun] = amount;
             format(string, sizeof(string), " Ñêèëë îðóæèÿ ShotGun ó íåãî òåïåðü ðàâåí %d.", amount);
             }
             default:
             {
             //format(string, sizeof(string), " Íåèçâåñòíîå çíà÷åíèå!", amount);
             }
            }
            SendClientMessage(playerid, COLOR_GRAD1, string);
            }
            else
            {
            //SendClientMessage(playerid, COLOR_GRAD1, " Ó âàñ íåò ïðàâ íà èñïîëüçîâàíèå ýòîé êîìàíäû!");
            }
          }
          default:
{
format(string, sizeof(string), " Íåèçâåñòíîå çíà÷åíèå!", amount);
}

}
SendClientMessage(playerid, COLOR_GRAD1, string);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Ó âàñ íåò ïðàâ íà èñïîëüçîâàíèå ýòîé êîìàíäû!");
}
}
}
}
return 1;
}


Пришлось два раза вставить последние строки т.к. там скобок не хватало
05.02.2015 в 17:22
Оставь лучше командой. Либо тебе придется вводить так: /setstat 0 36 5 100 0. Напиши если нужно. Я попробую сделать
07.02.2015 в 00:46
ИДея с добавлением в сетстат глупая конечно,но мне все же нужно,если не трудно замути)
07.02.2015 в 11:43
Попробуй /setstat 0 36 5 100 0
Код
case 36:   
             {   
             tmp = strtok(cmdtext, idx);   
             if(!strlen(tmp))   
             {   
             SendClientMessage(playerid, COLOR_GRAD1, "Ïîäñêàçêà: /setskill [playerid/PartOfName] [statcode] [amount]");   
             SendClientMessage(playerid, COLOR_GRAD4, "|1 pSDPistol |2 pDesert |3 pSmg |4 pAk |5 pM4 |6 pShot");   
             return 1;   
             }   
             new stats;   
             stats = strval(tmp);   
new amounts;
       amounts = strval(tmp);
             if (PlayerInfo[playerid][pAdmin] >= 6)   
             {   
              switch (stats)   
              {   
               case 1:   
               {   
               PlayerInfo[giveplayerid][pSDPistol] = amounts;   
               format(string, sizeof(string), " Ñêèëë îðóæèÿ SDPistol ó íåãî òåïåðü ðàâåí %d.", amounts);   
               }   
               case 2:   
               {   
               PlayerInfo[giveplayerid][pDesertEagle] = amounts;   
               format(string, sizeof(string), " Ñêèëë îðóæèÿ Desert Eagle ó íåãî òåïåðü ðàâåí %d.", amounts);   
               }   
               case 3:   
               {   
               PlayerInfo[giveplayerid][pMP5] = amounts;   
               format(string, sizeof(string), " Ñêèëë îðóæèÿ MP5 ó íåãî òåïåðü ðàâåí %d.", amounts);   
               }   
               case 4:   
               {   
               PlayerInfo[giveplayerid][pAK47] = amount;   
               format(string, sizeof(string), " Ñêèëë îðóæèÿ AK47 ó íåãî òåïåðü ðàâåí %d.", amount);   
               }   
               case 5:   
               {   
               PlayerInfo[giveplayerid][pM4] = amounts;   
               format(string, sizeof(string), " Ñêèëë îðóæèÿ M4A1 ó íåãî òåïåðü ðàâåí %d.", amounts);   
               }   
               case 6:   
               {   
               PlayerInfo[giveplayerid][pShotGun] = amounts;   
               format(string, sizeof(string), " Ñêèëë îðóæèÿ ShotGun ó íåãî òåïåðü ðàâåí %d.", amounts);   
               }   
               default:   
               {   
               //format(string, sizeof(string), " Íåèçâåñòíîå çíà÷åíèå!", amounts);   
               }   
              }   
              SendClientMessage(playerid, COLOR_GRAD1, string);   
              }   
              else   
              {   
              //SendClientMessage(playerid, COLOR_GRAD1, " Ó âàñ íåò ïðàâ íà èñïîëüçîâàíèå ýòîé êîìàíäû!");   
              }   
            }   
            default:   
{   
format(string, sizeof(string), " Íåèçâåñòíîå çíà÷åíèå!", amount);   
}   

}   
SendClientMessage(playerid, COLOR_GRAD1, string);   
}   
else   
{   
SendClientMessage(playerid, COLOR_GRAD1, " Ó âàñ íåò ïðàâ íà èñïîëüçîâàíèå ýòîé êîìàíäû!");   
}   
}   
}   
}   
return 1;   
}
07.02.2015 в 23:12
Две пустые строчки отправляет,а скилл не прописывает
08.02.2015 в 00:39
Оставьте отдельной командой. Мороки меньше
09.02.2015 в 20:37
Можно попробовать вот так сделать.
В команду /setskill добавить вот эту строку SPD(playerid,666,DIALOG_STYLE_LIST, "Выдать скилы", "Dezrt Igl\nAK-47\nM4\nShoy Gun\nMP5", "Выдать", "Отмена");

Создать кейс 666,его конечно нужно будет увеличить для всех видов оружия,но я покажу для примера для одного оружия Dezer Igl

case 666:
{
if(response)
{
switch(listitem)
{
case 0: SPD(playerid, 333, DIALOG_STYLE_INPUT, "{00BFFF}•{FFFFFF}Скилы Dezert Igl{00BFFF}•", "Введите ID тогго, кому вы хотите выдать скилы", "Выдать", "Отмена");

И далее создадим уже кейс 333 уже для выдачи скилов.

case 333:
{
if(response) {
new string556[256]; new pname[MAX_PLAYER_NAME]; new idd = strval(inputtext); new lname[MAX_PLAYER_NAME];
if(idd != INVALID_PLAYER_ID) {} else { SCM(playerid, COLOR_GREY, "Игрок не найден"); }
if(PlayerInfo[idd][pCarLic] == 1) return SCM(playerid, COLOR_GREY, "У этого игрока скилы на 100%!");
GetPlayerName(idd, pname, sizeof(pname)); format(string556, sizeof(string556), "Вы выдали скилы %s[%d].",pname, idd); SCM(playerid, COLOR_LIGHTBLUE, string556); PlayerInfo[idd][pCarLic] = 1; GPN format(string556, sizeof(string556), "Администратор %s Выдал скилы %s[%d].",lname, pname, idd); SendRadioMessage(11,COLOR_LIGHTBLUE , string556); SCM(idd, COLOR_LIGHTBLUE, "Вам выдали скилы"); }
}

Я когда то по такому примеру,себе делал команду /setmaney
24.11.2015 в 15:09
Форум | www.SAMP-TEAM.com » Wiki SA-MP » Вопросы по скриптингу » Помогите с добавлением в сетстат
Страница 1 из 11
Поиск: