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

 



 
        
Подвиcание SA-MP (2)
Max 20.02.2017 21:57
 





Рекомендуем:
Добавить 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
Страница 40 из 151«123839404142150151»
Модератор форума: 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
[[[WampiR]]]Дата: Воскресенье, 28.04.2013, 11:40 | Сообщение # 586
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Artem_T, Ну если я тебя правильно понял. То тебе нужно чтобы выводилось сообщение перед киком/баном так? А в версии samp 0.3x сообщение не выводится перед киком/баном(Типо баг такой).
vla9ikДата: Воскресенье, 28.04.2013, 12:55 | Сообщение # 587
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 153
Награды: 2
Город: Ярославль
Репутация: 158
Замечания: 0%
Статус:
Сообщение кика на 0.3x

Код
forward KickPublic(playerid);
public KickPublic(playerid) { Kick(playerid); }

stock KickWithMessage(playerid, message[])
{
SendClientMessage(playerid, 0xFF4444FF, message);
SetTimerEx("KickPublic", 1000, 0, "d", playerid);  //Delay of 1 second before kicking the player so he recieves the message
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/kickme", true) == 0)
{
//Kicks the player who the executed this command
KickWithMessage(playerid, "You have been kicked.");
return 1;
}
return 0;
}


Взято с wiki.sa-mp.com



Сообщение отредактировал vla9ik - Воскресенье, 28.04.2013, 13:08
Artem_TДата: Воскресенье, 28.04.2013, 14:30 | Сообщение # 588
Освоившийся
Группа: I'm V.I.P.
Сообщений: 132
Награды: 26
Город: Полтава
Репутация: 59
Замечания: 40%
Статус:
[[[WampiR]]], сделал таймер) все норм
Вот только функция gettime(), не работает почему-то.
Например
new time = 50;
format(str, 64, "%d, %d",gettime(), gettime()+time);
Выводит одинаковые числа



Сообщение отредактировал Artem_T - Воскресенье, 28.04.2013, 14:31
DemonoloGДата: Воскресенье, 28.04.2013, 15:28 | Сообщение # 589
Постоялец
Группа: Продвинутые
Сообщений: 313
Награды: 2
Репутация: 178
Замечания: 0%
Статус:
Вообщем, такая вот проблемка. В мод вставил пару пикапов, и теперь в игре когда его подбираешь, то выводится информация о бизнесе, но то, что я назначил на этот пикап, все равно выдается. Когда подбираешь пикап бизнеса, то показывает информацию не о данном, а о другом бизнесе. В чем может быть проблема?
WeddewДата: Воскресенье, 28.04.2013, 15:36 | Сообщение # 590
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
Цитата (DoKAtemar)
Вообщем, такая вот проблемка. В мод вставил пару пикапов, и теперь в игре когда его подбираешь, то выводится информация о бизнесе, но то, что я назначил на этот пикап, все равно выдается. Когда подбираешь пикап бизнеса, то показывает информацию не о данном, а о другом бизнесе. В чем может быть проблема?

Пикап создается до загрузки данных бизнесов или после?

Добавлено (28.04.2013, 15:36)
---------------------------------------------

Цитата (|||WampiR|||)
А в версии samp 0.3x сообщение не выводится перед киком/баном(Типо баг такой).

[off]Правда? Впервые слышу.[/off]




www.weddew-shop.ru
DemonoloGДата: Воскресенье, 28.04.2013, 15:40 | Сообщение # 591
Постоялец
Группа: Продвинутые
Сообщений: 313
Награды: 2
Репутация: 178
Замечания: 0%
Статус:
Weddew, сперва идет загрузка бизнесов из файла, а потом уже созданные пикапы
WeddewДата: Воскресенье, 28.04.2013, 15:43 | Сообщение # 592
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
Цитата (DoKAtemar)
Weddew, сперва идет загрузка бизнесов из файла, а потом уже созданные пикапы

