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

 



 
        
[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
Страница 52 из 152«125051525354151152»
Модератор форума: 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
WeddewДата: Вторник, 14.05.2013, 23:09 | Сообщение # 766
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (|||WampiR|||)
Подскажите пожалуйста как сделать чтобы когда 1 раз нажмешь клавишу "Ctrl" в машине включались фары а когда второй раз то она заводилась?

Пример:
В начало:
[pwn]new eng_steps[MAX_PLAYERS];[/pwn]

Там где нужно:
[pwn]switch(eng_steps[playerid])
{
case 0:
{
// Включаем фары
}
case 1:
{
// Включаем двигатель
}
default:
{
eng_steps[playerid] = -1;
// Выключаем двигатель и фары
}
}
eng_steps[playerid]++;[/pwn]




www.weddew-shop.ru


Сообщение отредактировал Weddew - Вторник, 14.05.2013, 23:11
[[[WampiR]]]Дата: Среда, 15.05.2013, 14:33 | Сообщение # 767
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Спасибо.

Добавлено (15.05.2013, 14:33)
---------------------------------------------
Подскажите из-за чего может быть такая проблема: Когда игрок садится в машину то бензин капает просто так и до бесконечности. Когда выхожу с нее и через время опять захожу то он замирает на том месте на котором останавливался и опять все по кругу.
P.s. Когда еду то все нормально. А когда стою пребовляется.

WeddewДата: Среда, 15.05.2013, 22:55 | Сообщение # 768
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (|||WampiR|||)
Подскажите из-за чего может быть такая проблема: Когда игрок садится в машину то бензин капает просто так и до бесконечности. Когда выхожу с нее и через время опять захожу то он замирает на том месте на котором останавливался и опять все по кругу.
P.s. Когда еду то все нормально. А когда стою пребовляется.

Выложите код функции FillUp()




www.weddew-shop.ru
GeryyДата: Четверг, 16.05.2013, 04:02 | Сообщение # 769
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (Weddew)
Выложите код функции FillUp()

http://www.samp-rus.com/forum/15-24497-504289-16-1368431535



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
[[[WampiR]]]Дата: Четверг, 16.05.2013, 13:08 | Сообщение # 770
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Все сделал. Спасибо кто пытался помочь. :)

Добавлено (16.05.2013, 13:08)
---------------------------------------------
Скажите возможно ли как нибудь из этой команды сделать чтобы если у игрока нет ключа то его выкидывало из авто?
[cut noguest=/givekey][pwn] if(strcmp(cmd, "/givekey", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "* Используйте: /givekey [id игрока] [1/2 транспорт]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "* Используйте: /givekey [id игрока] [1/2 транспорт]");
return 1;
}
if(PlayerInfo[playerid][pCarKey] == 0 && PlayerInfo[playerid][pCarKey2] == 0)
{
SendClientMessage(playerid,COLOR_GREY,"* У вас нет тачки");
return 1;
}
new keyss = strval(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(ProxDetectorS(5.0, playerid, giveplayerid))
{
if(keyss == 1)
{
if(PlayerInfo[playerid][pCarKey] == 0)
{
SendClientMessage(playerid,COLOR_GREY,"У вас нету 1ой тачки");
return 1;
}
HireCar[giveplayerid] = PlayerInfo[playerid][pCarKey];
}
else if(keyss == 2)
{
if(PlayerInfo[playerid][pCarKey2] == 0)
{
SendClientMessage(playerid,COLOR_GREY,"У вас нету 2ой тачки");
return 1;
}
HireCar[giveplayerid] = PlayerInfo[playerid][pCarKey2];
}
else
{
SendClientMessage(playerid,COLOR_GREY,"* Неправильный номер тачки");
return 1;
}
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
new carid = HireCar[giveplayerid];
format(string, sizeof(string), "* %s вынимает связку ключей от %s, и дает их %s", sendername,VehicleNames[GetVehicleModel(carid)-400],giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,0,0);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "* Вы слишком далеко от игрока");
}
}
}
}
return 1;
}[/pwn][/cut]

