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

 



 
        
[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
Страница 115 из 152«12113114115116117151152»
Модератор форума: 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
[[[WampiR]]]Дата: Понедельник, 04.11.2013, 19:33 | Сообщение # 1711
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Цитата Weddew ()
В принципе возможно, но не для вас

Можно конкретнее, почему именно не для меня?

WeddewДата: Четверг, 07.11.2013, 21:39 | Сообщение # 1712
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата [[[WampiR]]] ()
Можно конкретнее, почему именно не для меня?

Я имею в виду, что необходимы знания таких языков, как C/C++/C#




www.weddew-shop.ru
4o_kavoДата: Воскресенье, 10.11.2013, 12:04 | Сообщение # 1713
Постоялец
Группа: I'm V.I.P.
Сообщений: 349
Награды: 1
Город: Красноярск
Репутация: 191
Замечания: 0%
Статус:
Всем привет

Кто знает как сделать что бы в чат можно было писать сообщение например раз в 3 сек?



-=»>Русский Дрифт Серввер «<=- IP: 176.32.36.131:7777

GTA-Rus.com - Grand Theft Auto


Сообщение отредактировал 4o_kavo - Воскресенье, 10.11.2013, 12:08
GeryyДата: Воскресенье, 10.11.2013, 17:57 | Сообщение # 1714
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата 4o_kavo ()
Кто знает как сделать что бы в чат можно было писать сообщение например раз в 3 сек?

Ммм... нужно поставить ограничение по времени для каждого игрока. В OnPlayerText например.



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

Сообщение отредактировал Geryy - Воскресенье, 10.11.2013, 17:59
MaxДата: Вторник, 12.11.2013, 19:25 | Сообщение # 1715
Уверенный в себе
Группа: Продвинутые
Сообщений: 172
Награды: 0
Город: Казань
Репутация: 59
Замечания: 0%
Статус:
Код
[19:16:38] [debug] Run time error 4: "Array index out of bounds"
[19:16:38] [debug]  Accessing element at index 65535 past array upper bound 49
[19:16:38] [debug] AMX backtrace:
[19:16:38] [debug] #0 0000e340 in public OnPlayerDeath () from ReGiStEr.amx
[19:16:38] [death] Steep_Nk died 255


Вот это выдает крашдетектор при использовании OnPlayerDeath

Вот код
Код
public OnPlayerDeath(playerid, killerid, reason)
{
  KillTimer(Update2[playerid]);
  return true;
}


Простой убивается созданный таймер!

new Update2[MAX_PLAYERS];
Update2[playerid] = SetTimerEx("OnPlayerAll", 2100, true, "i", playerid);

WeddewДата: Вторник, 12.11.2013, 23:32 | Сообщение # 1716
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата Steep_Nk ()
Run time error 4: "Array index out of bounds"

Индекс массива вышел за границу массива.
Цитата Steep_Nk ()
Accessing element at index 65535 past array upper bound 49

Обращение к 65535 индексу массива, когда верхняя граница - 49
Однако не понятно, на какой именно массив ссылается, так как граница массива Update2 - MAX_PLAYERS != 49 (по умолчанию)
Решение: увеличить размерность массива.




www.weddew-shop.ru
GeryyДата: Среда, 13.11.2013, 03:19 | Сообщение # 1717
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата Steep_Nk ()
Вот это выдает крашдетектор при использовании OnPlayerDeath

Ищи массивы с размером [50], возможно где-то ему присваивается значения от INVALID_....._ID (65535)
Функции с неверно заданными аргументами, тоже могу возвращать значение 65535



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
WeddewДата: Среда, 13.11.2013, 15:27 | Сообщение # 1718
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Steep_Nk, Вы точно весь public OnPlayerDeath выложили?



www.weddew-shop.ru


Сообщение отредактировал Weddew - Среда, 13.11.2013, 15:27
MaxДата: Четверг, 14.11.2013, 20:51 | Сообщение # 1719
Уверенный в себе
Группа: Продвинутые
Сообщений: 172
Награды: 0
Город: Казань
Репутация: 59
Замечания: 0%
Статус:
Предыдущий вопрос решен !!!

вопрос №2

как извлеч
Messages received: и Acks sent
из
GetPlayerNetworkStats

WeddewДата: Четверг, 14.11.2013, 23:13 | Сообщение # 1720
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Steep_Nk,
Цитата Weddew ()
Если Вы сами решили свою проблему, то напишите, как Вы ее решили.




www.weddew-shop.ru
[[[WampiR]]]Дата: Пятница, 15.11.2013, 01:42 | Сообщение # 1721
Уверенный в себе
Группа: Продвинутые
Сообщений: 202
Награды: 2
Город: Омск
Репутация: -22
Замечания: 20%
Статус:
Здравствуйте. Вот у меня такая проблема: добавляю в команду "продажи машины игрока, другому игроку" проверку, что если у игрока, которому продают авто меньше лвл, чем у самой машины, то ему машина не продается, вот у меня эта команда срабатывает только когда игрок в авто, но если он выйдет из машины, то сможет продать авто.
[cut noguest=/sellmycar - продажа][pwn][/pwn] if(strcmp(cmd, "/sellcar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pCarKey2] == 0 && PlayerInfo[playerid][pCarKey] == 0 )
{
SendClientMessage(playerid,COLOR_LIGHTRED2," У вас нет тачки");
return 1;
}
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
if(PlayerToKvadrat(playerid, 1059.0021, -1777.3611, 1101.8859, -1735.4606) ||
PlayerToKvadrat(playerid, 2788.7844, -1467.7683, 2820.6284, -1425.3816) ||
PlayerToKvadrat(playerid, 293.7184, -1549.3483, 304.6124, -1477.7850) ||
PlayerToKvadrat(playerid, 2642.7,-1901.2,2842.1,-1668.1) ||
PlayerToKvadrat(playerid, 1417.6780,2786.3059,1532.8566,2788.3418) ||
PlayerToKvadrat(playerid, 1463.1936,2724.5845,1533.5640,2761.9668) ||
PlayerToKvadrat(playerid,112.11,-1792.0,142.50,-1961.0)||
PlayerToKvadrat(playerid,2142.0,-1128.0,2169.0,-1210.0))
{
if(IsPlayerInAnyVehicle(playerid))
{
new cari = GetPlayerVehicleID(playerid);
if(cari == PlayerInfo[playerid][pCarKey2] || cari == PlayerInfo[playerid][pCarKey] )
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
new Float:xcar, Float:ycar, Float:zcar, Float:ancar;
new mods = GetVehicleModel(cari);
GetVehicleZAngle(cari, ancar);
GetVehiclePos(cari,xcar,ycar,zcar);
DestroyVehicle(cari);
CreateVehicle(mods,xcar,ycar,zcar,ancar,AutoInfo[cari][aColor1],AutoInfo[cari][aColor2],SPAWN_CARS);
AutoInfo[cari][aAutoX] = xcar;
AutoInfo[cari][aAutoY] = ycar;
AutoInfo[cari][aAutoZ] = zcar;
AutoInfo[cari][aAutoAngle] = ancar;
AutoInfo[cari][aStats] = 0;
new ptem[64];
format(ptem,sizeof(ptem),"Zig Zag");
strmid(AutoInfo[cari][aOwner], ptem, 0, strlen(ptem), 255);
ConsumingMoney[playerid] = 1;

SaveAuto();
gCarLock[cari] = 0;
UnLockCar(cari);

format(string,sizeof(string),"{FFA500}Транспорт продается\n{FFA500}Уровень: {FFFFFF}%d\n{FFA500}Стоимость: {FFFFFF}%d",AutoInfo[cari][aKey],AutoInfo[cari][aPrice]);
UpdateDynamic3DTextLabelText(nomer[cari],0xFFA500FF,string);
if(cari == PlayerInfo[playerid][pCarKey2])
{
PlayerInfo[playerid][pCarKey2] = 0;
}
else if(cari == PlayerInfo[playerid][pCarKey])
{
PlayerInfo[playerid][pCarKey] = 0;
}
return 1;
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Вы не в своей купленной тачке");
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Вы не в тачке");
}
}
else
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Для продажи авто пропишите: /sellmycar [id покупателя] [цена]");
SendClientMessage(playerid,COLOR_LIGHTRED,"ВНИМАНИЕ!!! Остерегайтесь обмана!");
}
}
else
{
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Для продажи авто пропишите: /sellmycar [id покупателя] [цена]");
SendClientMessage(playerid,COLOR_LIGHTRED,"ВНИМАНИЕ!!! Остерегайтесь обмана!");
return 1;
}
new babkis = strval(tmp);
if(PlayerInfo[giveplayerid][pCarKey2] != 0 && PlayerInfo[giveplayerid][pCarKey] != 0 )
{
SendClientMessage(playerid,COLOR_LIGHTRED2," У него уже есть тачка");
return 1;
}
if(babkis < 0)
{
SendClientMessage(playerid,COLOR_GREY,"Цена не меньше 0");
return 1;
}
if(babkis > 500000000)
{
SendClientMessage(playerid,COLOR_GREY,"Не больше 500.000.000");
return 1;
}
if(babkis > GetPlayerMoney(giveplayerid))
{
SendClientMessage(playerid,COLOR_LIGHTRED2," У игрока не хватает денег");
return 1;
}
if(!ProxDetectorS(10.0, playerid, giveplayerid))
{
SendClientMessage(playerid,COLOR_GREY,"Вы слишком далеко от игрока");
return 1;
}
if(CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey])&& CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey2]))
{
SendClientMessage(playerid,COLOR_GREY,"Около вас находятся оба транспорта! Уйдите от того, который не хотите продавать");
return 1;
}
if(!CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey]) && !CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey2]))
{
SendClientMessage(playerid,COLOR_GREY,"Вы слишком далеко от автомобиля");
return 1;
}
if(CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey]))
{
predlogidcar[giveplayerid] = PlayerInfo[playerid][pCarKey];
}
else if(CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey2]))
{
predlogidcar[giveplayerid] = PlayerInfo[playerid][pCarKey2];
}
GetPlayerName(playerid,sendername,sizeof(sendername));
GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer));
predlogid[giveplayerid] = playerid;
predlogmoney[giveplayerid] = babkis;
new kfjsdh = predlogidcar[giveplayerid];
format(string,sizeof(string),"%s предлагает вам купить %s за %d$ (/accept buycar)",sendername,VehicleNames[GetVehicleModel(kfjsdh)-400],babkis);
SendClientMessage(giveplayerid,COLOR_LIGHTBLUE,string);
format(string,sizeof(string),"Вы предложили %s купить %s за %d$",giveplayer,VehicleNames[GetVehicleModel(kfjsdh)-400],babkis);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
}
}
return 1;
}[/cut]