Ну тут один вариант: проверка пикапов бизнеса идет по ID`у модели.

Добавлено (28.04.2013, 15:43)
---------------------------------------------

Цитата (DoKAtemar)
Когда подбираешь пикап бизнеса, то показывает информацию не о данном, а о другом бизнесе. В чем может быть проблема?

Новые пикапы создавать до загрузки данных бизнесов.




www.weddew-shop.ru
DemonoloGДата: Воскресенье, 28.04.2013, 15:58 | Сообщение # 593
Постоялец
Группа: Продвинутые
Сообщений: 313
Награды: 2
Репутация: 178
Замечания: 0%
Статус:
Weddew, я тож так думал сперва, но разные модели используются. Пробовал даже просто пикап оружия сделать, все равно также.

Добавлено (28.04.2013, 15:47)
---------------------------------------------
Хм... Причем другие пикапы мода, которые стоят рядом с новыми, не имеют этого бага.

Добавлено (28.04.2013, 15:58)
---------------------------------------------
Weddew, поправил, все равно точно также. Или я не так понял?
[cut noguest=Код]public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == StuntPark) return GameTextForPlayer(playerid,"~w~Use /joinstunt to teleporting in stuntpark",4000,3);
if(pickupid == UnJail) return GameTextForPlayer(playerid,"~w~type: /bail to free a player~n~bail fee is $500",4000,3);
if (pickupid == armygun)
{
if(GetPlayerSkin(playerid) == 287)
{
GivePlayerWeapon(playerid, 24, 100);
GivePlayerWeapon(playerid, 16, 3);
GivePlayerWeapon(playerid, 31, 250);
GivePlayerWeapon(playerid, 27, 120);
SendClientMessage(playerid,COLOR_GREEN,"Вы взяли оружие армии");
}
else
{
SendClientMessage(playerid,COLOR_GREEN,"Вы не играете за армию!");
}
}
if (pickupid == zonegun)
{
GivePlayerWeapon(playerid, 24, 50);
GivePlayerWeapon(playerid, 29, 120);
GivePlayerWeapon(playerid, 30, 300);
GivePlayerWeapon(playerid, 25, 120);
SendClientMessage(playerid,COLOR_GREEN,"Вы взяли оружие с заброшенной базы армии");
}
//============ [ Biz ]===============//
if(pickupid < bizcount) {
new bizowner[25], string[STRING_SIZE];
format(bizowner,sizeof(bizowner),"%s",BizInfo[pickupid][owner]);
if(strcmp(BizInfo[pickupid][owner],DEFAULT_OWNER,false) == 0) format(bizowner,sizeof(bizowner),"Not Owned");
format(string,sizeof(string),"~n~~n~~r~Biz: ~g~%s~n~~r~Cost: ~g~$%d ~r~~n~~r~Profit: ~g~$%d/hr ~n~~r~Owner: ~g~%s",BizInfo[pickupid][name],BizInfo[pickupid][cost],BizInfo[pickupid][profit]*2,bizowner);
GameTextForPlayer(playerid,string,5000,3);
return 1;
}

return 1;
}
[/cut]

[[[WampiR]]]Дата: Воскресенье, 28.04.2013, 16:09 | Сообщение # 594
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Цитата (Weddew)
Правда? Впервые слышу.

Серьезно. Это не я сказал а где то на форуме на другом читал. Не зря же уроки придумали исправление выведения диалога в samp 0.3x

Добавлено (28.04.2013, 16:09)
---------------------------------------------
Подскажите тогда как сделать чтобы этот диалог вылазил тому игроку которого забанили?
[cut noguest=Код][pwn] if(strcmp(cmd,"/ban", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >=2)
{
new tmp2[256];
tmp=strtok(cmdtext,idx);
tmp2=strtok(cmdtext,idx);
if((!strlen(tmp)) || (!strlen(tmp2)) || (!IsNumeric(tmp)) || (!IsNumeric(tmp2)))
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Используйте: /ban [id] [дни] [причина]");
return 1;
}
if(IsPlayerConnected(playerid))
{
new playeri,day,y,m,d,yy,mm,dd,nameme[MAX_PLAYER_NAME];
playeri = strval(tmp);
day = strval(tmp2);
if(IsPlayerConnected(playeri))
{
if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playeri][pAdmin])
{
SendClientMessage(playerid,COLOR_GREY,"Нельзя забанить админа, который старше вас!");
return 1;
}
if(day <= 0)
{
SendClientMessage(playerid,COLOR_GREY,"Дни бана должны быть больше нуля!");
return 1;
}
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;
GetPlayerName(playeri,nameme,sizeof(nameme));
GetPlayerName(playerid,playername,sizeof(playername));
GetPlayerName(playeri,sendername,sizeof(sendername));
if(!strlen(result))
{
format(string,sizeof(string),"Администратор %s забанил %s на %d дней. Причина: несоблюдение правил сервера",playername,sendername,day);
SendClientMessageToAll(COLOR_LIGHTRED,string);
}
else
{
format(string,sizeof(string),"Администратор %s забанил %s на %d дней. Причина: %s",playername,sendername,day,(result));
SendClientMessageToAll(COLOR_LIGHTRED,string);
}
getdate(y,m,d);
dd = d;
mm = m;
yy = y;
dd = dd + day;
while(dd > GetDayMount(m,y))
{
mm++;
if(mm > 12)
{
mm=1;
yy++;
}
dd = dd-GetDayMount(mm,yy);
}
//__________________________________________________ _______________________________
new coordsstring1[512];
PlayerPlaySound(playeri, 31202, 0.0, 0.0, 0.0);
new msg1[] = "{FF0000}Вы были забанены\n\n \t{FF0000}Ваш ник: {FFFFFF}%s\n\t{FF0000}Забанил(а): {FFFFFF}%s\n\t{FF0000}Дата разбана: {FFFFFF}%d.%d.%d\n\t{FF0000}Причина: {FFFFFF}%s\n\t{FF0000}Кол-во дней: {FFFFFF}%d\n\t{FF0000}Форум: {FFFFFF}zig-zag.forum2x2.ru\n\n{FF0000}Если вы не согласны пишите на форум";
format(coordsstring1, sizeof coordsstring1, msg1, sendername,playername,dd,mm,yy,result,day);
ShowPlayerDialog(playeri,80,DIALOG_STYLE_MSGBOX,"Блокировка аккаунта",coordsstring1,"Выход","");
//__________________________________________________ _________________________
format(string,sizeof(string),"%d,%d,%d,%s",dd,mm,yy,result,playername);
new File = iniOpen("tempbans.ini");
iniSet(File,nameme,string);
iniClose(File);
Kick(playeri);
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Нет такого игрока!");
}
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Вы не уполномочены использовать эту команду!");
}
return 1;
}[/pwn][/cut]
[cut noguest=Вот сам он][pwn] //__________________________________________________ _______________________________
new coordsstring1[512];
PlayerPlaySound(playeri, 31202, 0.0, 0.0, 0.0);
new msg1[] = "{FF0000}Вы были забанены\n\n \t{FF0000}Ваш ник: {FFFFFF}%s\n\t{FF0000}Забанил(а): {FFFFFF}%s\n\t{FF0000}Дата разбана: {FFFFFF}%d.%d.%d\n\t{FF0000}Причина: {FFFFFF}%s\n\t{FF0000}Кол-во дней: {FFFFFF}%d\n\t{FF0000}Форум: {FFFFFF}zig-zag.forum2x2.ru\n\n{FF0000}Если вы не согласны пишите на форум";
format(coordsstring1, sizeof coordsstring1, msg1, sendername,playername,dd,mm,yy,result,day);
ShowPlayerDialog(playeri,80,DIALOG_STYLE_MSGBOX,"Блокировка аккаунта",coordsstring1,"Выход","");
//__________________________________________________ _________________________[/pwn][/cut]

Artem_TДата: Воскресенье, 28.04.2013, 16:44 | Сообщение # 595
Освоившийся
Группа: I'm V.I.P.
Сообщений: 132
Награды: 26
Город: Полтава
Репутация: 59
Замечания: 40%
Статус:
Weddew, помогай
http://www.samp-rus.com/forum/15-24497-503225-16-1367145036

WeddewДата: Воскресенье, 28.04.2013, 18:01 | Сообщение # 596
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
DoKAtemar, у Вас стоит проверка от ID`а bizcount. Из этой проблемы есть один выход. Предоставьте свой мод, я покажу конкретно и что добавить.