WeddewДата: Четверг, 16.05.2013, 16:34 | Сообщение # 771
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (|||WampiR|||)
Скажите возможно ли как нибудь из этой команды сделать чтобы если у игрока нет ключа то его выкидывало из авто?

В такой системе иной принцип: ключ авто нужен для открытия этого авто и если его нет, то открыть не получиться.
Сделать можно все, однако ваша идея нерациональная.




www.weddew-shop.ru
[[[WampiR]]]Дата: Четверг, 16.05.2013, 19:54 | Сообщение # 772
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Вот а как нибудь можно сделать чтобы когда игрок дает ключ от своей тачки то игрок мог сесть в то авто от которого ему дали ключ.
Вот проверка на владельца:
[pwn] if(newstate == PLAYER_STATE_DRIVER)
{
if(PlayerInfo[playerid][pAdmin] <= 1)
{
if(vehicleid >= 1 && vehicleid <= 337)
{
if(PlayerInfo[playerid][pCarKey] != vehicleid && PlayerInfo[playerid][pCarKey2] != vehicleid)
{
SendClientMessage(playerid,COLOR_LIGHTGREEN," Нет ключа от автомобиля!");
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
}
}
}
}[/pwn]

SaibotДата: Четверг, 16.05.2013, 21:40 | Сообщение # 773
Освоившийся
Группа: Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
Цитата (Geryy)
Где дается розыск поставь условие if(JoinzPeople[playerid] != 1)

