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

 



 
        
[SA-MP] Hosted Tab (116)
DieSeL 17.05.2017 17:33
Физрук (15)
Lanablogger1 16.05.2017 16:00
 





Рекомендуем:
Добавить 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
Страница 89 из 152«128788899091151152»
Модератор форума: AXE, Weddew 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Вопросы и ответы по GTA SAMP [от 19.03.2013]
WeddewДата: Вторник, 19.03.2013, 15:11 | Сообщение # 1
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 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
Fen1ksДата: Среда, 24.07.2013, 21:58 | Сообщение # 1321
Новенький
Группа: Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Помогите пожалуйста как сделать все ники в одну строку дабы не разводить срач в паблике
[pwn]if(!strcmp(nickname, "test", true)) {
SendClientMessage(playerid, -1, "Сервер: Вы забанены. [Причина: ban-test]");
BanEx(playerid, "ban-test");
}
if(!strcmp(nickname, "test122", true)) {
SendClientMessage(playerid, -1, "Сервер: Вы забанены. [Причина: ban-test]");
BanEx(playerid, "ban-test");
}[/pwn]
например два ника

Добавлено (24.07.2013, 21:58)
---------------------------------------------
прокурил сам
[pwn]if(!strcmp(nickname, "nick", true) || (nickname, "nick", true))[/pwn]

artemganin1999Дата: Среда, 24.07.2013, 22:04 | Сообщение # 1322
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
блин почему заказ хиту дается, он убивает и ничего не происходит
[pwn] //giveplayerid = strval(tmp);
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(PlayerInfo[giveplayerid][pMember] != 8 && PlayerInfo[giveplayerid][pLeader] != 8)
{
SendClientMessage(playerid, COLOR_GREY, "Этот игрок не Наёмный убийца.");
return false;
}
if(GoChase[giveplayerid] < 999)
{
SendClientMessage(playerid, COLOR_GREY, "Этот наёмник уже занят контрактом.");
return false;
}
if(IsPlayerConnected(hitid))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giver, sizeof(giver));
GetPlayerName(hitid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "- %s назначил %s убить %s[%d] за %d", sendername, giver, giveplayer, hitid, PlayerInfo[hitid][pHeadValue]);
SendFamilyMessage(8, COLOR_YELLOW, string);
GoChase[giveplayerid] = hitid;
GetChased[hitid] = giveplayerid;
GotHit[hitid] = 1;
hitid = 0;
hitfound = 0;
return false;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Человек на которого контракт в данный момент не в игре, посмотрите список коонтрактов.");
return false;
}
}
return false;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Этот Наёмный убийца не в игре.");
return false;
}
}[/pwn]

SaibotДата: Четверг, 25.07.2013, 16:23 | Сообщение # 1323
Освоившийся
Группа: Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
Хотел зделать чтоб когда игрок выходил из игры писало его ip, но когда у игрока ошибка ip-пишет, если вышол или кикнут пишет ip-222.222.222.222
[pwn]new string7[110];
new pname[24];
new ipplayer[256];
switch (reason)
{
case 0:
{
GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));
GetPlayerName(playerid,pname,24);
format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%s) покинул(а) игру, причина: [ошибка]",pname,playerid,ipplayer);
SendAdminMessage(COLOR_WHITE,string7);
}
case 1:
{
GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));
GetPlayerName(playerid,pname,24);
format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%d) покинул(а) игру, причина: [вышол(а)]",pname,playerid,ipplayer);
SendAdminMessage(COLOR_WHITE,string7);
}
case 2:
{
GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));
GetPlayerName(playerid,pname,24);
format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%s) покинул(а) игру, причина: [кикнут(а)/забанен(а)]",pname,playerid,ipplayer);
SendAdminMessage(COLOR_WHITE,string7);
}
}[/pwn]

sehrgetДата: Четверг, 25.07.2013, 17:18 | Сообщение # 1324
Постоялец
Группа: Продвинутые
Сообщений: 393
Награды: 2
Город: Украина\Черкассы
Замечания: 40%
Статус:
Saibot,
[pwn]new string7[110];
new pname[24];
new ipplayer[16];
switch (reason)
{
case 0:
{
GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));
GetPlayerName(playerid,pname,24);
format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%s) покинул(а) игру, причина: [ошибка]",pname,playerid,ipplayer);
SendAdminMessage(COLOR_WHITE,string7);
}
case 1:
{
GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));
GetPlayerName(playerid,pname,24);
format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%d) покинул(а) игру, причина: [вышол(а)]",pname,playerid,ipplayer);
SendAdminMessage(COLOR_WHITE,string7);
}
case 2:
{
GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));
GetPlayerName(playerid,pname,24);
format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%s) покинул(а) игру, причина: [кикнут(а)/забанен(а)]",pname,playerid,ipplayer);
SendAdminMessage(COLOR_WHITE,string7);
}
}[/pwn]

