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

 



 
          





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





Последние Файлы 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
FiLEДата: Суббота, 03.08.2013, 02:51 | Сообщение # 1396
Группа: Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус:
Цитата (Saibot)
Из-за чего может быть?


Могу дать более рекомендации:
1. Проверь паблик OnPlayerUpdate - чаще всего в нем. Он обновляется несколько раз в секунду, и если там много циклов и прочего мусора - удали все лишнее.
2. Проверь аналогично все таймеры и паблики которые запускаются по таймерам.
3. Стоит также принимать во внимание, (если есть mysql) - запросы. Оптимизировать запросы.




_BigSm0ke_Дата: Воскресенье, 04.08.2013, 13:34 | Сообщение # 1397
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Можно как-то отследить, включена ли мигалка на машине ? (я имею ввиду обычную мигалку на мусарских машинах например)

И кто может поделиться скриптом со всеми оффсетами для мигалок в виде ведерок? Есть такой? (Для мигалок как на обычных ментовских тачках не надо)



LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут


Сообщение отредактировал _BigSm0ke_ - Воскресенье, 04.08.2013, 13:37
GeryyДата: Воскресенье, 04.08.2013, 14:47 | Сообщение # 1398
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (_BigSm0ke_)
Можно как-то отследить, включена ли мигалка на машине ? (я имею ввиду обычную мигалку на мусарских машинах например)

Если игрок - водитель в ментовской тачке и нажал H то включена, записываем в переменную :)

Цитата (_BigSm0ke_)
И кто может поделиться скриптом со всеми оффсетами для мигалок в виде ведерок? Есть такой? (Для мигалок как на обычных ментовских тачках не надо)

Для большенства тачек вроде так:
Код

new vih = GetPlayerVehicleID(playerid);
neon[vih][2] = CreateObject(18646,0,0,0,0,0,0,100.0);
neon[vih][3] = CreateObject(18646,0,0,0,0,0,0,100.0);
AttachObjectToVehicle(neon[vih][2], vih, -0.5, -0.2, 0.8, 2.0, 2.0, 3.0);
AttachObjectToVehicle(neon[vih][3], vih, -0.5, -0.2, 0.8, 2.0, 2.0, 3.0);



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
WeddewДата: Воскресенье, 04.08.2013, 22:06 | Сообщение # 1399
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (Geryy)
Если игрок - водитель в ментовской тачке и нажал H то включена, записываем в переменную

А если игрок просто посигналил? Точно отследить не получится




www.weddew-shop.ru
FiLEДата: Воскресенье, 04.08.2013, 22:19 | Сообщение # 1400
Группа: Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус:
Weddew, теоретически в OnPlayerUpdate можно отследить длительность нажатия и определить - посигналил или включил сирену. Но это теоретически :D



_BigSm0ke_Дата: Воскресенье, 04.08.2013, 22:42 | Сообщение # 1401
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Цитата (Geryy)
Если игрок - водитель в ментовской тачке и нажал H то включена, записываем в переменную

А что если игрок сел в ментовскую тачку с уже включенной мигалкой и не нажимал H?



LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут
artemganin1999Дата: Понедельник, 05.08.2013, 11:46 | Сообщение # 1402
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Цитата (artemganin1999)
Теперь осталась одна основная проблема ( я писал выше но никто не помог(( )
Короче хит убивает игрока на которого заказ, но ничего не происходит, ни тому игроку ничего не пишется,ни денег не дается, а когда человек вышел с сервера то все равно пишет "Ваша цель покинула сервер."

   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;
}

и вот код givehit
http://pastebin.com/XXBdKyhV

помогите(((

_BigSm0ke_Дата: Понедельник, 05.08.2013, 22:24 | Сообщение # 1403
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Цитата (Geryy)
Для большенства тачек вроде так:
Код

new vih = GetPlayerVehicleID(playerid);
neon[vih][2] = CreateObject(18646,0,0,0,0,0,0,100.0);
neon[vih][3] = CreateObject(18646,0,0,0,0,0,0,100.0);
AttachObjectToVehicle(neon[vih][2], vih, -0.5, -0.2, 0.8, 2.0, 2.0, 3.0);
AttachObjectToVehicle(neon[vih][3], vih, -0.5, -0.2, 0.8, 2.0, 2.0, 3.0);


мм нет... почти на всех тачках криво сидит, либо выше либо ниже крыши



LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут
WeddewДата: Понедельник, 05.08.2013, 23:48 | Сообщение # 1404
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (FiLE)
Weddew, теоретически в OnPlayerUpdate можно отследить длительность нажатия и определить - посигналил или включил сирену. Но это теоретически

Можно также кратковременно нажать на H и проблесковый маячок не включится.

Добавлено (05.08.2013, 23:48)
---------------------------------------------

Цитата (_BigSm0ke_)
А что если игрок сел в ментовскую тачку с уже включенной мигалкой и не нажимал H?

Проблема не в этом




www.weddew-shop.ru


Сообщение отредактировал Weddew - Понедельник, 05.08.2013, 23:47
Myth28Дата: Среда, 07.08.2013, 01:28 | Сообщение # 1405
Мега Флудер
Группа: I'm V.I.P.
Сообщений: 19
Награды: 0
Город: Москва
Репутация: 5
Замечания: 0%
Статус:
А как сделать так, чтобы твой скин видели все игроки? Я сделал скин в 3дМакс, хочу чтобы его все игроки видели.
WeddewДата: Среда, 07.08.2013, 02:01 | Сообщение # 1406
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (Myth28)
А как сделать так, чтобы твой скин видели все игроки? Я сделал скин в 3дМакс, хочу чтобы его все игроки видели.

Каждый игрок должен загрузить себе этот скин. Средствами SA-MP это к сожалению не возможно.




www.weddew-shop.ru
Myth28Дата: Среда, 07.08.2013, 02:17 | Сообщение # 1407
Мега Флудер
Группа: I'm V.I.P.
Сообщений: 19
Награды: 0
Город: Москва
Репутация: 5
Замечания: 0%
Статус:
А вот мне сказали то что можно в мод или куда-то там модель загрузить. Так возможно будет?
WeddewДата: Среда, 07.08.2013, 04:10 | Сообщение # 1408
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (Myth28)
А вот мне сказали то что можно в мод или куда-то там модель загрузить. Так возможно будет?

Цитата (Weddew)
Средствами SA-MP это к сожалению не возможно.




www.weddew-shop.ru
milksДата: Среда, 07.08.2013, 20:57 | Сообщение # 1409
Новенький
Группа: Пользователи
Сообщений: 11
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Поставил вот этот скрипт на сервер. купил ферму, в конфиге поставил, что я комбайнер и развожу груз с пикапа, но когда сажусь в комбайнер/пакап, то пишет, что "Вы не имеете доступа к этой машине" , что делать? :c
SaibotДата: Среда, 07.08.2013, 22:04 | Сообщение # 1410
Освоившийся
Группа: Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
[cut noguest=SearchingHit][pwn]public SearchingHit(playerid)
{
new string[550];
new giveplayer[MAX_PLAYER_NAME];
new searchhit = 0;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(searchhit == 0)
{
if(PlayerInfo[i][pHeadValue] > 0 && GotHit[i] == 0 && PlayerInfo[i][pMember] != 8)
{
GetPlayerName(i, giveplayer, sizeof(giveplayer));
searchhit = 1;
hitfound = 1;
hitid = i;
for(new k=0; k<MAX_PLAYERS; k++)
{
if(IsPlayerConnected(k))
{
if(PlayerInfo[k][pMember] == 8 || PlayerInfo[k][pLeader] == 8)
{
SendClientMessage(k, COLOR_WHITE, "Hitman Agency News");
SendClientMessage(k, COLOR_DBLUE, "Íîâîå ñîîáùåíèå, äîñòóïåí íîâûé êîíòðàêò.");
format(string, sizeof(string), "×åëîâåê: %s | ID: %d Âîçíàãðàæäåíèå:$%d.", giveplayer, i, PlayerInfo[i][pHeadValue]);
SendClientMessage(k, COLOR_DBLUE, string);
SendClientMessage(k, COLOR_YELLOW, "Ââåäèòå 'givehit' ÷òîáû äàòü çàêàç õèòìàíó.");
SendClientMessage(k, COLOR_WHITE, "|_____________________________________________________|");
}
}
}
return 0;
}
}
}
}
if(searchhit == 0)
{
SendClientMessage(playerid, COLOR_GRAD2, "Íåò äîñòóïíûõ êîíòðàêòîâ !");
}
return 0;
}[/cut]
Получается что тут Цикл в Цикле, но когда убераю второй Цикл for(new k=0; k<MAX_PLAYERS; k++) То у Хитов не работает команда Contracts. Как правильно тут сделать?

Поиск:





 


 


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