Я вот сюда вставлял,незнаю правильно-ли,но всеравно дает розыск.
[cut noguest=public OnPlayerDeath(playerid, killerid, reason)][pwn]new rand = random(500)+3500;
if(GetPlayerWantedLevel(killerid) != 6) SetPlayerWantedLevel(killerid,GetPlayerWantedLevel(killerid)+1);
format(string, sizeof(string), "Игрок %s[%d] совершил преступление. Текущий уровень розыска %d.",killername,killerid,GetPlayerWantedLevel(killerid));
SendRadioMessage(1, COLOR_YELLOW, string);
SendRadioMessage(2, COLOR_YELLOW, string);
SendRadioMessage(3, COLOR_YELLOW, string);
//---------------------------------
f(JoinzPeople[playerid] != 1)
//----------------------------------
format(string, sizeof(string), "Ты убил игрока %s[%d]. Текущий уровень розыска %d.",playername,playerid,GetPlayerWantedLevel(killerid));
SendClientMessage(killerid,COLOR_YELLOW,string);
SendDeathMessage(killerid,playerid,reason);
PlayerInfo[killerid][pHunterValue] +=rand;
R2SPP(playerid);
return 1;[/pwn]
[pwn]new Float:x, Float:y, Float:z, Float:health;
new rand = random(500)+3500;
GetPlayerHealth(killerid,health);
GetPlayerPos(killerid, x, y, z);
CreateExplosion(x, y, z, 1, 5.0);
SetPlayerHealth(killerid,health - 50);
ResetPlayerWeapons(killerid);
if(GetPlayerWantedLevel(killerid) != 6) SetPlayerWantedLevel(killerid,GetPlayerWantedLevel(killerid)+1);
format(string, sizeof(string), "Игрок %s[%d] совершил преступление. Текущий уровень розыска %d.",killername,killerid,GetPlayerWantedLevel(killerid));
SendRadioMessage(1, COLOR_YELLOW, string);
SendRadioMessage(2, COLOR_YELLOW, string);
SendRadioMessage(3, COLOR_YELLOW, string);
//-----------------------------------
f(JoinzPeople[playerid] != 1)
//----------------------------------
format(string, sizeof(string), "Ты убил игрока %s[%d]. Текущий уровень розыска %d.",playername,playerid,GetPlayerWantedLevel(killerid));
SendClientMessage(killerid,COLOR_YELLOW,string);
SendDeathMessage(killerid,playerid,reason);
PlayerInfo[killerid][pHunterValue] +=rand;
R2SPP(playerid);
return 1;[/pwn]
[pwn]new rand = random(500)+3500;
if(DmZona[playerid] != 1)
if(GetPlayerWantedLevel(killerid) != 6) SetPlayerWantedLevel(killerid,GetPlayerWantedLevel(killerid)+1);
format(string, sizeof(string), "Игрок %s[%d] совершил преступление. Текущий уровень розыска %d.",killername,killerid,GetPlayerWantedLevel(killerid));
SendRadioMessage(1, COLOR_YELLOW, string);
SendRadioMessage(2, COLOR_YELLOW, string);
SendRadioMessage(3, COLOR_YELLOW, string);
//----------------------------------
f(JoinzPeople[playerid] != 1)
//----------------------------------
format(string, sizeof(string), "Ты убил игрока %s[%d]. Текущий уровень розыска %d.",playername,playerid,GetPlayerWantedLevel(killerid));
SendClientMessage(killerid,COLOR_YELLOW,string);
SendDeathMessage(killerid,playerid,reason);
PlayerInfo[killerid][pHunterValue] +=rand;
R2SPP(playerid);
return 1;[/pwn][/cut]
[cut noguest=public SetPlayerCriminal(playerid,declare,reason[])][pwn]public SetPlayerCriminal(playerid,declare,reason[])
{//example: SetPlayerCriminal(playerid,255, "Stealing A Police Vehicle");
if(IsPlayerConnected(playerid))
{
PlayerInfo[playerid][pCrimes] += 1;
new points = WantedLevel[playerid];
new turned[MAX_PLAYER_NAME];
new turner[MAX_PLAYER_NAME];
new turnmes[128];
new wantedmes[128];
if(JoinzPeople[playerid] != 1)
strmid(PlayerCrime[playerid][pAccusedof], reason, 0, strlen(reason), 255);
GetPlayerName(playerid, turned, sizeof(turned));
if (declare == 255)
{
format(turner, sizeof(turner), "Неизвестный");
strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
}
else
{
if(IsPlayerConnected(declare))
{
GetPlayerName(declare, turner, sizeof(turner));
strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
strmid(PlayerCrime[declare][pBplayer], turned, 0, strlen(turned), 255);
strmid(PlayerCrime[declare][pAccusing], reason, 0, strlen(reason), 255);
}
}
format(turnmes, sizeof(turnmes), "Вы совершили преступление ( %s ). Стукач: %s.",reason,turner);
SendClientMessage(playerid, COLOR_LIGHTRED, turnmes);
PlayCrimeReportForPlayer(playerid,declare,3);
if(points > 0)
{
format(wantedmes, sizeof(wantedmes), "Текущий уровень розыска: %d.", points);
SendClientMessage(playerid, COLOR_YELLOW, wantedmes);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
}
}
}
}//not connected
}[/pwn][/cut]

WeddewДата: Четверг, 16.05.2013, 22:32 | Сообщение # 774
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (Saibot)
f(JoinzPeople[playerid] != 1)

Синтаксическая ошибка. Условие пишется так:
[pwn]
if(JoinzPeople[playerid] != 1)
{
// Код, который выполниться
}[/pwn]




www.weddew-shop.ru
Artem_TДата: Суббота, 18.05.2013, 16:59 | Сообщение # 775
Освоившийся
Группа: I'm V.I.P.
Сообщений: 132
Награды: 26
Город: Полтава
Репутация: 59
Замечания: 40%
Статус:
Почему может крешить в интерьерах? При входе, выходе из него. Обьектов нету
GeryyДата: Суббота, 18.05.2013, 17:33 | Сообщение # 776
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (Artem_T)
Почему может крешить в интерьерах? При входе, выходе из него. Обьектов нету

Кроме телепортации игрока, еще какие-нибудь функции выполняются для него при входе/выходе?



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Artem_TДата: Суббота, 18.05.2013, 18:15 | Сообщение # 777
Освоившийся
Группа: I'm V.I.P.
Сообщений: 132
Награды: 26
Город: Полтава
Репутация: 59
Замечания: 40%
Статус:
Ну вот например
Вход
Код

