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

 



 
          





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





Последние Файлы 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
HakeRbesTДата: Четверг, 15.08.2013, 14:54 | Сообщение # 1456
Новенький
Группа: Пользователи
Сообщений: 72
Награды: 0
Город: Новокузнецк
Репутация: 2
Замечания: 0%
Статус:
Как создать динамический массив, желательно не используя сторонних плагинов?
WeddewДата: Четверг, 15.08.2013, 14:57 | Сообщение # 1457
Группа: Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус:
Цитата (artemganin1999)
if(cmdlog) CmdLog(cmdtext, playerid);

Цитата (artemganin1999)
эмм и куда это вставлять
Код
if(cmdlog) CmdLog(cmdtext, playerid);

Это за место этого:
Цитата (artemganin1999)
if(cmdlog>=1)
    {
        new isname[24];
        GetPlayerName(playerid,isname,sizeof(isname));
        format(string,sizeof(string),"%s(ID:%i):%s",isname,playerid,cmdtext);
        log("cmdlog",string);
    }




www.weddew-shop.ru
artemganin1999Дата: Четверг, 15.08.2013, 15:07 | Сообщение # 1458
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
все равно файлы в папке logs не создаются с логами
GeryyДата: Четверг, 15.08.2013, 15:19 | Сообщение # 1459
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (HakeRbesT)
Как создать динамический массив, желательно не используя сторонних плагинов?

нет без плагинов точно никак, т.к. pawno не поддерживает динамическое создание массивов. зато на С++ динамические массивы есть, поэтому в плагине их сделать несложно.



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

Сообщение отредактировал Geryy - Четверг, 15.08.2013, 15:32
artemganin1999Дата: Четверг, 15.08.2013, 15:52 | Сообщение # 1460
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Вот команда /pm
[pwn]if(strcmp(string, "/pm", true) == 0 || strcmp(string, "/çü", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PmOtkat[playerid] > 0 && !PlayerInfo[playerid][pAdmin])
{
format(string,sizeof(string),"{FF0000}[Îøèáêà]{ffffff} Âû ñìîæåòå èñïîëüçîâàòü ýòó êîìàíäó ÷åðåç {E3BE88}%d{ffffff} ñåêóíä(û).",PmOtkat[playerid]);
SendClientMessage(playerid, COLOR_WHITE,string);
return true;
}
if(PlayerInfo[playerid][pMute] > 0)
{
MutePlayer(playerid);
return true;
}
if(PlayerInfo[playerid][pMoney] < 25) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Îøèáêà]{ffffff} Äëÿ îòïðàâêè ëè÷íîãî ñîîáùåíèÿ, òðåáóåòñÿ 25$.");
if(PlayerInfo[playerid][pLevel] < 1) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Îøèáêà]{ffffff} Ëè÷íûå ñîîáùåíèÿ äîñòóïíû ñ 1-ãî óðîâíÿ.");
if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Îøèáêà]{ffffff} Òû íå àâòîðèçîâàí(à).");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{FF9900}[Èñïîëüçîâàíèå]{FFFFFF} /pm [ID] [Òåêñò]");
new tmpp=ReturnUser(tmp);
if(HidePM[tmpp] >= 1 && !PlayerInfo[playerid][pAdmin])
{
format(string,sizeof(string), "{FF0000}[Îøèáêà]{ffffff} Ó èãðîêà çàáëîêèðîâàíû ëè÷íûå ñîîáùåíèÿ.");
SendClientMessage(playerid, COLOR_WHITE, string);
return true;
}
if(tmpp == playerid) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Îøèáêà]{FFFFFF} Âû íå ìîæåòå îòïðàâëÿòü ëè÷íûå ñîîáùåíèÿ ñàìîìó ñåáå!");
giveplayerid = ReturnUser(tmp);
if (!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE,"{FF0000}[Îøèáêà]{ffffff} Èãðîêà íåò íà ñåðâåðå!");
if(giveplayerid == INVALID_PLAYER_ID) return true;
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' ')) idx++;
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "{FF9900}[Èñïîëüçîâàíèå]{FFFFFF} /pm [ID] [Òåêñò]");
new word[256],Index;while(Index < strlen(cmdtext)){word = strtok(cmdtext,Index);if(checkbanan(word)==1 && PlayerInfo[playerid][pAdmin] ==0){banan(playerid,cmdtext);return false;}}
format(string, sizeof(string), "Ñîîáùåíèå îò %s[%d]: %s", sendername, playerid, (result));
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
foreach(Player,i)
{
if(PlayerInfo[i][pAdmin] >= 3 && ShowPM[i] == 1)
{
format(string, sizeof(string), "[Ïàëåâî äëÿ àäìèíîâ]:Ñîîáùåíèå îò %s[%d] ê %s[%d]: %s", sendername, playerid, giveplayer, giveplayerid, (result));
SendClientMessage(i, COLOR_LIGHTBLUE, string);
}
}
log("Chat", string);
PmOtkat[playerid] = 5;
SBizzInfo[2][sbTill] += 25;
format(string, sizeof(string), "Ñîîáùåíèå ê %s[%d]: %s", giveplayer, giveplayerid, (result));
SendClientMessage(playerid, COLOR_YELLOW5, string);
log("Chat", string);
PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0);
PlayerPlaySound(giveplayerid, 1084, 0.0, 0.0, 0.0);
format(string, sizeof(string), "~r~$-%d", 25);
GameTextForPlayer(playerid, string, 200, 1);
GiveMoney(playerid,-25);
}
return true;
}[/pwn]
как сделать если переменная AFK_Time больше 60 то игроку который написал сообщение выводилось что этот игрок афк больше минуты

