 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Вопросы и ответы по 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
|
| |
|
|
|
 |
|
 | |
| |
|