В этой теме вы сможете получить ответы, на многие ваши вопросы по 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]
CheSTR, Нужно учесть еще, что \t используется по сути консольный, а он криво высчитывает табуляцию. Подобное решал в консольном софте вычислением длины строки и разбития текста, дополненного до конца пробелами на 3 колонки.
То есть тот текст в строке, который нужно разделить на 3 колонки оборачивал как SetConsoleWidth(120); SetConsoleColumns(3);
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
Кто знает, как можно установить гангзоны на нейтральный цвет(Не захвачены типо). На данный момент они принадлежат каждая, своей банде. А нужно как бы обнулить их.
Проблема с удалением объектов, использую RemoveBuildingForPlayer, нужно удалить около 30-40 штук, выбираю объект, его id, вписываю код его удаления, и ставлю радиус 500, чтоб вокруг тоже все лишнее убралось, но исчезает только один объект, как ни увеличивай радиус, все вокруг на месте..
John_RUS;514230]Проблема с удалением объектов, использую RemoveBuildingForPlayer, нужно удалить около 30-40 штук, выбираю объект, его id, вписываю код его удаления, и ставлю радиус 500, чтоб вокруг тоже все лишнее убралось, но исчезает только один объект, как ни увеличивай радиус, все вокруг на месте..
Это радиус видимости, удалять объекты нужно каждый по своему ID, а если объекты большие то и их лоды тоже.
Всем привет! Хотел задать вопрос о укорачивании кода(Дабы редактировать было легче) Вот я например, переписываю систему регистрации на SQlite Но в OnPlayerRegister у меня уже довольно большая строчка вышла с запросом к бд. Можно ли ее укоротить? Приведу пример как раз из того кода что нужно укоротить для легкого редактирования: [pwn]format(str,500,"INSERT INTO `USERS` (`NAME`, `PASSWORD`, `MONEY`, `LVL`, 'ADMIN', 'SEX', 'TUT', 'REG', 'SKIN', 'MODEL', 'HOUSE', 'BIZ', 'OCHKO', 'TEL', 'FCAR') VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", GN(playerid), inputtext, PINFO[playerid][pCash], PINFO[playerid][pLVL], PINFO[playerid][pAdminLVL], PINFO[playerid][pSex], PINFO[playerid][pTut], PINFO[playerid][pReg], PINFO[playerid][pSkin][0], PINFO[playerid][pModel], PINFO[playerid][pHouse], PINFO[playerid][pBiznes], PINFO[playerid][pOchko], PINFO[playerid][pNomerMobile], PINFO[playerid][pFuelcar]); db_query(users_base, str);[/pwn]
Как видите, я сделал PINFO в столбик, а не в строчку как это можно было бы написать по стандарту. Из-за этого мне легче редактировать код и вносить нововведения.
А что же можно сделать с о строчкой [pwn]format(str,500,"INSERT INTO `USERS` (`NAME`, `PASSWORD`, `MONEY`, `LVL`, 'ADMIN', 'SEX', 'TUT', 'REG', 'SKIN', 'MODEL', 'HOUSE', 'BIZ', 'OCHKO', 'TEL', 'FCAR') VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",[/pwn]
Ее будет очень сложно редактировать когда появится еще больше PINFO, т.к. она будет уходить в право дальше и дальше.
C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\pawno\include\utils.inc(52) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(13858) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(13904) : warning 219: local variable "PlayerName" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(14069) : warning 215: expression has no effect C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16843) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16857) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16871) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16886) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16900) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16914) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16928) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16942) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16956) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16976) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(16993) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(17007) : warning 219: local variable "name" shadows a variable at a preceding level C:\Users\Сергей\Desktop\4513_drift-dreams\Drift Dreams\gamemodes\DD.pwn(17021) : warning 219: local variable "name" shadows a variable at a preceding level Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Header size: 5636 bytes Code size: 1731852 bytes Data size: 7066304 bytes Stack/heap size: 16384 bytes; estimated max. usage: unknown, due to recursion Total requirements: 8820176 bytes
4o_kavo, "warning 219: local variable "..." shadows a variable at a preceding level" значит что ты дважды или более раз задал переменную name(ищи "new name;"(скорее всего new name[MAX_PLAYER_NAME]), "new PlayerName"(скорее всего new PlayerName[MAX_PLAYER_NAME])( и удаляй лишнее)
Сообщение отредактировал sehrget - Четверг, 13.02.2014, 21:46
Здравствуйте, у меня такая проблема, скачал мод, не могу его запустить, выдаёт [cut noguest=ошибку][11:08:25] *** Streamer Plugin: Include file version (0x26104) does not match plugin version (0x26105) (script needs to be recompiled with the latest include file) [11:08:25] [gamemodes\mgw.amx]: During execution of OnGameModeInit: [11:08:25] [gamemodes\mgw.amx]: Run time error 19: "File or function is not found" [11:08:25] [gamemodes\mgw.amx]: During execution of main: [11:08:25] [gamemodes\mgw.amx]: Run time error 19: "File or function is not found" [11:08:25] Script[gamemodes/mgw.amx]: Run time error 19: "File or function is not found"[/cut], что делать подскажите пожалуйста.
И ещё, кому не трудно, исправьте в самом моде MyGame, за ранее спасибо за помощь!)
Я уже наверно заколебал всех с этим кораблем =) Итак, мои попытки заставить его плавать по координатам без каких либо команд, ничем не увенчались, набрел на испанцев где они мутили НЛО которое кружит над зоной 51, перекопипастил его под свои задачи: В начало:
Код
forward movimento();
После OnFilterscriptUnit вставил паблик
Код
public movimento() { new Float:x,Float:y,Float:z; GetObjectPos(PartyShip, x, y, z); if( x == -1789.76 && y == 1582.29) && z == 7.0) //>>>>>>156строка с ошибками { MoveObject(PartyShip,-1641.53, 1540.57, 7.0,5.00); } }
И в OnPlayerCommandText команда запуска и таймер проверки каждые 5 секунд:
D:\Games\GTA Series\GTA San Andreas\SA-MP\samp03z_svr_RC3_win32\filterscripts\PartyShip.pwn(156) : error 029: invalid expression, assumed zero D:\Games\GTA Series\GTA San Andreas\SA-MP\samp03z_svr_RC3_win32\filterscripts\PartyShip.pwn(156) : warning 215: expression has no effect D:\Games\GTA Series\GTA San Andreas\SA-MP\samp03z_svr_RC3_win32\filterscripts\PartyShip.pwn(156) : error 001: expected token: ";", but found ")" D:\Games\GTA Series\GTA San Andreas\SA-MP\samp03z_svr_RC3_win32\filterscripts\PartyShip.pwn(156) : error 029: invalid expression, assumed zero D:\Games\GTA Series\GTA San Andreas\SA-MP\samp03z_svr_RC3_win32\filterscripts\PartyShip.pwn(156) : fatal error 107: too many error messages on one line
Добавлено (15.02.2014, 17:05) --------------------------------------------- Погуглил, немного сообразил, удалил скобочку и запилил ; Не уходят D:\Games\GTA Series\GTA San Andreas\SA-MP\samp03z_svr_RC3_win32\filterscripts\PartyShip.pwn(156) : error 029: invalid expression, assumed zero D:\Games\GTA Series\GTA San Andreas\SA-MP\samp03z_svr_RC3_win32\filterscripts\PartyShip.pwn(156) : warning 215: expression has no effect
D:\Games\GTA Series\GTA San Andreas\SA-MP\samp03z_svr_RC3_win32\filterscripts\PartyShip.pwn(156) : error 029: invalid expression, assumed zero D:\Games\GTA Series\GTA San Andreas\SA-MP\samp03z_svr_RC3_win32\filterscripts\PartyShip.pwn(156) : warning 215: expression has no effect
Кол-во скобок перепроверь.
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^