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

 



 
        
Подвиcание SA-MP (2)
Max 20.02.2017 21:57
MYSQL Донат (2)
JasonGordon 08.02.2017 10:39
Зацените (12)
JasonGordon 26.01.2017 18:36
 





Рекомендуем:
Добавить 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
Страница 83 из 151«128182838485150151»
Модератор форума: 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
_BigSm0ke_Дата: Вторник, 16.07.2013, 01:02 | Сообщение # 1231
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Хотел бы узнать какая максимальная длина строки в 0.3Х? А то параметров у аккаунта становится все больше и больше и sql запрос становится все длиннее и длиннее.. если sql запрос будет длиннее чем максимальная длина строки, придется загружать и сохранять аккаунты в 2 и более запросов? или есть другой выход?


LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут
WeddewДата: Вторник, 16.07.2013, 01:07 | Сообщение # 1232
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
Цитата (_BigSm0ke_)
Хотел бы узнать какая максимальная длина строки в 0.3Х?

Ограничения не имеется, ограничено лишь физическими возможностями машины.
Цитата (_BigSm0ke_)
придется загружать и сохранять аккаунты в 2 и более запросов? или есть другой выход?

Я не думаю, что у вас слишком много параметров аккаунта. 2-ух запросов будет достаточно.




www.weddew-shop.ru
ZiGGiДата: Вторник, 16.07.2013, 02:00 | Сообщение # 1233
Мастер джэдай
Группа: Продвинутые
Сообщений: 2650
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Цитата (Weddew)
Ограничения не имеется, ограничено лишь физическими возможностями машины.

Ограничено размером стека.



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
SaibotДата: Вторник, 16.07.2013, 10:34 | Сообщение # 1234
Освоившийся
Группа: Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
Цитата (миха121)
Ну а чуть подробнее?

Команда:
[pwn]if(strcmp(cmd, "/zbruchanska", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new Float:health;
GetPlayerHealth(playerid, health);
if(health >= 100)
{
}
else if(health+25 > 100.0) SetPlayerHealth(playerid, 100.0);
else SetPlayerHealth(playerid, health+25);
ApplyAnimation(playerid,"GANGS","drnkbr_prtl",3.0, 0, 0, 0, 0, 0);
PlayerPlaySound(playerid, 1055, 0.0, 0.0, 0.0);
GivePlayerCash(playerid, - 5);
GameTextForPlayer(playerid, "~r~ - 5 $", 5000, 1);
}
return 1;
}[/pwn]
Дальше в public OnPlayerKeyStateChange(playerid, newkeys,oldkeys)
if(newkeys == KEY_WALK)
{
if(PlayerToPoint(0.3, playerid, Кординаты))
{
OnPlayerCommandText(playerid,"/zbruchanska");
}
}

_BigSm0ke_Дата: Вторник, 16.07.2013, 19:36 | Сообщение # 1235
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Цитата (ZiGGi)
Ограничено размером стека.

А что такое стек?

а да.. и параметров - 59 столбцов в таблице accounts.. и это я еще не все сделал, что хочу))



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


Сообщение отредактировал _BigSm0ke_ - Вторник, 16.07.2013, 19:38
WeddewДата: Вторник, 16.07.2013, 20:17 | Сообщение # 1236
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
Цитата (_BigSm0ke_)
А что такое стек?

Стэк (стопка) - один из способов хранения данных. Принцип работы - Last In First Out (LIFO, на русском: Последний пришел, первый ушел).

Добавлено (16.07.2013, 20:17)
---------------------------------------------

Цитата (_BigSm0ke_)
а да.. и параметров - 59 столбцов в таблице accounts.. и это я еще не все сделал, что хочу))

Если не умещается, то делить на несколько запросов.




www.weddew-shop.ru
_BigSm0ke_Дата: Среда, 17.07.2013, 10:14 | Сообщение # 1237
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Еще один глупый вопрос.. 1 километр примерно по карте кто может показать?) а то делаю работу таксиста с счетчиком по расстоянию и сколько плату делать за 1 км не могу определиться)


LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут
GeryyДата: Среда, 17.07.2013, 11:23 | Сообщение # 1238
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (_BigSm0ke_)
Еще один глупый вопрос.. 1 километр примерно по карте кто может показать?) а то делаю работу таксиста с счетчиком по расстоянию и сколько плату делать за 1 км не могу определиться)


Расстояние надо высчитывать используя скорость и время.

Для этого можно завести глобальную переменную, в которой будет храниться пробег авто:
new Float:VehDistance[MAX_VEHICLES];

затем в секундном таймере высчитывать расстояние:
VehDistance[vehicleid] += GetPlayerSpeed(playerid) / 3.6;

Код

GetPlayerSpeed(playerid)
{
      new Float:ST[4];
      if(IsPlayerInAnyVehicle(playerid))GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
      else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
      ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 200.0;// Ñêîðîñòü òà÷åê
      return floatround(ST[3]);
}    


Т.о. в переменной VehDistance[vehicleid] будет храниться пробег авто (в метрах). Это значение можно использовать как угодно: конвертировать в км, обнулять, показывать через текстдрав и т.д.



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.

Сообщение отредактировал Geryy - Среда, 17.07.2013, 14:32
_BigSm0ke_Дата: Среда, 17.07.2013, 14:57 | Сообщение # 1239
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
Да у меня как бы все так и сделано, вопрос внимательней читай , я спрашивал чему наглядно равен 1 км


LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON
Продаю РП мод: подробнее тут
Решаю задачи по техническим дисциплинам, подробнее тут
GeryyДата: Среда, 17.07.2013, 15:42 | Сообщение # 1240
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (_BigSm0ke_)
я спрашивал чему наглядно равен 1 км

Это насколько фантазия позволяет.



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
ABATAPДата: Среда, 17.07.2013, 16:49 | Сообщение # 1241
Советчик
Группа: Продвинутые
Сообщений: 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]

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]

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

BorogДата: Среда, 17.07.2013, 19:39 | Сообщение # 1242
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1362
Награды: 43
Город: Москва
Репутация: 1249
Замечания: 20%
Статус:
ABATAP, Попробуй вместо OnPlayerCommandText(playerid,"/v buy"); поставить отправку сообщения.
Если все успешно отправит, то нужно копаться в самом паблике OnPlayerCommandText.
И начать это дело с проверки на саму команду "/v"



Silver Break
http://s-break.ru/
http://vk.com/sbreak
ABATAPДата: Среда, 17.07.2013, 19:54 | Сообщение # 1243
Советчик
Группа: Продвинутые
Сообщений: 1007
Награды: 14
Город: Новосибирск
Репутация: 729
Замечания: 0%
Статус:
Borog,

[pwn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_POKUPKA_AUTO)
{
if(response) SendClientMessage(playerid, COLOR_WHITE, "1111111111111");
else RemovePlayerFromVehicle(playerid);
}[/pwn]

Не отправляет.

WeddewДата: Четверг, 18.07.2013, 01:28 | Сообщение # 1244
Группа: Ангел Хранитель
Сообщений: 1237
Награды: 19
Город: Казань
Репутация: 1245
Замечания: 0%
Статус:
ABATAP, значит показывается диалог не с ID`oм DIALOG_POKUPKA_AUTO



www.weddew-shop.ru


Сообщение отредактировал Weddew - Четверг, 18.07.2013, 01:29
GeryyДата: Четверг, 18.07.2013, 01:55 | Сообщение # 1245
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
ABATAP, покажи, что там дальше в public OnDialogResponse


Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Страница 83 из 151«128182838485150151»
Поиск:





 


 


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