Добавлено (25.07.2013, 17:10)
---------------------------------------------
Как использовать таймер SetTimerEx? Вот мне нужно просто дать таймер игроку на 10 сек после которого значение переменной увеличится и ему напишет в SendClientMessage , а там куча параметров(как по мне это тупо, автор баран и лучше бы учился у SetTimer: ничего лишнего и все функции в паблике).

Добавлено (25.07.2013, 17:18)
---------------------------------------------
artemganin1999, в OnPlayerDeath:
[pwn]if(PlayerInfo[playerid][pHeadValue] > 0)
{
if(IsPlayerConnected(killerid))
{
if(PlayerInfo[killerid][pLeader] == 8 || PlayerInfo[killerid][pMember] == 8)
{
if(GoChase[killerid] == playerid)
{
PlayerInfo[killerid][pMoney] += PlayerInfo[playerid][pHeadValue]; // замени на свою функцию античита или на GivePlayerMoney(если его нету)
SendClientMessage(playerid,COLOR_RED, "Вы убиты по заказу!");
PlayerInfo[playerid][pHeadValue] = 0;
GotHit[playerid] = 0;
GetChased[playerid] = 999;
GoChase[killerid] = 999;
}
}
}
}[/pwn]



Сообщение отредактировал sehrget - Четверг, 25.07.2013, 17:21
artemganin1999Дата: Четверг, 25.07.2013, 17:33 | Сообщение # 1325
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Цитата (sehrget)
artemganin1999, в OnPlayerDeath:

у меня там уже есть [pwn] if(PlayerInfo[playerid][pHeadValue] > 0)
{
if(IsPlayerConnected(killerid))
{
if(PlayerInfo[killerid][pLeader] == 8 || PlayerInfo[killerid][pMember] == 8)
{
if(GoChase[killerid] == playerid)
{
new killer[MAX_PLAYER_NAME];
GetPlayerName(killerid, killer, sizeof(killer));
PlayerInfo[killerid][pMoney] += PlayerInfo[playerid][pHeadValue];
format(string,sizeof(string),"Хитман %s выполнил контракт на %s и получил вознаграждение в размере %d$.",killer,name,PlayerInfo[playerid][pHeadValue]);
SendFamilyMessage(8, COLOR_YELLOW, string);
SendClientMessage(playerid,COLOR_LIGHTRED, "Ничего личного - просто заказ!");
PlayerInfo[playerid][pHeadValue] = 0;
GotHit[playerid] = 0;
GetChased[playerid] = 999;
GoChase[killerid] = 999;
PlayerInfo[killerid][pZakazov] += 1;
}
}
}
}
}
return true;
}[/pwn] но почему то не работает((( сколько раз убиваешь , ничего, а когда человек выходит то сразу "Жертва покинула цель"

AlcoholikДата: Четверг, 25.07.2013, 17:47 | Сообщение # 1326
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5945
Статус:
Цитата (sehrget)
Как использовать таймер SetTimerEx? Вот мне нужно просто дать таймер игроку на 10 сек после которого значение переменной увеличится и ему напишет в SendClientMessage , а там куча параметров(как по мне это тупо, автор баран и лучше бы учился у SetTimer: ничего лишнего и все функции в паблике).

Ничего сложного там нет
new a = 0;

SetTimerEx("Timername",10000, true, "i", playerid);//Timername название функции, которая будет выполняться по таймеру, 10000 - кол-во миллисекунд, через которое будет срабатывать таймер, true - включение повтора таймера, i - тип аргумента, playerid - аргумент. Подробности про типы аргументов должны быть в вики

public Timername(playerid)
{
SendClientMessage(playerid,-1,"TIMER");
a++;
}



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
HakeRbesTДата: Четверг, 25.07.2013, 20:14 | Сообщение # 1327
Новенький
Группа: Пользователи
Сообщений: 72
Награды: 0
Город: Новокузнецк
Репутация: 2
Замечания: 0%
Статус:
Всем привет, возник вопрос по filterscript,ам
Как они действуют? Допустим у меня в фильтерскрипте описан только один паблик - OnPlayerConnect. Значит он полностью заменит собой гейммодовский? Или они оба будут выполняться? Если так, то какой из них выполняется вперёд?
Заранее спасибо :)

FiLEДата: Четверг, 25.07.2013, 20:28 | Сообщение # 1328
Группа: Разработчики
Сообщений: 679
Награды: 70
Город: Днепропетровск
Замечания: 0%
Статус:
HakeRbesT, выполняются оба. Какой их них первее - незнаю. Наверное гейммодовский.



SaibotДата: Четверг, 25.07.2013, 20:28 | Сообщение # 1329
Освоившийся
Группа: Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
Цитата (sehrget)
new string7[110];  new pname[24];  new ipplayer[16];  switch (reason)  {  case 0:  {  GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));  GetPlayerName(playerid,pname,24);  format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%s) покинул(а) игру, причина: [ошибка]",pname,playerid,ipplayer);  SendAdminMessage(COLOR_WHITE,string7);  }  case 1:  {  GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));  GetPlayerName(playerid,pname,24);  format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%d) покинул(а) игру, причина: [вышол(а)]",pname,playerid,ipplayer);  SendAdminMessage(COLOR_WHITE,string7);  }  case 2:  {  GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));  GetPlayerName(playerid,pname,24);  format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%s) покинул(а) игру, причина: [кикнут(а)/забанен(а)]",pname,playerid,ipplayer);  SendAdminMessage(COLOR_WHITE,string7);  }  }


