08:08
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Модератор форума: AXE, Weddew  
Вопросы и ответы по GTA SAMP [от 19.03.2013]
WeddewДата: Вторник, 19.03.2013, 15:11 | Сообщение # 1
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
В этой теме вы сможете получить ответы, на многие ваши вопросы по PAWN.


Новичкам:


  • Внятно объясняйте Вашу проблему, если Вы получили ошибку, обязательно выкладывайте строки, на которые "ругается" компилятор.
  • Задавайте вопросы исключительно по коду, а не по системам, которые имеются у Вас в моде.
  • Помощь идет только по желанию пользователя, если человек помог Вам только частично, не нужно начинать поливать его грязью.
  • Возможно тип Вашей проблемы уже обсуждался на форуме, воспользуйтесь поиском.
  • В этой теме пользователи лишь оказывают помощь в написании кода, а не пишут его за Вас.
  • Если Вы хотите отблагодарить пользователя, жмите на кнопку . (Только для продвинутых, и выше)
  • Если Вы уже задавали вопрос и не получили на него ответа, то лучше написать в ЛС одному из участников группы , чем засорять тему.
  • Если Вы сами решили свою проблему, то напишите, как Вы ее решили.
  • Если Вас просят выложить код функций, то используйте для этого сервис pastebin.com


Скриптерам:

  • Не оскорблять новичков.
  • Не засорять тему сообщениями, подобные этому: "Закрой PAWNO и иди делай уроки".
  • Не посылать в поиск. Пользователь итак уже пришёл сюда из поиска. Если решение проблемы уже было опубликовано, то указать в какой теме
  • Как можно понятней объяснять решение той, или иной проблемы, по возможности приводить примеры.



Инструкции:

  • [cut noguest=Краткая инструкция для вшивания FS в мод]
    1) Все из callback OnFilterScriptInit вставляем в конец callback OnGameModeInit перед словом return.
    2) Все из callback OnFilterScriptExit вставляем в конец callback OnGameModeExit перед словом return.
    3) Все объявления переменных (new ...) и констант (const ...; #define ... ...) в начало мода.
    4) Все прототипы (forward ...(...) ) ко всем прототипам.
    5) Все описания нестандартных функций (public ...(...); stock ...(...); ...(...){...} ), которых нет в моде, вставляем в конец мода.

    P.S. Данный мануал не гарантирует, что после копирования все будет работать, так как еще потребуется подгонять одни системы под другие.
    P.P.S Если в одном из callback`ов Вы не обнаружили кода, то переходите к следующему пункту инструкции.
    [/cut]
  • [cut noguest=Защита от ботов]
    В OnPlayerConnect
    [pwn]if(GetPlayersSameIp(playerid) > 3) Kick(playerid);[/pwn]
    В конец мода
    [pwn]stock GetPlayersSameIp(playerid)
    {//by Weddew
    //Возвращает количество подключенных игроков с таким же IP как у playerid
    new count = 0, p_ip[16], i_ip[16];
    GetPlayerIp(playerid, p_ip, sizeof(p_ip));
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPlayerIp(playerid, i_ip, sizeof(i_ip));
    if(i != playerid)
    {
    if(!strcmp(p_ip, i_ip, false)) count++;
    }
    }
    return count;
    }[/pwn]
    [/cut]
  • [cut noguest=Проверка на Role Play ник]
    В конец мода:
    [pwn]
    stock IsARPNickname(playerid)
    {
    //by Weddew
    new p_n[MAX_PLAYER_NAME], dcount = 0;
    GetPlayerName(playerid, p_n, sizeof(p_n))
    for(i = 0; i < strlen(p_n); i++)
    {
    if(p_n[i] == '_') dcount++;
    }
    if(dcount != 1 || p_n[0] == '_' || p_n[strlen(p_n)-1] == '_') return false;
    return true;
    }[/pwn]

    В OnPlayerConnect

    [pwn]
    if(!IsARPNickname(playerid)) Kick(playerid);[/pwn]

    P.S.:
    Не пропустит: _Nick_Name_, _Nick_Name, NickName_
    Пропустит: Nick_Name, NICK_NAME, NiCk_name, nick_name[/cut]




www.weddew-shop.ru


Сообщение отредактировал Weddew - Среда, 23.10.2013, 21:45
MerbulДата: Пятница, 21.06.2013, 16:54 | Сообщение # 1051
Новенький
Группа: Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Цитата
Saibot

Спасибо помог... А как AFK сделать?

SaibotДата: Пятница, 21.06.2013, 19:09 | Сообщение # 1052
Освоившийся
Группа: Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
Цитата (Merbul)
А как AFK сделать?

Вот [FS]

[FS] AFK

MerbulДата: Пятница, 21.06.2013, 20:45 | Сообщение # 1053
Новенький
Группа: Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Вот этот цвет ганг зоны не могу сделать... Все изменял ганг зоны в .ini файле в самом моде все также... Даже этоу зону нельзя каптить Как это исправить?
http://image.kz/vf811fe80e2ac84233d79d5f1e28accc7

mecheniy286Дата: Пятница, 21.06.2013, 22:03 | Сообщение # 1054
Новенький
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Замечания: 20%
Статус:
Код

*/   new statline1[550];
   new statline2[600];
   new statline3[300];
   new statline4[300]
   new statline5[300]
   new statline6[400];
   new statfull[2530];
   new stattitle[64];
   format(stattitle,sizeof(stattitle),"{9EC73D}Ñòàòèñòèêà èãðîêà: {EEEEFF}%s",name);
   format(statline1,sizeof(statline1),"Óðîâåíü: %d  \nÏîë: %s  \nÄåíüãè: $%d  \n áàíêå: $%d  \nÍîìåð Òåëåôîíà: %d \nÏðåìèóì àêêàóíò: %s \nÏèâî ñ ñîáîé: %d \n×èïñû ñ ñîáîé: %d",level,atext,cash,account,pnumber,drank,PlayerInfo[playerid][pPivo],PlayerInfo[playerid][pChips]);
   format(statline2,sizeof(statline2),"×àñîâ â èãðå: %d \nÑàìàÿ áîëüøàÿ ðûáà: %d  \nÐàáîòà: %s  \nÐåñïåêòû: %d/%d  \nÍàðêîòèêè: %d \nÌàòåðèàëû: %d \nÊîìàíäà: %s \nÎðãàíèçàöèÿ: %s  \nÐàíã: %s", ptime,bigfish,jtext,exp,expamount,drugs,mats,ttext,ftext,rtext);
   format(statline3,sizeof(statline3),"Òðàíñïîðò ¹1:[%s] \nÖåíà:[%d] \nÖâåò1:[%d] \nÖâåò2:[%d] \nÑòàòóñ çàìêà:[%d]", CarInfo[carkey][cDescription], CarInfo[carkey][cValue], CarInfo[carkey][cColorOne], CarInfo[carkey][cColorTwo], CarInfo[carkey][cLock]);
   format(statline4,sizeof(statline4),"Òðàíñïîðò ¹2:[%s] \nÖåíà:[%d] \nÖâåò1:[%d] \nÖâåò2:[%d] \nÑòàòóñ çàìêà:[%d]", CarInfo[carkey2][cDescription], CarInfo[carkey2][cValue], CarInfo[carkey2][cColorOne], CarInfo[carkey2][cColorTwo], CarInfo[carkey2][cLock]);
   format(statline5,sizeof(statline5),"Òðàíñïîðò ¹3:[%s] \nÖåíà:[%d] \nÖâåò1:[%d] \nÖâåò2:[%d] \nÑòàòóñ çàìêà:[%d]", CarInfo[carkey3][cDescription], CarInfo[carkey3][cValue], CarInfo[carkey3][cColorOne], CarInfo[carkey3][cColorTwo], CarInfo[carkey3][cLock]);
   format(statline6,sizeof(statline6),"(( Äîì [%d] \nÁèçíåñ [%d] \nÀâòî1 [%d] \nÀâòî2 [%d] \nÀâòî3 [%d] \nÀðåíäà [%d] \nÈíò:[%d] \nÂèðò.ìèð:[%d] \nnëîêàë[%d] ))", housekey,bizkey,carkey,carkey2,carkey3,HireCar[targetid],intir,virworld,local);
   format(statfull,sizeof(statfull),"%s\n%s\n%s\n%s\n%s\n%s", statline1, statline2, statline3, statline4, statline5, statline6);
   ShowPlayerDialog(playerid,10014,DIALOG_STYLE_MSGBOX,stattitle,statfull,"ÎÊ","");

Пишет Unknown Command при вводе /stats

Fen1ksДата: Пятница, 21.06.2013, 23:13 | Сообщение # 1055
Новенький
Группа: Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Вот решил сделать защиту от FakeKill на основе защиты от спама которую мне написали)
[pwn]public OnPlayerDeath(playerid, killerid, reason)
{
if(!GetPVarInt(playerid, "AntiFakeKill"))
{
SetPVarInt(playerid, "AntiFakeKill", 1);
SetTimerEx("AntiFakeKill", 2000, 0, "d", playerid);
}
else
{
new af_warn = GetPVarInt(playerid, "AntiFakeKillWard");
af_warn++;
if(af_warn > 4)
format(string, sizeof(string), "Игрок %s был кикнут системой (FakeKill). ", PlayerName(playerid));
Kick(playerid);
SetPVarInt(playerid, "AntiFloodWard", af_warn);
}
return true;
}

forward AntiFakeKill(playerid);
public AntiFakeKill(playerid)
{
if(GetPVarInt(playerid, "AntiFakeKill")) SetPVarInt(playerid, "AntiFakeKill", 0);
return true;
}[/pwn]
Остался вопрос полная бредятина или будет работать?
По идее если игрок умирает 4 раза за 2 секунды его кикнет

Добавлено (21.06.2013, 23:13)
---------------------------------------------
Решил сделать вот так:
[pwn]public OnPlayerDeath(playerid, killerid, reason)
{
new string[128];
Scores[killerid]++;
if(Logged[playerid] == 0) Kick(playerid);
if(!GetPVarInt(playerid, "AntiFakeKill"))
{
SetPVarInt(playerid, "AntiFakeKill", 1);
SetTimerEx("AntiFakeKill", 1000, 0, "d", playerid);
}
else
{
new af_warn = GetPVarInt(playerid, "AntiFakeKillWard");
af_warn++;
if(af_warn > 4)
format(string, sizeof(string), "Игрок %s был кикнут системой (FakeKill). ", PlayerName(playerid));
BanEx(playerid, "AntiDoS: FakeKill");
SetPVarInt(playerid, "AntiFloodWard", af_warn);
}
return true;
}

forward AntiFakeKill(playerid);
public AntiFakeKill(playerid)
{
if(GetPVarInt(playerid, "AntiFakeKill")) SetPVarInt(playerid, "AntiFakeKill", 0);
return true;
}[/pwn]
То-есть если игрок убивает 4 человек за 1 секунду его банит.
Работоспособно?

DemonoloGДата: Пятница, 21.06.2013, 23:44 | Сообщение # 1056
Постоялец
Группа: Продвинутые
Сообщений: 314
Награды: 2
Репутация: 178
Замечания: 0%
Статус:
Fen1ks,
Цитата
решил сделать защиту от FakeKill на основе защиты от спама

Меня смущает эта фраза...

Fen1ksДата: Пятница, 21.06.2013, 23:50 | Сообщение # 1057
Новенький
Группа: Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Цитата
Меня смущает эта фраза...

я о том же так то :D

DemonoloGДата: Суббота, 22.06.2013, 00:37 | Сообщение # 1058
Постоялец
Группа: Продвинутые
Сообщений: 314
Награды: 2
Репутация: 178
Замечания: 0%
Статус:
Fen1ks, я не очень хороший скриптер (точнее даже никакой :D ), но скажу: там больше 4, т.е. банить будет при 5, 6 и т.д. :D
GeryyДата: Суббота, 22.06.2013, 01:00 | Сообщение # 1059
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (Fen1ks)
То-есть если игрок убивает 4 человек за 1 секунду его банит.

Насколько я помню FakeKill - когда игрок сам себя убивает, но при этом смерть ему не защитывается. Позже в читах появилась функция назначить убийцу, тем самым можно было сделать подставу.

А если он будет использовать фейк-килл не за 1 сек. а через 3,4,5,6?



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.

Сообщение отредактировал Geryy - Суббота, 22.06.2013, 01:26
Fen1ksДата: Суббота, 22.06.2013, 17:50 | Сообщение # 1060
Новенький
Группа: Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
кароче защитка Г :D

Добавлено (22.06.2013, 17:49)
---------------------------------------------
у меня другая проблема например игрок крашнул серв, защита флуд в чат о том что он кикнут, как предотвратить этот дурной флуд?
Код:
[pwn]new client[ 128 ];
public OnVehicleMod(playerid, vehicleid, componentid) {
new vehicleide = GetVehicleModel(vehicleid);
new modok = islegalcarmod(vehicleide, componentid);
if (!modok) {
new name1[ 12 ]
;
GetPlayerName(playerid, name1, sizeof(name1));
format(client, sizeof(client), "Сервер: %s[%d]: использовал Crasher и был кикнут", name1, playerid);
printf(client);
Kick(playerid);
}

return 1;
}[/pwn]

Добавлено (22.06.2013, 17:50)
---------------------------------------------
защита флудит*

DesertДата: Воскресенье, 23.06.2013, 00:30 | Сообщение # 1061
Местный
Группа: I'm V.I.P.
Сообщений: 669
Награды: 57
Город: Москва
Репутация: 1082
Замечания: 0%
Статус:
Fen1ks,
PVar умеешь использовать?

Fen1ksДата: Воскресенье, 23.06.2013, 09:12 | Сообщение # 1062
Новенький
Группа: Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Цитата
PVar умеешь использовать?

В том то и дело что нет) :D

sehrgetДата: Воскресенье, 23.06.2013, 16:12 | Сообщение # 1063
Постоялец
Группа: Продвинутые
Сообщений: 393
Награды: 2
Город: Украина\Черкассы
Замечания: 40%
Статус:
[pwn]new plrIP[16];
GetPlayerIp(playerid, plrIP, sizeof(plrIP));
dini_IntSet(string, "Last IP", plrIP);[/pwn]
Код
error 035: argument type mismatch (argument 3)

Какого?

GeryyДата: Понедельник, 24.06.2013, 02:16 | Сообщение # 1064
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (sehrget)
Какого?

plrIP - строка, и ты пытаешься сохранять строку через dini_IntSet (как целое число).
Надо через dini_Set(string, "Last IP", plrIP);



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
forst5Дата: Понедельник, 24.06.2013, 07:46 | Сообщение # 1065
Новенький
Группа: Пользователи
Сообщений: 48
Награды: 0
Город: NSK
Репутация: -10
Замечания: 0%
Статус:
Вот делаю ферму, комбайн работает хорошо, а тачка для сбора нет. Сажусь в неё она просто как фракционная. А нужно чтобы когда садишься появлялась красная фигня как на самп-рп. не подскажите?

Код
        if(newcar == FarmCar)
         {
             if(PlayerInfo[playerid][pFermajob] == 3 || PlayerInfo[playerid][pFerma] != 255 || PlayerInfo[playerid][pFermajob] == 2)
             {
                 if(FarmWorks[playerid] == 1)
                 {
                     for(new f = 0; f < sizeof(FarmInfo); f++)
                     {
                         new carid = GetPlayerVehicleID(playerid);
                         if((!(FarmInfo[f][fInCar] >= 1000)) && WithPickup[carid] == 1)
                         {
                             SendClientMessage(playerid, COLOR_GREY, "Ãðóçîâèê åù¸ íå çàïîëíåí");
                             RemovePlayerFromVehicleAc(playerid);
                             return true;
                         }
                         else if(FarmInfo[f][fInCar] >= 1000)
                         {
                             Delete3DTextLabel(JobText2);
                             DestroyPickup(collection);
                             WithPickup[carid] = 0;
                             SendClientMessage(playerid, COLOR_WHITE, "Ãðóçîâèê ïîëîí ðàçãðóçèòå íà ñêëàä!");
                             format(string, sizeof(string), " ãðóçîâèêå %d / 1000 ç¸ðåí", FarmInfo[f][fInCar]);
                             SendClientMessage(playerid, COLOR_GREEN, string);
                             RemovePlayerAttachedObject(playerid, 3);
                             if(FarmInfo[f][fInCar] > 1000) FarmInfo[f][fInCar] = 1000;
                             DisablePlayerCheckpoint(playerid);
                             return true;
                         }
                         else
                         {
                             if(FarmInfo[f][fSownSeeds] <= 0) return SendClientMessage(playerid, COLOR_WHITE, "Íà ïîëå íåò óðîæàÿ!");
                             new rand;
                             rand = random(sizeof(Venue));
                             WithPickup[carid] = 0;
                             SetPlayerCheckpoint(playerid, Venue[rand][0], Venue[rand][1], Venue[rand][2], 5.0);
                             CollectionStarted[playerid] = 1;
                             format(string, sizeof(string), " ãðóçîâèêå %d / 1000 ç¸ðåí",FarmInfo[f][fInCar]);
                             SendClientMessage(playerid, COLOR_GREEN, string);
                             return true;
                         }
                     }
                 }
                 else
                 {
                     SendClientMessage(playerid, COLOR_GREY, "Âû íå ôåðìåð");
                     RemovePlayerFromVehicleAc(playerid);
                     return true;
                 }
             }
                 else
             {
                 SendClientMessage(playerid, COLOR_GREY, "Âû íå ôåðìåð");
                 RemovePlayerFromVehicleAc(playerid);
                 return true;
             }
         }
   if(newcar == FarmCar)
   {
    if(PlayerInfo[playerid][pFermajob] == 3 || PlayerInfo[playerid][pFerma] != 255 || PlayerInfo[playerid][pFermajob] == 2)
    {
     if(FarmWorks[playerid] == 1)
     {
               for(new f = 0; f < sizeof(FarmInfo); f++)
               {
                      if((!(FarmInfo[f][fInCar] >= 1000)) && WithPickup[newcar] == 1)
                      {
                          SendClientMessage(playerid, COLOR_GREY, "Ãðóçîâèê åù¸ íå çàïîëíåí!");
                          RemovePlayerFromVehicle(playerid);
                          SendClientMessageToAll(COLOR_GREY, "Ðàáîòàåò 2");
                          return true;
                      }
                      else if(FarmInfo[f][fInCar] >= 1000)
                      {
                          Delete3DTextLabel(JobText2);
                          DestroyPickup(collection);
                          WithPickup[newcar] = 0;
                          SendClientMessage(playerid, COLOR_WHITE,"Ãðóçîâèê ïîëîí ðàçãðóçèòå íà ñêëàä!");
                          format(string, sizeof(string), " ãðóçîâèêå %d / 1000 ç¸ðåí", FarmInfo[f][fInCar]);
                          SendClientMessage(playerid, COLOR_GREEN, string);
                          RemovePlayerAttachedObject(playerid, 3);
                          if(FarmInfo[f][fInCar] > 1000) FarmInfo[f][fInCar] = 1000;
                          DisablePlayerCheckpoint(playerid);
                          SendClientMessageToAll(COLOR_GREY, "Ðàáîòàåò 3");
                          return true;
                      }
                      else
                      {
                          if(FarmInfo[f][fSownSeeds] <= 0) return SendClientMessage(playerid, COLOR_GREY, "Íà ïîëå íåò óðîæàÿ!");
                          new rand = random(4);
                          WithPickup[newcar] = 0;
                          SetPlayerCheckpoint(playerid, Venue[rand][0], Venue[rand][1], Venue[rand][2], 5);
                          CollectionStarted[playerid] = 1;
                          format(string, sizeof(string), " ãðóçîâèêå %d / 1000 ç¸ðåí", FarmInfo[f][fInCar]);
                          SendClientMessage(playerid, COLOR_GREEN, string);
                          SendClientMessageToAll(COLOR_GREY, "Ðàáîòàåò 4");
                          return true;
                      }
      }
                 }
                 else
                 {
                     SendClientMessage(playerid, COLOR_GREY, "Âû íå ôåðìåð");
                     RemovePlayerFromVehicle(playerid);
                     return true;
                 }
             }
             else
             {
                 SendClientMessage(playerid, COLOR_GREY, "Âû íå ôåðìåð");
                 RemovePlayerFromVehicle(playerid);
                 return true;
             }
         }

Поиск:





 


 


 
Хостинг от uCoz samp.at.ua