[cut noguest=Проверка на LvL][pwn][/pwn]new cari = GetPlayerVehicleID(playerid);
if(AutoInfo[cari][aKey] > PlayerInfo[giveplayerid][pLevel])
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"У него маленький лвл");
return 1;
}[/cut]

GeryyДата: Пятница, 15.11.2013, 09:07 | Сообщение # 1722
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата [[[WampiR
]];511814]Здравствуйте. Вот у меня такая проблема: добавляю в команду "продажи машины игрока, другому игроку" проверку, что если у игрока, которому продают авто меньше лвл, чем у самой машины, то ему машина не продается, вот у меня эта команда срабатывает только когда игрок в авто, но если он выйдет из машины, то сможет продать авто.

У тебя условие только на тачку в которой игрок, когда игрок выйдет условие не выполнится:

new cari = GetPlayerVehicleID(playerid);
if(AutoInfo[cari][aKey] > PlayerInfo[giveplayerid][pLevel])

Тебе надо проверять лвл у авто, которое продается. А не в котором сидит игрок.



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

Сообщение отредактировал Geryy - Пятница, 15.11.2013, 09:18
MaxДата: Суббота, 16.11.2013, 13:48 | Сообщение # 1723
Уверенный в себе
Группа: Продвинутые
Сообщений: 172
Награды: 0
Город: Казань
Репутация: 59
Замечания: 0%
Статус:
Как я решил проблему:
==================================================================================
Я выложил не тот паблик OnPlayerDeath

А в паблике мода было так что killerid выдавалось PlayerInfo[killerid][pKills]++;

При самоубийстве playerid массив PlayerInfo[killerid][pKills] выходил за пределы т.к небыло killerid
==================================================================================
вопрос №2

как извлеч
Messages received: и Acks sent
из
GetPlayerNetworkStats

GeryyДата: Суббота, 16.11.2013, 14:05 | Сообщение # 1724
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата Steep_Nk ()
При самоубийстве playerid массив PlayerInfo[killerid][pKills] выходил за пределы т.к небыло killerid

Знач я прав был.



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
WeddewДата: Суббота, 16.11.2013, 14:14 | Сообщение # 1725
Группа: Ангел Хранитель
Сообщений: 1242
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата Steep_Nk ()
При самоубийстве playerid массив PlayerInfo[killerid][pKills] выходил за пределы т.к небыло killerid

http://wiki.sa-mp.com/wiki/OnPlayerDeath, в примечании указано.

Добавлено (16.11.2013, 14:14)
---------------------------------------------

Цитата Steep_Nk ()
как извлеч
Messages received: и Acks sent
из
GetPlayerNetworkStats

Выложите полностью то, что показывает при вызове функции GetPlayerNetworkStats




www.weddew-shop.ru
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Вопросы и ответы по GTA SAMP [от 19.03.2013]
Страница 115 из 152«12113114115116117151152»
Поиск:





 


 


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