 |
|
 |
|
|
|
Последние Файлы 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 |
| |
|
|
| Merbul | Дата: Пятница, 21.06.2013, 16:54 | Сообщение # 1051 |
|
Новенький
Группа:
Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Спасибо помог... А как AFK сделать?
|
| |
|
|
| Saibot | Дата: Пятница, 21.06.2013, 19:09 | Сообщение # 1052 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус: 
| Цитата (Merbul) А как AFK сделать? Вот [FS]
[FS] AFK
|
| |
|
|
| Merbul | Дата: Пятница, 21.06.2013, 20:45 | Сообщение # 1053 |
|
Новенький
Группа:
Пользователи
Сообщений: 71
Награды: 0
Репутация: -28
Замечания: 0%
Статус: 
| Вот этот цвет ганг зоны не могу сделать... Все изменял ганг зоны в .ini файле в самом моде все также... Даже этоу зону нельзя каптить Как это исправить? http://image.kz/vf811fe80e2ac84233d79d5f1e28accc7
|
| |
|
|
| mecheniy286 | Дата: Пятница, 21.06.2013, 22:03 | Сообщение # 1054 |
|
Новенький
Группа:
Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Замечания: 20%
Статус: 
| Код */ new statline1[550]; new statline2[600]; new statline3[300]; new statline4[300] new statline5[300] new statline6[400]; new statfull[2530]; new stattitle[64]; format(stattitle,sizeof(stattitle),"{9EC73D}Ñòàòèñòèêà èãðîêà: {EEEEFF}%s",name); format(statline1,sizeof(statline1),"Óðîâåíü: %d \nÏîë: %s \nÄåíüãè: $%d \n áàíêå: $%d \nÍîìåð Òåëåôîíà: %d \nÏðåìèóì àêêàóíò: %s \nÏèâî ñ ñîáîé: %d \n×èïñû ñ ñîáîé: %d",level,atext,cash,account,pnumber,drank,PlayerInfo[playerid][pPivo],PlayerInfo[playerid][pChips]); format(statline2,sizeof(statline2),"×àñîâ â èãðå: %d \nÑàìàÿ áîëüøàÿ ðûáà: %d \nÐàáîòà: %s \nÐåñïåêòû: %d/%d \nÍàðêîòèêè: %d \nÌàòåðèàëû: %d \nÊîìàíäà: %s \nÎðãàíèçàöèÿ: %s \nÐàíã: %s", ptime,bigfish,jtext,exp,expamount,drugs,mats,ttext,ftext,rtext); format(statline3,sizeof(statline3),"Òðàíñïîðò ¹1:[%s] \nÖåíà:[%d] \nÖâåò1:[%d] \nÖâåò2:[%d] \nÑòàòóñ çàìêà:[%d]", CarInfo[carkey][cDescription], CarInfo[carkey][cValue], CarInfo[carkey][cColorOne], CarInfo[carkey][cColorTwo], CarInfo[carkey][cLock]); format(statline4,sizeof(statline4),"Òðàíñïîðò ¹2:[%s] \nÖåíà:[%d] \nÖâåò1:[%d] \nÖâåò2:[%d] \nÑòàòóñ çàìêà:[%d]", CarInfo[carkey2][cDescription], CarInfo[carkey2][cValue], CarInfo[carkey2][cColorOne], CarInfo[carkey2][cColorTwo], CarInfo[carkey2][cLock]); format(statline5,sizeof(statline5),"Òðàíñïîðò ¹3:[%s] \nÖåíà:[%d] \nÖâåò1:[%d] \nÖâåò2:[%d] \nÑòàòóñ çàìêà:[%d]", CarInfo[carkey3][cDescription], CarInfo[carkey3][cValue], CarInfo[carkey3][cColorOne], CarInfo[carkey3][cColorTwo], CarInfo[carkey3][cLock]); format(statline6,sizeof(statline6),"(( Äîì [%d] \nÁèçíåñ [%d] \nÀâòî1 [%d] \nÀâòî2 [%d] \nÀâòî3 [%d] \nÀðåíäà [%d] \nÈíò:[%d] \nÂèðò.ìèð:[%d] \nnëîêàë[%d] ))", housekey,bizkey,carkey,carkey2,carkey3,HireCar[targetid],intir,virworld,local); format(statfull,sizeof(statfull),"%s\n%s\n%s\n%s\n%s\n%s", statline1, statline2, statline3, statline4, statline5, statline6); ShowPlayerDialog(playerid,10014,DIALOG_STYLE_MSGBOX,stattitle,statfull,"ÎÊ",""); Пишет Unknown Command при вводе /stats
|
| |
|
|
| Fen1ks | Дата: Пятница, 21.06.2013, 23:13 | Сообщение # 1055 |
|
Новенький
Группа:
Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Вот решил сделать защиту от FakeKill на основе защиты от спама которую мне написали) [pwn]public OnPlayerDeath(playerid, killerid, reason) { if(!GetPVarInt(playerid, "AntiFakeKill")) { SetPVarInt(playerid, "AntiFakeKill", 1); SetTimerEx("AntiFakeKill", 2000, 0, "d", playerid); } else { new af_warn = GetPVarInt(playerid, "AntiFakeKillWard"); af_warn++; if(af_warn > 4) format(string, sizeof(string), "Игрок %s был кикнут системой (FakeKill). ", PlayerName(playerid)); Kick(playerid); SetPVarInt(playerid, "AntiFloodWard", af_warn); } return true; }
forward AntiFakeKill(playerid); public AntiFakeKill(playerid) { if(GetPVarInt(playerid, "AntiFakeKill")) SetPVarInt(playerid, "AntiFakeKill", 0); return true; }[/pwn] Остался вопрос полная бредятина или будет работать? По идее если игрок умирает 4 раза за 2 секунды его кикнетДобавлено (21.06.2013, 23:13) --------------------------------------------- Решил сделать вот так: [pwn]public OnPlayerDeath(playerid, killerid, reason) { new string[128]; Scores[killerid]++; if(Logged[playerid] == 0) Kick(playerid); if(!GetPVarInt(playerid, "AntiFakeKill")) { SetPVarInt(playerid, "AntiFakeKill", 1); SetTimerEx("AntiFakeKill", 1000, 0, "d", playerid); } else { new af_warn = GetPVarInt(playerid, "AntiFakeKillWard"); af_warn++; if(af_warn > 4) format(string, sizeof(string), "Игрок %s был кикнут системой (FakeKill). ", PlayerName(playerid)); BanEx(playerid, "AntiDoS: FakeKill"); SetPVarInt(playerid, "AntiFloodWard", af_warn); } return true; } forward AntiFakeKill(playerid); public AntiFakeKill(playerid) { if(GetPVarInt(playerid, "AntiFakeKill")) SetPVarInt(playerid, "AntiFakeKill", 0); return true; }[/pwn] То-есть если игрок убивает 4 человек за 1 секунду его банит. Работоспособно?
|
| |
|
|
| DemonoloG | Дата: Пятница, 21.06.2013, 23:44 | Сообщение # 1056 |
|
Постоялец
Группа:
Продвинутые
Сообщений: 314
Награды: 2
Репутация: 178
Замечания: 0%
Статус: 
| Fen1ks, Цитата решил сделать защиту от FakeKill на основе защиты от спама Меня смущает эта фраза...
|
| |
|
|
| Fen1ks | Дата: Пятница, 21.06.2013, 23:50 | Сообщение # 1057 |
|
Новенький
Группа:
Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Цитата Меня смущает эта фраза... я о том же так то
|
| |
|
|
| DemonoloG | Дата: Суббота, 22.06.2013, 00:37 | Сообщение # 1058 |
|
Постоялец
Группа:
Продвинутые
Сообщений: 314
Награды: 2
Репутация: 178
Замечания: 0%
Статус: 
| Fen1ks, я не очень хороший скриптер (точнее даже никакой ), но скажу: там больше 4, т.е. банить будет при 5, 6 и т.д.
|
| |
|
|
| Geryy | Дата: Суббота, 22.06.2013, 01:00 | Сообщение # 1059 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| Цитата (Fen1ks) То-есть если игрок убивает 4 человек за 1 секунду его банит. Насколько я помню FakeKill - когда игрок сам себя убивает, но при этом смерть ему не защитывается. Позже в читах появилась функция назначить убийцу, тем самым можно было сделать подставу.
А если он будет использовать фейк-килл не за 1 сек. а через 3,4,5,6?
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
Сообщение отредактировал Geryy - Суббота, 22.06.2013, 01:26 |
| |
|
|
| Fen1ks | Дата: Суббота, 22.06.2013, 17:50 | Сообщение # 1060 |
|
Новенький
Группа:
Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| кароче защитка Г  Добавлено (22.06.2013, 17:49) --------------------------------------------- у меня другая проблема например игрок крашнул серв, защита флуд в чат о том что он кикнут, как предотвратить этот дурной флуд? Код: [pwn]new client[ 128 ]; public OnVehicleMod(playerid, vehicleid, componentid) { new vehicleide = GetVehicleModel(vehicleid); new modok = islegalcarmod(vehicleide, componentid); if (!modok) { new name1[ 12 ] ; GetPlayerName(playerid, name1, sizeof(name1)); format(client, sizeof(client), "Сервер: %s[%d]: использовал Crasher и был кикнут", name1, playerid); printf(client); Kick(playerid); }
return 1; }[/pwn] Добавлено (22.06.2013, 17:50) --------------------------------------------- защита флудит*
|
| |
|
|
| Desert | Дата: Воскресенье, 23.06.2013, 00:30 | Сообщение # 1061 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 669
Награды: 57
Город: Москва
Репутация: 1082
Замечания: 0%
Статус: 
| Fen1ks, PVar умеешь использовать?
|
| |
|
|
| Fen1ks | Дата: Воскресенье, 23.06.2013, 09:12 | Сообщение # 1062 |
|
Новенький
Группа:
Пользователи
Сообщений: 26
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Цитата PVar умеешь использовать? В том то и дело что нет)
|
| |
|
|
| sehrget | Дата: Воскресенье, 23.06.2013, 16:12 | Сообщение # 1063 |
|
Постоялец
Группа:
Продвинутые
Сообщений: 393
Награды: 2
Город: Украина\Черкассы
Замечания: 40%
Статус: 
| [pwn]new plrIP[16]; GetPlayerIp(playerid, plrIP, sizeof(plrIP)); dini_IntSet(string, "Last IP", plrIP);[/pwn] Код error 035: argument type mismatch (argument 3) Какого?
|
| |
|
|
| Geryy | Дата: Понедельник, 24.06.2013, 02:16 | Сообщение # 1064 |
|
Советчик
Группа:
Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус: 
| plrIP - строка, и ты пытаешься сохранять строку через dini_IntSet (как целое число). Надо через dini_Set(string, "Last IP", plrIP);
Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
|
| |
|
|
| forst5 | Дата: Понедельник, 24.06.2013, 07:46 | Сообщение # 1065 |
|
Новенький
Группа:
Пользователи
Сообщений: 48
Награды: 0
Город: NSK
Репутация: -10
Замечания: 0%
Статус: 
| Вот делаю ферму, комбайн работает хорошо, а тачка для сбора нет. Сажусь в неё она просто как фракционная. А нужно чтобы когда садишься появлялась красная фигня как на самп-рп. не подскажите?
Код if(newcar == FarmCar) { if(PlayerInfo[playerid][pFermajob] == 3 || PlayerInfo[playerid][pFerma] != 255 || PlayerInfo[playerid][pFermajob] == 2) { if(FarmWorks[playerid] == 1) { for(new f = 0; f < sizeof(FarmInfo); f++) { new carid = GetPlayerVehicleID(playerid); if((!(FarmInfo[f][fInCar] >= 1000)) && WithPickup[carid] == 1) { SendClientMessage(playerid, COLOR_GREY, "Ãðóçîâèê åù¸ íå çàïîëíåí"); RemovePlayerFromVehicleAc(playerid); return true; } else if(FarmInfo[f][fInCar] >= 1000) { Delete3DTextLabel(JobText2); DestroyPickup(collection); WithPickup[carid] = 0; SendClientMessage(playerid, COLOR_WHITE, "Ãðóçîâèê ïîëîí ðàçãðóçèòå íà ñêëàä!"); format(string, sizeof(string), " ãðóçîâèêå %d / 1000 ç¸ðåí", FarmInfo[f][fInCar]); SendClientMessage(playerid, COLOR_GREEN, string); RemovePlayerAttachedObject(playerid, 3); if(FarmInfo[f][fInCar] > 1000) FarmInfo[f][fInCar] = 1000; DisablePlayerCheckpoint(playerid); return true; } else { if(FarmInfo[f][fSownSeeds] <= 0) return SendClientMessage(playerid, COLOR_WHITE, "Íà ïîëå íåò óðîæàÿ!"); new rand; rand = random(sizeof(Venue)); WithPickup[carid] = 0; SetPlayerCheckpoint(playerid, Venue[rand][0], Venue[rand][1], Venue[rand][2], 5.0); CollectionStarted[playerid] = 1; format(string, sizeof(string), " ãðóçîâèêå %d / 1000 ç¸ðåí",FarmInfo[f][fInCar]); SendClientMessage(playerid, COLOR_GREEN, string); return true; } } } else { SendClientMessage(playerid, COLOR_GREY, "Âû íå ôåðìåð"); RemovePlayerFromVehicleAc(playerid); return true; } } else { SendClientMessage(playerid, COLOR_GREY, "Âû íå ôåðìåð"); RemovePlayerFromVehicleAc(playerid); return true; } } if(newcar == FarmCar) { if(PlayerInfo[playerid][pFermajob] == 3 || PlayerInfo[playerid][pFerma] != 255 || PlayerInfo[playerid][pFermajob] == 2) { if(FarmWorks[playerid] == 1) { for(new f = 0; f < sizeof(FarmInfo); f++) { if((!(FarmInfo[f][fInCar] >= 1000)) && WithPickup[newcar] == 1) { SendClientMessage(playerid, COLOR_GREY, "Ãðóçîâèê åù¸ íå çàïîëíåí!"); RemovePlayerFromVehicle(playerid); SendClientMessageToAll(COLOR_GREY, "Ðàáîòàåò 2"); return true; } else if(FarmInfo[f][fInCar] >= 1000) { Delete3DTextLabel(JobText2); DestroyPickup(collection); WithPickup[newcar] = 0; SendClientMessage(playerid, COLOR_WHITE,"Ãðóçîâèê ïîëîí ðàçãðóçèòå íà ñêëàä!"); format(string, sizeof(string), " ãðóçîâèêå %d / 1000 ç¸ðåí", FarmInfo[f][fInCar]); SendClientMessage(playerid, COLOR_GREEN, string); RemovePlayerAttachedObject(playerid, 3); if(FarmInfo[f][fInCar] > 1000) FarmInfo[f][fInCar] = 1000; DisablePlayerCheckpoint(playerid); SendClientMessageToAll(COLOR_GREY, "Ðàáîòàåò 3"); return true; } else { if(FarmInfo[f][fSownSeeds] <= 0) return SendClientMessage(playerid, COLOR_GREY, "Íà ïîëå íåò óðîæàÿ!"); new rand = random(4); WithPickup[newcar] = 0; SetPlayerCheckpoint(playerid, Venue[rand][0], Venue[rand][1], Venue[rand][2], 5); CollectionStarted[playerid] = 1; format(string, sizeof(string), " ãðóçîâèêå %d / 1000 ç¸ðåí", FarmInfo[f][fInCar]); SendClientMessage(playerid, COLOR_GREEN, string); SendClientMessageToAll(COLOR_GREY, "Ðàáîòàåò 4"); return true; } } } else { SendClientMessage(playerid, COLOR_GREY, "Âû íå ôåðìåð"); RemovePlayerFromVehicle(playerid); return true; } } else { SendClientMessage(playerid, COLOR_GREY, "Âû íå ôåðìåð"); RemovePlayerFromVehicle(playerid); return true; } }
|
| |
|
|
|
 |
|
 | |
| |
|