SetPVarInt(playerid, "InTventySeven", 1);
                     TogglePlayerControllable(playerid, 0);
         SetTimerEx("PlayerToggle", 3000, false, "d", playerid); // Ôðèç ñïàäåò ÷åðåç 3 ñåêóíä
                     SetPlayerVirtualWorld(playerid,0);
                     //SetPlayerInterior(playerid, 17);
                     //SetPlayerPos(playerid,-25.884498,-185.868988,1003.546875);
                     SetPlayerInterior(playerid, 0);
                     SetPlayerPos(playerid,1640.4906,-3168.2698,916.3196);
                     PlayerInfo[playerid][pVirtualWorld] = 0;
                     PlayerInfo[playerid][pInt] = 17;
                     PlayerInfo[playerid][pLocal] = 303;
                     GameTextForPlayer(playerid, "~w~Welcome to the 24-7", 5000, 1);

Выход
Код

SetPlayerVirtualWorld(playerid,0);
                          SetPlayerInterior(playerid,0);
                          SetPlayerPos(playerid,1831.0470,-1843.3162,13.5781);
                          PlayerInfo[playerid][pVirtualWorld] = 0;
                          PlayerInfo[playerid][pInt] = 0;
                          PlayerInfo[playerid][pLocal] = 255;
                          DeletePVar(playerid,"InTventySeven");

==
Код

forward PlayerToggle(playerid);
public PlayerToggle(playerid)
{
     TogglePlayerControllable(playerid,true);
  return 1;
}



Сообщение отредактировал Artem_T - Суббота, 18.05.2013, 18:16
6apblraДата: Суббота, 18.05.2013, 21:04 | Сообщение # 778
Группа: Продвинутые
Сообщений: 100
Награды: 42
Город: Запорожье
Репутация: 249
Замечания: 20%
Статус:
почему некоторые объекты просвещаются, а не которые такие же, не просвещаются. Использую createdynamicobject




Сообщение отредактировал 6apblra - Суббота, 18.05.2013, 21:10
vadimka_skipper_Дата: Воскресенье, 19.05.2013, 08:00 | Сообщение # 779
Уверенный в себе
Группа: Продвинутые
Сообщений: 189
Награды: 1
Город: Иркутск
Репутация: 40
Замечания: 0%
Статус:
Всем привет. При рестарте сервера банки фракций слетают на ноль, а в файле все значения прописаны. К примеру пополняю казну на 100 смотрю файл в нем эта сотка не появилась а осталось значение которое было изначально когда заливал на хост с компа. То есть файл не прогружает и не сохраняет. Права 777 стоят. Файл .cfg


Помощь в скриптинге!
Продажа вкладки Hosted - 550 рублей/адрес
Хостинг GTA SAMP
Обмен WMR в Яндекс.Деньги

Skype - Duramar



Сообщение отредактировал vadimka_skipper_ - Воскресенье, 19.05.2013, 08:15
WeddewДата: Воскресенье, 19.05.2013, 10:22 | Сообщение # 780
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (vadimka_skipper_)
Всем привет. При рестарте сервера банки фракций слетают на ноль, а в файле все значения прописаны. К примеру пополняю казну на 100 смотрю файл в нем эта сотка не появилась а осталось значение которое было изначально когда заливал на хост с компа. То есть файл не прогружает и не сохраняет. Права 777 стоят. Файл .cfg

1) Не вызывается функция записи/сохранения в файл.
2) При вызове выше сказанной функции возникает ошибка.

Выложите функции, которые отвечают за чтение и за запись данных банков.
Например: LoadCars() SaveCars();




www.weddew-shop.ru


Сообщение отредактировал Weddew - Воскресенье, 19.05.2013, 10:38
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Страница 52 из 152«125051525354151152»
Поиск:





 


 


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