Добавлено (28.04.2013, 18:01)
---------------------------------------------
Artem_T, смотрите синтаксис функции Gettime



www.weddew-shop.ru
[[[WampiR]]]Дата: Воскресенье, 28.04.2013, 18:18 | Сообщение # 597
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Эмм мне не кто не поможет? Выше ↑↑↑
SebastyanДата: Воскресенье, 28.04.2013, 19:46 | Сообщение # 598
Новенький
Группа: Продвинутые
Сообщений: 52
Награды: 1
Репутация: 31
Замечания: 40%
Статус:
[[[WampiR]]], не проще вписать giveplayerid или вытащить ид забаненого и выдать диалог с порядковым номером.
[[[WampiR]]]Дата: Воскресенье, 28.04.2013, 21:47 | Сообщение # 599
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Weddew, А у вас что действительно выводится сообщение перед киком?
vla9ikДата: Воскресенье, 28.04.2013, 22:09 | Сообщение # 600
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 153
Награды: 2
Город: Ярославль
Репутация: 158
Замечания: 0%
Статус:
[[[WampiR]]], я же вам написал сверху как сделать чтоб сообщение выводилось. Данный код был написан на оф сайте, а так же на вики.
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Страница 40 из 151«123839404142150151»
Поиск:





 


 


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