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

 



 
        
Зацените (13)
Max 24.02.2017 22:08
Подвиcание SA-MP (2)
Max 20.02.2017 21:57
MYSQL Донат (2)
JasonGordon 08.02.2017 10:39
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы 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
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
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 24 из 151«122223242526150151»
Модератор форума: AXE, Weddew 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Вопросы и ответы по GTA SAMP [от 19.03.2013]
WeddewДата: Вторник, 19.03.2013, 15:11 | Сообщение # 1
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 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
SPACE_MANДата: Суббота, 13.04.2013, 21:40 | Сообщение # 346
Новенький
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Как делать вот такие диалоговые окна[img]C:\Users\SPACEMAN\Documents\pic.png[/img]

Добавлено (13.04.2013, 21:38)
---------------------------------------------

Добавлено (13.04.2013, 21:39)
---------------------------------------------
Такие

Добавлено (13.04.2013, 21:40)
---------------------------------------------
хз как изо добавлять wall

Добавлено (13.04.2013, 21:40)
---------------------------------------------
http://dfiles.ru/files/7dho1dgxz


Смерть SPACE_MAN-у
GeryyДата: Воскресенье, 14.04.2013, 01:49 | Сообщение # 347
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
SPACE_MAN,
DIALOG_STYLE_LIST
http://wiki.sa-mp.com/wiki/ShowPlayerDialog_RU



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
[[[WampiR]]]Дата: Воскресенье, 14.04.2013, 08:43 | Сообщение # 348
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Подскажите. Вот на одном сервере такая система НонРП ников допустим если игрок 3 уровня випки то его не кикает а если без випки то его кикает за нонрп и там уже при коннекте кикает. Я пытался поставить при коннекте проверку ну ничего не выходит. Если кто знает подскажите пожалуйста.
Вот что у меня стоит при [cut noguest=коннекте][pwn] new plname[MAX_PLAYER_NAME];
if(!IsRPNick(playerid))
{
GetPlayerName(playerid, plname, sizeof(plname));
Kick(playerid); // Кикаем игрока с нонРП ником
return 1;
}[/pwn][/cut]
А вот и сама [cut noguest=проверка][pwn]IsRPNick(playerid)
{
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, MAX_PLAYER_NAME);
for(new i=0;i<strlen(plname);i++){
if( !((plname[i]>='a'&&plname[i]<='z') || (plname[i]>='A'&&plname[i]<='Z') || plname[i]=='_') ){
return 0; // недопустимые символы в нике
}
}
new d = strfind(plname, "_");
if( d==-1 ) return 0; // нет _ в нике
if(strfind(plname, "_", false, d+1) != -1) return 0; // больше одного _ в нике
new name[10];
strmid(name, plname, 0, d, sizeof name);
new surname[10];
strmid(surname, plname, d+1, strlen(plname), sizeof surname);
if(strlen(name)<3 || strlen(name)>9) return 0; // неверная длина имени
if(strlen(surname)<3 || strlen(surname)>9) return 0; // неверная длина фамилии
if(!(name[0]>='A' && name[0]<='Z')) return 0; // первая буква имени не заглавная
if(!(surname[0]>='A' && surname[0]<='Z')) return 0; // первая буква фамилии не заглавная
for(new i=1;i<strlen(name);i++){
if(!(name[i]>='a'&&name[i]<='z')) return 0; // неверные буквы в имени
}
for(new i=1;i<strlen(surname);i++){
if(!(surname[i]>='a'&&surname[i]<='z')) return 0; // неверные буквы в фамилии
}
return 1; // все ok
}[/pwn][/cut]

Life-StoryДата: Воскресенье, 14.04.2013, 09:24 | Сообщение # 349
Освоившийся
Группа: Продвинутые
Сообщений: 91
Награды: 3
Репутация: 89
Замечания: 20%
Статус:
Цитата (|||WampiR|||)
Подскажите. Вот на одном сервере такая система НонРП ников допустим если игрок 3 уровня випки то его не кикает а если без випки то его кикает за нонрп и там уже при коннекте кикает. Я пытался поставить при коннекте проверку ну ничего не выходит. Если кто знает подскажите пожалуйста. Вот что у меня стоит при


В public OnPlayerConnect(playerid) вставь это:

[pwn]if(!IsRPNick(playerid))
{
GetPlayerName(playerid, plname, sizeof(plname));
Kick(playerid); // Кикаем игрока с нонРП ником
return 1;
}[/pwn]

и добавь ко всем stock :

