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

 



 
          





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





Последние Файлы 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
artemganin1999Дата: Суббота, 13.07.2013, 10:24 | Сообщение # 1201
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Блин ( Я скачал ParadoX rpg, и там заменил все слова "ParadoX" на "Region73-RPG" и заменил сайт, скомпилировал, и когда заходишь в игру , респавнишься в скине Сид жея ((( Конечно /makeleader помогает но после перезахода опять этот скин((

pepysteamДата: Суббота, 13.07.2013, 13:58 | Сообщение # 1202
Новенький
Группа: Пользователи
Сообщений: 16
Награды: 0
Город: Бельцы
Репутация: 0
Замечания: 0%
Статус:
http://hostingkartinok.com/show-im....a4becec
вот скрин по поводу палубы , помогите ))

Добавлено (13.07.2013, 13:58)
---------------------------------------------
и вот реально последний вопрос :D где можно найти список объектов для SA-MP Constructoin желательно со скринами ) или хотя бы ид тех объектов которых нету в MTA Editor new_russian

ExCo4Дата: Суббота, 13.07.2013, 20:57 | Сообщение # 1203
Новенький
Группа: Пользователи
Сообщений: 7
Награды: 0
Город: Belogorsk
Репутация: 0
Замечания: 0%
Статус:
Всем привет, работаю над модом возникла проблема с выдачей денег победителю за раунд.
Код
    if(IsOnePlayer)
  {
      if(Winner != -1)
      {
       new string[256];
       GivePlayerMoney(Winner,5000);
       format(string, 256, "~y~~h~%s~n~~r~~h~ one on the map", name_encode(PlayerName(Winner), 2));
       TextDrawSetString(WinnerText, string);
       Winner = -1;
   }
  }
  else
  {
   if(PlayersOnMap == 1)
   {
       if(Winner != -1)
       {
        new string[256];
        GivePlayerMoney(Winner,5000);
        SetPlayerScore(Winner, GetPlayerScore(Winner)+1);
        format(string, 256, "{ffff00}* Èãðîê {ffffff}%s{ffff00} Ïîáåäèë! Îí ïîëó÷àåò 5.000$ äåíåã è +1 point ê ðåïóòàöèè!",name_encode(PlayerName(Winner), 2));
        SendClientMessageToAll(COLOR_RED,string);
        format(string, 256, "~y~~h~%s~n~~r~~h~won on the round.", name_encode(PlayerName(Winner), 2));
        TextDrawSetString(WinnerText, string);
        Winner = -1;
    }
   }
  }

  if(BeforeVoteTimerID == -1 && VoteTimerID == -1 && CountDownTimerID == -1 && !IsMapStarts)
  {
   BeforeVoteCount = 5;
   BeforeVoteTimerID = SetTimer("CountDownBeforeVoting", 1000, true);
  }
  return 1;
}

Победителю должны давать 5к денег, но не дают. В моде ошибок нет. В чем проблема?



Exclusive DM.
WeddewДата: Суббота, 13.07.2013, 21:04 | Сообщение # 1204
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
ExCo4, полностью функцию выложите, а не ее тело.

Добавлено (13.07.2013, 21:04)
---------------------------------------------
pepysteam, это только в MTA, в SA-MP изначально объект присутствует.



www.weddew-shop.ru
ExCo4Дата: Суббота, 13.07.2013, 21:11 | Сообщение # 1205
Новенький
Группа: Пользователи
Сообщений: 7
Награды: 0
Город: Belogorsk
Репутация: 0
Замечания: 0%
Статус:
Weddew, вот
Код
EndMap()
{
print("EndMap");
  if(IsOnePlayer)
  {
      if(Winner != -1)
      {
       new string[256];
       GivePlayerMoney(Winner,5000);
       format(string, 256, "~y~~h~%s~n~~r~~h~ one on the map", name_encode(PlayerName(Winner), 2));
       TextDrawSetString(WinnerText, string);
       Winner = -1;
   }
  }
  else
  {
   if(PlayersOnMap == 1)
   {
       if(Winner != -1)
       {
        new string[256];
        GivePlayerMoney(Winner,5000);
        SetPlayerScore(Winner, GetPlayerScore(Winner)+1);
        format(string, 256, "{ffff00}* Èãðîê {ffffff}%s{ffff00} Ïîáåäèë! Îí ïîëó÷àåò 5.000$ äåíåã è +1 point ê ðåïóòàöèè!",name_encode(PlayerName(Winner), 2));
        SendClientMessageToAll(COLOR_RED,string);
        format(string, 256, "~y~~h~%s~n~~r~~h~won on the round.", name_encode(PlayerName(Winner), 2));
        TextDrawSetString(WinnerText, string);
        Winner = -1;
    }
   }
  }

  if(BeforeVoteTimerID == -1 && VoteTimerID == -1 && CountDownTimerID == -1 && !IsMapStarts)
  {
   BeforeVoteCount = 5;
   BeforeVoteTimerID = SetTimer("CountDownBeforeVoting", 1000, true);
  }
  return 1;
}



Exclusive DM.
WeddewДата: Суббота, 13.07.2013, 21:57 | Сообщение # 1206
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
ExCo4, ID игрока должен находится в переменной Winner. В месте, где происходит вызов функции EndMap(), присваивайте переменной Winner ID игрока.



www.weddew-shop.ru
ABATAPДата: Суббота, 13.07.2013, 23:28 | Сообщение # 1207
Советчик
Группа: Продвинутые
Сообщений: 1007
Награды: 14
Город: Новосибирск
Репутация: 729
Замечания: 0%
Статус:
[pwn]#define DIALOG_POKUPKA_AUTO 3754[/pwn]

[pwn]public OnPlayerStateChange(playerid, newstate, oldstate)
{
     new string[128];
     if(newstate == PLAYER_STATE_DRIVER)
  {
      if(IsAOwnableVehicle(GetPlayerVehicleID(playerid)))
   {
       new number = GetVehicleID(GetPlayerVehicleID(playerid));
    if(!strcmp(FP_CarInfo[number][ocOwner],"The State",true))
    {
              format(string, sizeof(string), "Транспорт на продажу\nМодель: %s\nЦена: %d$",VehiclesName[GetVehicleModel(FP_OwnableCar[number])-400], FP_CarInfo[number][ocCost]);
     ShowPlayerDialog(playerid,DIALOG_POKUPKA_AUTO,DIALOG_STYLE_MSGBOX,"Авторынок",string,"Купить","Выйти");
     TogglePlayerControllable(playerid,0);
    }
   }
  }
  return 1;
}[/pwn]

[pwn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
     if(dialogid == DIALOG_POKUPKA_AUTO)
  {
   if(response) OnPlayerCommandText(playerid,"/v buy");
   else RemovePlayerFromVehicle(playerid);
   }[/pwn]

При нажатии на кнопку "купить" ничего не происходит. Вводишь команду - все работает. В чем может быть проблема?



Сообщение отредактировал ABATAP - Суббота, 13.07.2013, 23:29
BorogДата: Воскресенье, 14.07.2013, 01:45 | Сообщение # 1208
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1362
Награды: 43
Город: Москва
Репутация: 1249
Замечания: 20%
Статус:
ABATAP, а в самом паблике OnPlayerCommandText есть проверка на эту команду?
Может через zcmd реализовано или тп?



Silver Break
http://s-break.ru/
http://vk.com/sbreak
ABATAPДата: Воскресенье, 14.07.2013, 01:55 | Сообщение # 1209
Советчик
Группа: Продвинутые
Сообщений: 1007
Награды: 14
Город: Новосибирск
Репутация: 729
Замечания: 0%
Статус:
Цитата (Borog)
OnPlayerCommandText


[pwn] if(strcmp(x_job,"buy",true) == 0)
{
if(FP_CarKey[playerid] != 0)return SendClientMessage(playerid,COLOR_GREY,"Ó âàñ óæå åñòü ëè÷íûé òðàíñïîðò.");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Òû äîëæåí íàõîäèòüñÿ â òðàíñïîðòå!");
new buycar = GetPlayerVehicleID(playerid),number = GetVehicleID(buycar);
if(!IsAOwnableVehicle(buycar))return SendClientMessage(playerid,COLOR_GREY,"Ýòîò òðàíñïîðò íå äëÿ ïðîäàæè.");
if(!strcmp(FP_CarInfo[number][ocOwner],"The State",true))
{
if(GetPlayerMoney(playerid) < FP_CarInfo[number][ocCost])
{
SendClientMessage(playerid, COLOR_GREY, "Ó âàñ íåäîñòàòî÷íî äåíåã äëÿ ïîêóïêè.");
RemoveFromVehicle(playerid);
return 1;
}
SendClientMessage(playerid, COLOR_WHITE, "Ïîçäðàâëÿþ! Òåïåðü ýòîò òðàíñïîðò ïðèíàäëåæèò òåáå!");
GivePlayerMoney(playerid,-FP_CarInfo[number][ocCost]);
strmid(FP_CarInfo[number][ocOwner], name, 0, strlen(name), 999);
FP_CarInfo[number][ocLock] = 1;
GetVehicleParamsEx(buycar,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(buycar,engine,lights,alarm,1,bonnet,boot,objective);
FP_CarKey[playerid] = number;
SaveOwnableCars();
TogglePlayerControllable(playerid,1);
format(string, sizeof(string), "[Âëàäåëåö: %s]",FP_CarInfo[number][ocOwner]);
Update3DTextLabelText(vehicle3Dtext[number], 0xFFA500AA,string);
return 1;
}
return 1;
}[/pwn]

RusKeyДата: Воскресенье, 14.07.2013, 12:01 | Сообщение # 1210
Группа: I'm V.I.P.
Сообщений: 1086
Награды: 25
Город: Санкт-Петербург
Репутация: 273
Замечания: 80%
Статус:
Поделитесь названиями мап editor*ов вроде MTA,только с прилегающей функцией удаления объектов.
Что то вот после пере установки винды не найти мне их в яндексе.





Сообщение отредактировал RusKey - Воскресенье, 14.07.2013, 12:02
EakwarpДата: Воскресенье, 14.07.2013, 12:07 | Сообщение # 1211
Мастер джэдай
Группа: Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус:
RusKey, все потому, что надо не в яндексах искать, а на офф форуме.

http://forum.sa-mp.com/showthread.php?t=282801



More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.


Valakas Roleplay on Twitter

Платные консультации, разработка, в ICQ. Дорого.
ElectroschokkДата: Воскресенье, 14.07.2013, 13:10 | Сообщение # 1212
Новенький
Группа: Пользователи
Сообщений: 7
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Такой вопрос, хочу сделать список игроков в диалоговом окне. например, список админов.
чтобы прописать в их в чате:
Код

                 new count=0;
   for(new i=0; i<MAX_PLAYERS; i++)
   {
       if(IsPlayerConnected(i))
       {
           if(logged[i] == 1)
           {
      if(PlayerInfo[i][pAdmin] >= 1)
      {
       new str[256];
       new pname[24];
       GetPlayerName(i, pname, 24);
       if(IsPlayerAdmin(i)) format(str, 256, "%s (Rcon admin)", pname);
       else format(str, 256, "%s [Level - %d]", pname, PlayerInfo[i][pAdmin]);
       SendClientMessage(playerid, COLOR_ADMIN, str);
       count++;
      }
     }
    }
   }

то есть для каждого админа форматируется сообщение и отправляет в чат в каждой строчке по админу. а вот как сделать чтобы этот список выводился в ShowPlayerDialog, у меня мозга не хватает)) помогите:)

denis1495Дата: Воскресенье, 14.07.2013, 17:22 | Сообщение # 1213
Новенький
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Замечания: 0%
Статус:
Под скажите название данного скрипта,выделен красным
[cut noguest][/cut]



sdsd

Сообщение отредактировал Weddew - Воскресенье, 14.07.2013, 19:58
WeddewДата: Воскресенье, 14.07.2013, 20:03 | Сообщение # 1214
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Electroschokk, [pwn]new count=0, dialogstr[128];
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && logged[i] && PlayerInfo[i][pAdmin] >= 1)
{
new str[256];
new pname[24];
GetPlayerName(i, pname, 24);
if(IsPlayerAdmin(i)) format(str, 256, "%s (Rcon admin)\n", pname);
else format(str, 256, "%s [Level - %d]\n", pname, PlayerInfo[i][pAdmin]);
strcat(dialogstr, str);
count++;
}
}
if(count != 0) ShowPlayerDialog(playerid, 9354, 0, "Администрация онлайн", dialogstr, "Закрыть", "");[/pwn]

Добавлено (14.07.2013, 20:03)
---------------------------------------------
denis1495, обыкновенное прикрепление 3D текста к игроку.



www.weddew-shop.ru
pepysteamДата: Воскресенье, 14.07.2013, 22:18 | Сообщение # 1215
Новенький
Группа: Пользователи
Сообщений: 16
Награды: 0
Город: Бельцы
Репутация: 0
Замечания: 0%
Статус:
у меня вот такая проблема http://hostingkartinok.com/show-image.php?id=5443d1aaf55020941e9986f2b732157c
есть ли такой сетки скажем один квадратик , или не большой кусок ?

Поиск:





 


 


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