pepysteamДата: Пятница, 16.08.2013, 00:30 | Сообщение # 1461
Новенький
Группа: Пользователи
Сообщений: 16
Награды: 0
Город: Бельцы
Репутация: 0
Замечания: 0%
Статус:
Подскажите как создать свою анимацию на свой самп сервер
_BigSm0ke_Дата: Пятница, 16.08.2013, 02:33 | Сообщение # 1462
Местный
Группа: I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус:
можно ли редактировать стандартное казино? например скриптово отследить на какое число в рулетке поставил игрок или считать ставку сделанную игроком или сделать чтобы на ставку тратились не стандартные деньги а что-либо еще из переменной?
Или же если нельзя, то у меня есть мысль сделать рулетку из кликабельных текстдравов, только там получится оочень много их и думаю, не залагает ли сервак?) Или может уже есть какие-то готовые системы казино?



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


Сообщение отредактировал _BigSm0ke_ - Пятница, 16.08.2013, 02:36
GeryyДата: Пятница, 16.08.2013, 02:56 | Сообщение # 1463
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Цитата (artemganin1999)
как сделать если переменная AFK_Time больше 60 то игроку который написал сообщение выводилось что этот игрок афк больше минуты

if(AFK_Time[giveplayerid] > 60) return SendClientMessage(playerid, COLOR_WHITE, "этот игрок афк больше минуты.");

Добавлено (16.08.2013, 02:56)
---------------------------------------------
Цитата (_BigSm0ke_)
можно ли редактировать стандартное казино? например скриптово отследить на какое число в рулетке поставил игрок или считать ставку сделанную игроком или сделать чтобы на ставку тратились не стандартные деньги а что-либо еще из переменной?
Или же если нельзя, то у меня есть мысль сделать рулетку из кликабельных текстдравов, только там получится оочень много их и думаю, не залагает ли сервак?) Или может уже есть какие-то готовые системы казино?


Стандартное редактировать нельзя, но можно создать свое используя текстдравы. Готовые варианты тоже есть, видел фс покер, рулетка, автоматы бандит надо просто искать



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

Сообщение отредактировал Geryy - Пятница, 16.08.2013, 03:12
artemganin1999Дата: Пятница, 16.08.2013, 11:11 | Сообщение # 1464
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
Цитата (Geryy)
if(AFK_Time[giveplayerid] > 60) return SendClientMessage(playerid, COLOR_WHITE, "этот игрок афк больше минуты.");

с вставил
Код
   if(AFK_Time[giveplayerid] > 60) return SendClientMessage(playerid, COLOR_RED, "Этот игрок афк больше 1 минуты.");
    if(pMute[giveplayerid] > 0) return SendClientMessage(playerid, COLOR_RED, "Этот игрок заткнут,он не может вам ответить.");

и у меня вылезло
Код
C:\Users\Артем\Desktop\PX\gamemodes\ParadoX.pwn(15670) : error 028: invalid subscript (not an array or too many subscripts): "AFK_Time"
C:\Users\Артем\Desktop\PX\gamemodes\ParadoX.pwn(15670) : warning 215: expression has no effect
C:\Users\Артем\Desktop\PX\gamemodes\ParadoX.pwn(15670) : error 001: expected token: ";", but found "]"
C:\Users\Артем\Desktop\PX\gamemodes\ParadoX.pwn(15670) : error 029: invalid expression, assumed zero
C:\Users\Артем\Desktop\PX\gamemodes\ParadoX.pwn(15670) : fatal error 107: too many error messages on one line