Тоже самое. ip - 222.222.222.222

AlcoholikДата: Четверг, 25.07.2013, 20:31 | Сообщение # 1330
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5945
Статус:
HakeRbesT, выполняться будут оба, а вот, что выполнится первым, точно не помню. Просто-же проверить.


if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
AlcoholikДата: Четверг, 25.07.2013, 20:40 | Сообщение # 1331
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5945
Статус:
Saibot, возможно самп не может получить IP, когда у игрока ошибка. Можно записывать при коннекте IP адреса и выводить их уже из массива, вряд ли у игрока поменяется IP во время игры)
[pwn]new PlayersIPs[MAX_PLAYERS][16];

public OnPlayerConnect(playerid)
{
GetPlayerIp(playerid,PlayersIPs[playerid],sizeof(PlayersIPs[playerid]));
}

new string7[110];
new pname[24];
switch (reason)
{
case 0:
{
GetPlayerName(playerid,pname,24);
format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%s) покинул(а) игру, причина: [ошибка]",pname,playerid,PlayersIPs[playerid]);
SendAdminMessage(COLOR_WHITE,string7);
}
case 1:
{
GetPlayerName(playerid,pname,24);
format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%d) покинул(а) игру, причина: [вышол(а)]",pname,playerid,PlayersIPs[playerid]);
SendAdminMessage(COLOR_WHITE,string7);
}
case 2:
{
GetPlayerName(playerid,pname,24);
format(string7,sizeof(string7), "{FF3300}« {FFFFFF}%s[%d] (ip:%s) покинул(а) игру, причина: [кикнут(а)/забанен(а)]",pname,playerid,PlayersIPs[playerid]);
SendAdminMessage(COLOR_WHITE,string7);
}
} [/pwn]
P.S. Код может вообще не скомпилироваться, писал на pawn я в последний раз хз когда, если будут ошибки, в лс)



if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
artemganin1999Дата: Четверг, 25.07.2013, 21:04 | Сообщение # 1332
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Да почему(
короче хочу сделать бонус для сервера, действовал точно по этому уроку http://pastebin.com/0ZzNSdcZ , после этого я вошел от админа, на сервере пропали дома,деньги по нулям. Деньги даются,лицы тоже, но лвл как был так и есть , помогите ((( если убрать опять с мода то все нормально

AlcoholikДата: Четверг, 25.07.2013, 21:44 | Сообщение # 1333
Группа: Администратор
Сообщений: 8284
Награды: 111
Город: Санкт-Петербург
Репутация: 5945
Статус:
В этом "уроке" нет ничего такого, что могло бы что-то испортить.


if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
artemganin1999Дата: Четверг, 25.07.2013, 21:48 | Сообщение # 1334
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
я хз ((( и все такие уроки напримире , и опять это фигня с сервером и добавляется 1 warning при комплирировании
WeddewДата: Пятница, 26.07.2013, 00:09 | Сообщение # 1335
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (artemganin1999)
добавляется 1 warning при комплирировании

Какой именно warning?
Цитата (artemganin1999)
но лвл как был так и есть

Каким образом вы определяете значение уровня игрока? По статистике игроков (Tab) ?




www.weddew-shop.ru
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Страница 89 из 152«128788899091151152»
Поиск:





 


 


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