[pwn]stock NonRpName(playerid)
{
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, MAX_PLAYER_NAME);
for(new i = 0; i < strlen(plname); i++)
{
if(!((plname[i]>='a'&&plname[i]<='z') || (plname[i]>='A'&&plname[i]<='Z') || plname[i]=='_'))
{
return false; // недопустимые символы в нике
}
}
new d = strfind(plname, "_");
if( d == -1 ) return false; // нет _ в нике
if(strfind(plname, "_", false, d+1) != -1) return false; // больше одного _ в нике
new name[10];
strmid(name, plname, 0, d, sizeof name);
new surname[10];
strmid(surname, plname, d+1, strlen(plname), sizeof surname);
if(strlen(name) < 3 || strlen(name) > 9) return false; // неверная длина имени
if(strlen(surname) <3 || strlen(surname) > 9) return false; // неверная длина фамилии
if(!(name[0]>='A' && name[0]<='Z')) return false; // первая буква имени не заглавная
if(!(surname[0]>='A' && surname[0]<='Z')) return false; // первая буква фамилии не заглавная
for(new i=1;i<strlen(name);i++)
{
if(!(name[i]>='a'&&name[i]<='z')) return false; // неверные буквы в имени
}
for(new i=1;i<strlen(surname);i++)
{
if(!(surname[i]>='a'&&surname[i]<='z')) return false; // неверные буквы в фамилии
}
return true;
}[/pwn]

и все у тебя будет тип-топ :)

Добавлено (14.04.2013, 09:24)
---------------------------------------------
P.s. так же посоветовал бы тебе использовать оптимизированный код:

В OnPlayerConnect вставь это:

[pwn]if(strfind(PlayerName(playerid), "_", true) == -1) SendClientMessage(playerid,0xFFFFFFAA,"Твой ник не является РП ником,правильно будет Имя_Фамилия") && Kick(playerid); [/pwn]

В конец мода или ко всем stock :

[pwn]stock PlayerName(playerid)
{
new nameoo[MAX_PLAYER_NAME];
GetPlayerName(playerid,nameoo,sizeof(nameoo));
return nameoo;
} [/pwn]


[[[WampiR]]]Дата: Воскресенье, 14.04.2013, 09:33 | Сообщение # 350
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Life-Story, Нифига. Я ставлю вот так: [pwn]new plname[MAX_PLAYER_NAME];
if(PlayerInfo[playerid][pDonateRank] <= 2)
{
if(!NonRpName(playerid))
{
GetPlayerName(playerid, plname, sizeof(plname));
Kick(playerid);
return 1;
}
}[/pwn]
И у меня все равно кикает вип игрока.