Добавлено (16.08.2013, 11:11)
---------------------------------------------
вот у меня переменная афк

Код
if(PlayerAFK[i][AFK_Time] > MAX_AFK_TIME)
   {
    SendClientMessage(i, MK_COLOR,"AFK System: Вы были кикнуты за состояние AFK более 40-ка минут.");
    OnPlayerSave(i);
    Kick(i);
    continue;
   }

GeryyДата: Пятница, 16.08.2013, 14:34 | Сообщение # 1465
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
if(PlayerAFK[giveplayerid][AFK_Time] > MAX_AFK_TIME) return SendClientMessage(playerid, COLOR_WHITE, "этот игрок афк больше минуты.");

Вставить после строки:
if (!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE,"{FF0000}[Îøèáêà]{ffffff} Èãðîêà íåò íà ñåðâåðå!");



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
artemganin1999Дата: Пятница, 16.08.2013, 21:57 | Сообщение # 1466
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
вылезает тоже самое

Добавлено (16.08.2013, 16:24)
---------------------------------------------
а понял

Добавлено (16.08.2013, 16:26)
---------------------------------------------
а как сделать на счет мута

Добавлено (16.08.2013, 16:36)
---------------------------------------------
вроде бы разобрался, пойду проверять

Добавлено (16.08.2013, 21:57)
---------------------------------------------
Все норм, спс, а у тебя есть скайп?

FabervoxДата: Суббота, 17.08.2013, 12:07 | Сообщение # 1467
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 235
Награды: 1
Город: Краматорск
Репутация: 217
Замечания: 0%
Статус:
Цитата (pepysteam)
Подскажите как создать свою анимацию на свой самп сервер

Да не, в сампе можно только если ты клиент допилишь и всем раздашь. Вот в мта возможно есть такое, но как сделать там не знаю.




RP в мире - как мух в сортире, а нужного чуда не видать покуда..©_Z_
Как посмотришь, сколько тысяч строчек кода, в одном файле, сразу понимаешь почему моды делают годами.
Закон сохранения сложности
artemganin1999Дата: Суббота, 17.08.2013, 18:01 | Сообщение # 1468
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
В общем поставил завод/заглушку движка на 2 , заводится норм но не заглушается
http://pastebin.com/SRDuvhcC

Raymond_WestДата: Суббота, 17.08.2013, 19:13 | Сообщение # 1469
Освоившийся
Группа: Продвинутые
Сообщений: 117
Награды: 6
Город: Черкассы
Репутация: 185
Замечания: 20%
Статус:
Всем привет, столкнулся с такой проблемой
При запуске мода все норм, как только заходит игрок пишет:

[17:19:48] [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"
[17:19:48] [debug] Stack pointer (STK) is 0xFADF1C, heap pointer (HEA) is 0xFB639C
[17:19:48] [debug] AMX backtrace:
[17:19:48] [debug] #0 ???????? in public MP_OPC () from SSRP07_No.amx
[17:19:48] [debug] #1 native CallLocalFunction () [00471c30] from samp-server.exe
[17:19:48] [debug] #2 ???????? in public OnPlayerConnect () from SSRP07_No.amx

Добавлено (17.08.2013, 19:13)
---------------------------------------------
Всем спасибо решил сам.
Добавил #pragma dynamic
З.Ы Надо оптимизировать код )

artemganin1999Дата: Понедельник, 19.08.2013, 10:20 | Сообщение # 1470
Уверенный в себе
Группа: Пользователи
Сообщений: 184
Награды: 0
Репутация: -28
Замечания: 0%
Статус:
в общем есть одна проблема, у меня сервер на хостинге, на файлах, доступ по ftp , сервер на файлах, я захотел установить UCP, пришлось установить на хостинг сайтов, как соединить ? Дело было нечего пробовал в pawno (знал что не сработает, просто так)
Код
format(string, sizeof(string), "ftp://мой ftp логин на хостинге сайтов:мой пароль@мой сайт.com/Accounts/%s.ini", playername);

Добавлено (17.08.2013, 22:08)
---------------------------------------------
как связать(

Добавлено (19.08.2013, 10:20)
---------------------------------------------
up

Поиск:





 


 


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