SaibotДата: Воскресенье, 14.04.2013, 09:38 | Сообщение # 351
Освоившийся
Группа: Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
Цитата (makr0o)
OnPlayerDeath() { if(playerinfo[playerid][rozisk] == 1 && тут делаешь условие, если игрок Fbi(я хз как у тебя)) { //тпшишь его куда нибудь, замораживаешь и тп. } }

У меня в OnPlayerDeath вот так стоит:
[cut noguest=Код][pwn]if(IsACop(killerid))
{
if(GetPlayerWantedLevel(playerid) > 0)
{
//SetPlayerInterior(playerid, 6);
//SetPlayerPos(playerid,264.6288,77.5742,1001.0391);
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailTime] = GetPlayerWantedLevel(playerid)* 10 * 60;
//SetPlayerHealth(playerid,0)
//SetPlayerFree(suspect,playerid, " Арестованы!*");
GivePlayerMoney(playerid,2500);
GivePlayerMoney(killerid,-2500);
if(PlayerInfo[killerid][pMember] == 1 || PlayerInfo[killerid][pLeader] == 1) format(string,sizeof(string),
"<< Полицейский LS %s[%d] арестовал(а) подозреваемого %s[%d] >>",killername,killerid,playername,playerid,GetPlayerWantedLevel(killerid)*2500);
if(PlayerInfo[killerid][pMember] == 2 || PlayerInfo[killerid][pLeader] == 2) format(string,sizeof(string),
"<< Агент ФБР %s[%d] арестовал(а) подозреваемого %s[%d] >>",killername,killerid,playername,playerid,GetPlayerWantedLevel(killerid)*2500);
if(PlayerInfo[killerid][pMember] == 3 || PlayerInfo[killerid][pLeader] == 3) format(string,sizeof(string),
"<< Армеец %s[%d] арестовал(а) подозреваемого %s[%d] >>",killername,killerid,playername,playerid,GetPlayerWantedLevel(killerid)*2500);
if(PlayerInfo[killerid][pMember] == 21 || PlayerInfo[killerid][pLeader] == 21) format(string,sizeof(string),
"<< Полицейский LV %s[%d] арестовал(а) подозреваемого %s[%d] >>",killername,killerid,playername,playerid,GetPlayerWantedLevel(killerid)*2500);
SendClientMessageToAll(COLOR_LIGHTRED,string);
format(string, sizeof(string), "Ты посадил игрока %s[%d] в тюрьму и получил 2500$.",playername,playerid,GetPlayerWantedLevel(killerid)*2500);
SendClientMessage(killerid,COLOR_YELLOW,string);
format(string, sizeof(string), "Тебя посадил в тюрьму %s[%d].",killername,killerid);
SendClientMessage(playerid,COLOR_YELLOW,string);
PlayerInfo[playerid][pWanted] = 0;
ResetPlayerWeapons(playerid);
SetPlayerWantedLevel(playerid,0);
SendDeathMessage(killerid,playerid,reason);
R2SPP(playerid);
return 1;
}
else
{
SendDeathMessage(killerid,playerid,reason);
R2SPP(playerid);
return 1;
}
}[/pwn][/cut]
Непойму как вот это туда правильно вставить:
[pwn]OnPlayerDeath()
{
if(playerinfo[playerid][rozisk] == 1 && тут делаешь условие, если игрок Fbi(я хз как у тебя))
{
//тпшишь его куда нибудь, замораживаешь и тп.
}
} [/pwn]

GeryyДата: Воскресенье, 14.04.2013, 10:53 | Сообщение # 352
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
[[[WampiR]]], При выполнении твоей проверки в OnPlayerConnect, скорее всего значение переменной PlayerInfo[playerid][pDonateRank] еще равно 0. Поэтому тебе нужно получить значение DonateRank из аккаунта до проверки на ник.


Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
[[[WampiR]]]Дата: Воскресенье, 14.04.2013, 10:59 | Сообщение # 353
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Geryy, Подскажи пожалуйста как это сделать?
SPACE_MANДата: Воскресенье, 14.04.2013, 11:59 | Сообщение # 354
Новенький
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Как сделать собственный include? какие define или forward вводить, что делать если функция уже существует в другом include?


Смерть SPACE_MAN-у
[[[WampiR]]]Дата: Воскресенье, 14.04.2013, 12:09 | Сообщение # 355
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
SPACE_MAN, Если функция уже существует в инклуде то тебе прийдется удалить ее либо с твоего нового инклуда либо со старого.
SPACE_MANДата: Воскресенье, 14.04.2013, 12:14 | Сообщение # 356
Новенький
Группа: Пользователи
Сообщений: 35
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
[[[WampiR]]] , а что писать вначале include ?


Смерть SPACE_MAN-у
[[[WampiR]]]Дата: Воскресенье, 14.04.2013, 12:17 | Сообщение # 357
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
SPACE_MAN, Извини это уже я не знаю.
GeryyДата: Воскресенье, 14.04.2013, 13:17 | Сообщение # 358
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
[[[WampiR]]],
Для стандартного режима РП:
В начало OnPlayerConnect
Код

new ViP;   
    new string2[64];   
    new playername2[MAX_PLAYER_NAME];   
    GetPlayerName(playerid, playername2, sizeof(playername2));   
    format(string2, sizeof(string2), "users/%s.ini", playername2);   
    new File: UserFile = fopen(string2, io_read);   
    if ( UserFile )   
    {   
    new key[ 256 ] , val[ 256 ];   
    new Data[ 256 ];   
    while ( fread( UserFile , Data , sizeof( Data ) ) )   
    {   
      key = ini_GetKey( Data );   
      if( strcmp( key , "DonateRank" , true ) == 0 ) { val = ini_GetValue( Data ); ViP = strval( val ); }   
    }   
    fclose(UserFile);   
    }   

    if(ViP < 3 && !NonRpName(playerid)) //ViP=значение DonateRank
    {   
    Kick(playerid);   
    return 1;   
     }



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

Сообщение отредактировал Geryy - Воскресенье, 14.04.2013, 14:11
WeddewДата: Воскресенье, 14.04.2013, 13:49 | Сообщение # 359
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
[[[WampiR]]], добавьте проверку на РП ник после кода авторизации игрока.

Добавлено (14.04.2013, 13:49)
---------------------------------------------

Цитата (SPACE_MAN)
[[[WampiR]]] , а что писать вначале include ?

Откройте любой include и посмотрите что там написано.




www.weddew-shop.ru
[[[WampiR]]]Дата: Воскресенье, 14.04.2013, 13:55 | Сообщение # 360
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Weddew, Ну это игрок уже подключиться успеет и потом его только кикнет?
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Страница 24 из 151«122223242526150151»
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM