Перейти к содержанию

Поиск сообщества

Показаны результаты для тегов 'форум crmp'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Информационный раздел
    • Новости портала
    • Техническая поддержка
    • Приватный форум
  • CRMP 0.3е
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Дополнительные скрипты
    • Мануалы/Уроки
    • Модификации
    • Поиск
    • Архив Вопросов/Проблем/Ошибок
    • Файловый архив
    • Другое
  • SAMP/CRMP 0.3.7
    • Помощь по Скриптингу
    • Ошибки
    • Готовые сервера
    • Плагины
    • Поиск
    • Документация
  • Другое
    • Флейм

Поиск результатов в...

Поиск результатов, которые содержат...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Найдено: 837 результатов

  1. Rondek

    Радар

    Радар для ГИБДДшников Команды : /setradar /delradar https://yadi.sk/d/2MYqOUb-hPm9j
  2. Rondek

    [FS]Жезл

    Скрипт,который добавит на ваш сервер жезл -Команда /baton Ссылку забыл : https://yadi.sk/d/kghJGZi0hPjsF
  3. когда выходишь полоска бензина не пропадает,из авто вышел а бензин остается Основа геймер, помогите решить проблему, где искать и как с этим бороться?
  4. Karpyha

    СГУ

    if(newkeys == 2 && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) //проверяем нажатую кнопку и если игрок находится за рулем ид кнопки гудка { if(GetPlayerVehicleID(playerid) == 1) //ид авто - т.е. ид авто на котором будет работать крякалка { for(new i=0; i{ if(ProxDetectorS(15.0, playerid, i))//если игрок находится рядом с найденным по циклу, то.. { if(zvonok[i] == 1) return 0; //проверка "Запущен ли звук или нет?" PlayAudioStreamForPlayer(i,"http://kazahskaya-music.ru/songs-online/sgu_zvuk");//запускаем звук SetTimer("zvon", 5000, false); //создадим таймер по которому будет отключатся звук (я задал отключение через 5 сек. настраивайте время сами) zvonok[i] = 1; //ставим переменную zvonok на 1 от флуда звуком } } } } Ошибки: C:\Users\?????\Desktop\????\??? ??????????\111\gamemodes\razrab.pwn(2759) : error 010: invalid function or declaration C:\Users\?????\Desktop\????\??? ??????????\111\gamemodes\razrab.pwn(2761) : error 010: invalid function or declaration C:\Users\?????\Desktop\????\??? ??????????\111\gamemodes\razrab.pwn(2763) : error 010: invalid function or declaration C:\Users\?????\Desktop\????\??? ??????????\111\gamemodes\razrab.pwn(2764) : error 010: invalid function or declaration C:\Users\?????\Desktop\????\??? ??????????\111\gamemodes\razrab.pwn(2766) : error 010: invalid function or declaration строка 2759: if(newkeys == 2 && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) //проверяем нажатую кнопку и если игрок находится за рулем ид кнопки гудка строка 2761: if(GetPlayerVehicleID(playerid) == 1) //ид авто - т.е. ид авто на котором будет работать крякалка строка 2763: for(new i=0; i{ 2764 if(ProxDetectorS(15.0, playerid, i))//если игрок находится рядом с найденным по циклу, то.. { строка 2766 if(zvonok[i] == 1) return 0; //проверка "Запущен ли звук или нет?" P.S я не понимаю что хочет от меня эта ошибка, помогите пожалуйста.
  5. Нашёл на просторах интернета к моему мнению полезный скрипт.Мне кажется он послужит для проектов в стиле Survival/RPG. Чтобы выбросить оружие нужно нажать на кнопку "N" Чтобы подобрать оружие нужно просто присесть. ?Автор скрипта:Manifest ?Автор переделки:EgasVegas P.S чтобы не писали что я сделал в этом скрипте.Я убрал некоторые "Warning" и подредактировал дроп оружия. DropItem.amx DropItem.pwn
  6. #define HOST "localhost" #define User "root" #define DbName "CRS" #define MySQLPass "" Вроде сделал все правильно. Но в логах ошибка [22:39:12] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on 'localhost' (10061) [22:39:13] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on 'localhost' (10061) [22:39:13] [ERROR] CMySQLQuery::Execute[Oulirovani(i)] - (error #2006) MySQL server has gone away [22:39:14] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on 'localhost' (10061) [22:39:14] [ERROR] CMySQLQuery::Execute[Loadmysqlcar(i)] - (error #2006) MySQL server has gone away [22:39:15] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on 'localhost' (10061) [22:39:15] [ERROR] CMySQLQuery::Execute[Loadmysql3d(i)] - (error #2006) MySQL server has gone away [22:39:16] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on 'localhost' (10061)
  7. С какого мода можно вырезать нормальную систему личного ТС? (MySQL)
  8. Aleksandr_Fedosov

    error 017: undefined symbol "GN"

    Доброго времени суток Уважаемые форумчане нужна ваша помощь Я начал ставить данную систему И пошли ошибки следующие gamemodes\new.pwn(40694) : error 017: undefined symbol "GN" Что означает переменная GN в данной системе? И чем её можно заменить? Основа мода Omsk RP Заранее спасибо
  9. Predator

    Speedcam

    Скрипт, который добавит на ваш сервер радары. Радары созданы в скрипте, что бы добавить свои, вам надо открыть файл speedcam.pwn и добавить свои. Автор: неизвестно Speedcam by cr-mp.ru.rar
  10. Нашел на просторах интернета динамическую систему бизнесов. Проверено на моде GTRP и new.pwn. Для начала ко всем enum добавим: enum bInfo { bBusName[64], bOwner[MAX_PLAYER_NAME], bPrice, bLock, bInterior, bVirtWorld, bPick, Text3D:bText, Float:bX, Float:bY, Float:bZ }; new BusinessInfo[250][bInfo];//250 макс. кол-во бизнесов new AllBiz;//всего бизнесов new LString[128]; enum biInfo//информация берётся из bInts { biInt, Float:biX, Float:biY, Float:biZ, biName[15], } new bInts[][biInfo]= { {4,457.304748,-88.428497,999.554687,"Название бизнеса"},//4 это инт,дальше координаты появления в интерьере и название бизнеса {5,454.973937,-110.104995,1000.077209,"Своё название"}, {15,207.737991,-109.019996,1005.132812,"Своё название"}, {5,226.293991,-7.431529,1002.210937,"Своё название"}, {4,286.800994,-82.547599,1001.515625,"Своё название"}, {5,772.111999,-3.898649,1000.728820,"Своё название"}, {15,2215.454833,-1147.475585,1025.796875,"Своё название"}, {2,1204.809936,-11.586799,1000.921875,"Своё название"}, {17,493.390991,-22.722799,1000.679687,"Своё название"}}; Далее в конец мода: stock LoadBiz() { new ids[32],str[64]; new iniOpens = ini_openFile("biz.cfg"); ini_getInteger(iniOpens, "AllBiz", AllBiz); ini_closeFile(iniOpens); if(AllBiz != 0) { for(new biz = 1; biz <= AllBiz; biz++) { format(ids,sizeof(ids),"biz/%d.ini",biz); new inihOpen = ini_openFile(ids); ini_getString(inihOpen, "bBusName", str); format(BusinessInfo[biz][bBusName],24,"%s",str); ini_getString(inihOpen, "bOwner", str); format(BusinessInfo[biz][bOwner],24,"%s",str); ini_getInteger(inihOpen, "bPrice", BusinessInfo[biz][bPrice]); ini_getInteger(inihOpen, "bLock", BusinessInfo[biz][bLock]); ini_getInteger(inihOpen, "bInterior", BusinessInfo[biz][bInterior]); ini_getInteger(inihOpen, "bVirtWorld", BusinessInfo[biz][bVirtWorld]); ini_getFloat(inihOpen, "bX", BusinessInfo[biz][bX]); ini_getFloat(inihOpen, "bY", BusinessInfo[biz][bY]); ini_getFloat(inihOpen, "bZ", BusinessInfo[biz][bZ]); ini_closeFile(inihOpen); if(!strcmp(BusinessInfo[biz][bOwner],"Nones",true))//Если нет владельца { BusinessInfo[biz][bPick] = CreatePickup(1274, 23, BusinessInfo[biz][bX], BusinessInfo[biz][bY], BusinessInfo[biz][bZ], 0);//Создаём Пикап format(LString,128,"Бизнес\n%s\nЦена: $%d", BusinessInfo[biz][bBusName], BusinessInfo[biz][bPrice]);//Форматируем BusinessInfo[biz][bText] = Create3DTextLabel(LString, 0xFFFFFFFF, BusinessInfo[biz][bX], BusinessInfo[biz][bY], BusinessInfo[biz][bZ] + 0.5, 10.0, 0, 0);//Создаём 3DText } else//Иначе { BusinessInfo[biz][bPick] = CreatePickup(1274, 23, BusinessInfo[biz][bX], BusinessInfo[biz][bY], BusinessInfo[biz][bZ],0);//Создаём Пикап format(LString, 128, "Бизнес\n%s\nВладелец: %s", BusinessInfo[biz][bBusName],BusinessInfo[biz][bOwner]);//Форматируем BusinessInfo[biz][bText] = Create3DTextLabel(LString, 0xFFFFFFFF, BusinessInfo[biz][bX], BusinessInfo[biz][bY], BusinessInfo[biz][bZ] +0.5, 10.0, 0, 0);//Создаём 3DText } } printf("Бизнесов загружено: %d",AllBiz); } return 1; } stock UpdateBusiness(b) { DestroyPickup(BusinessInfo[b][bPick]);//Удаляем Пикап if(!strcmp(BusinessInfo[b][bOwner],"Nones",true))//Если нет владельца { BusinessInfo[b][bPick] = CreatePickup(1274, 23, BusinessInfo[b][bX], BusinessInfo[b][bY], BusinessInfo[b][bZ],0);//Создаём Пикап format(LString, 128, "Бизнес\n%s\nЦена: $%d", BusinessInfo[b][bBusName], BusinessInfo[b][bPrice]);//Форматируем Update3DTextLabelText(BusinessInfo[b][bText],0xFFFFFFFF,LString);//Обновляем 3DText } else//Иначе { BusinessInfo[b][bPick] = CreatePickup(1274, 23, BusinessInfo[b][bX], BusinessInfo[b][bY], BusinessInfo[b][bZ], 0);//Создаём Пикап format(LString,128,"Бизнес\n%s\nВладелец: %s",BusinessInfo[b][bBusName],BusinessInfo[b][bOwner]);//Форматируем Update3DTextLabelText(BusinessInfo[b][bText],0xFFFFFFFF,LString);//Обновляем 3DText } } stock SaveBusiness(biz) { new ids[32]; format(ids,sizeof(ids),"biz/%d.ini",biz); new inihOpen; inihOpen = ini_openFile(ids); if(inihOpen == -1 || inihOpen == -2) inihOpen = ini_createFile(ids); ini_setString(inihOpen, "bBusName", BusinessInfo[biz][bBusName]); ini_setString(inihOpen, "bOwner", BusinessInfo[biz][bOwner]); ini_setInteger(inihOpen, "bPrice", BusinessInfo[biz][bPrice]); ini_setInteger(inihOpen, "bLock", BusinessInfo[biz][bLock]); ini_setInteger(inihOpen, "bInterior", BusinessInfo[biz][bInterior]); ini_setInteger(inihOpen, "bVirtWorld", BusinessInfo[biz][bVirtWorld]); ini_setFloat(inihOpen, "bZ", BusinessInfo[biz][bZ]); ini_setFloat(inihOpen, "bX", BusinessInfo[biz][bX]); ini_setFloat(inihOpen, "bY", BusinessInfo[biz][bY]); ini_closeFile(inihOpen); return 1; } В OnGameModeInit: LoadBiz(); Далее добавим несколько команд, для этого в OnPlayerCommandText добавим: if(strcmp("/benter", cmdtext, true, 6) == 0) { for(new b = 1; b <= AllBiz; b++)//Для всех Бизнесов { if(!IsPlayerInRangeOfPoint(playerid, 1.5, BusinessInfo[b][bX], BusinessInfo[b][bY], BusinessInfo[b][bZ])) continue; if(strcmp(BusinessInfo[b][bOwner],GN(playerid), true) !=0 && BusinessInfo[b][bLock] == 1) return SendClientMessage(playerid,-1,"Бизнес закрыт.");//Если закрыт SetPlayerPos(playerid, bInts[BusinessInfo[b][bInterior]][biX], bInts[BusinessInfo[b][bInterior]][biY], bInts[BusinessInfo[b][bInterior]][biZ]);//Устанавливаем позицию игроку SetPlayerInterior(playerid, bInts[BusinessInfo[b][bInterior]][biInt]);//Устанавливаем интерьер игроку SetPlayerVirtualWorld(playerid, BusinessInfo[b][bVirtWorld]);//Устанавливаем виртуальный мир игроку } return true; } if(strcmp("/bexit", cmdtext, true, 5) == 0) { for(new b = 1; b <= AllBiz; b++)//Для всех Бизнесов { if(IsPlayerInRangeOfPoint(playerid, 5.0, bInts[BusinessInfo[b][bInterior]][biX], bInts[BusinessInfo[b][bInterior]][biY], bInts[BusinessInfo[b][bInterior]][biZ]) && GetPlayerVirtualWorld(playerid) == BusinessInfo[b][bVirtWorld])//Если в радиусе 5 метров от выхода((Координат входа)) { SetPlayerPos(playerid, BusinessInfo[b][bX],BusinessInfo[b][bY],BusinessInfo[b][bZ]);//Устанавливаем позицию игроку SetPlayerVirtualWorld(playerid,0);//Устанавливаем виртуальный мир игроку SetPlayerInterior(playerid,0);//Устанавливаем интерьер игроку } } return true; } if(strcmp("/buybus", cmdtext, true, 9) == 0) { for(new b = 1; b <= AllBiz; b++)//Для всех Бизнесов { if(!IsPlayerInRangeOfPoint(playerid, 1.5, BusinessInfo[b][bX], BusinessInfo[b][bY], BusinessInfo[b][bZ])) continue; if(PlayerInfo[playerid][pMoney] < BusinessInfo[b][bPrice]) return SendClientMessage(playerid,-1,"У вас не достаточно наличных средств, для покупки."); //Если не достаточно денег if(strcmp(BusinessInfo[b][bOwner], "Nones",true) != 0) return SendClientMessage(playerid,-1,"Бизнес не продаётся."); //Если есть Владелец strmid(BusinessInfo[b][bOwner], GN(playerid), 0, 24, 24);//Устанавливаем Владельца UpdateBusiness(b);//Обновляем SaveBusiness(b); //Сохраняем GivePlayerMoney(playerid,-BusinessInfo[b][bPrice]); //Отнимаем сумму SendClientMessage(playerid,-1,"Поздравляем с покупкой"); return true; } SendClientMessage(playerid,-1,"Подойдите к Бизнесу который желаете купить."); return true; } if(strcmp("/sellbus", cmdtext, true, 10) == 0) { for(new b = 1; b <= AllBiz; b++)//Для всех Бизнесов { if(!IsPlayerInRangeOfPoint(playerid, 1.5, BusinessInfo[b][bX], BusinessInfo[b][bY], BusinessInfo[b][bZ])) continue; if(!strcmp(BusinessInfo[b][bOwner], GN(playerid), true)) { strmid(BusinessInfo[b][bOwner], "Nones", 0, 5, 5);//Убираем владельца с Бизнеса UpdateBusiness(b);//Обновляем SaveBusiness(b);//Сохраняем GivePlayerMoney(playerid,BusinessInfo[b][bPrice]/2);//Даём игроку 1/2 стоимости Бизнеса SendClientMessage(playerid,-1,"Вы продали свой Бизнес государству. За 1/2 его стоимости."); return true; } } return true; } if(strcmp("/addbus", cmdtext, true, 13) == 0) { if(PlayerInfo[playerid][pAdministrator] == 10) { return ShowPlayerDialog(playerid,2000,DIALOG_STYLE_INPUT,"Название","Введите название:","Далее","Отмена");//Выводим Диалог } } Далее добавим диалоги, для этого в OnDialogResponse вставим: if(dialogid == 2000) { if(response)//Если продолжаем { if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2000, DIALOG_STYLE_INPUT, "Название", "Введите название:", "Далее","Отмена");//Если не введено - повторяем SetPVarString(playerid, "b_name", inputtext);//Записываем ShowPlayerDialog(playerid, 2001, DIALOG_STYLE_INPUT, "Стоимость", "Введите стоимость Бизнеса:", "Далее", "Отмена");//Показываем Диалог с Ценой } } if(dialogid == 2001) { if(response)//Если продолжаем { if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2001, DIALOG_STYLE_INPUT, "Стоимость", "Введите стоимость бизнеса:","Далее","Назад");//Если не введено - повторяем SetPVarInt(playerid, "b_price", strval(inputtext)); LString = ""; for(new i; i < sizeof(bInts); i++) { strcat(LString, bInts[i][biName]); strcat(LString, "\n"); } ShowPlayerDialog(playerid, 2002, DIALOG_STYLE_LIST, "Интерьер", LString, "Далее", "Назад");//Показываем Диалог с выбором Интерьера } else DeletePVar(playerid, "b_name"), ShowPlayerDialog(playerid, 2000, DIALOG_STYLE_INPUT, "Название","Введите название:", "Далее", "Отмена");//Иначе } if(dialogid == 2002) { if(response)//Если продолжаем { SetPVarInt(playerid, "b_int", listitem); ShowPlayerDialog(playerid, 2003, DIALOG_STYLE_MSGBOX, "Подтверждение", "Вы действительно желаете создать Бизнес?", "V", "X");//Подтверждаем } else DeletePVar(playerid, "b_price"), ShowPlayerDialog(playerid, 2001, DIALOG_STYLE_INPUT, "Стоимость", "Введите стоимость Бизнеса:", "Далее", "Назад");//Иначе } if(dialogid == 2003) { if(response)//Если продолжаем { AllBiz++;//КОл-во Бизнесов плюсуем new inihOpen = ini_openFile("biz.cfg"); ini_setInteger(inihOpen, "AllBiz", AllBiz); ini_closeFile(inihOpen); new Float:x[3], str[64]; GetPlayerPos(playerid, x[0], x[1], x[2]);//Получаем позицию GetPVarString(playerid, "b_name", str, 64); BusinessInfo[AllBiz][bX] = x[0];//Присваиваем Координату X BusinessInfo[AllBiz][bY] = x[1];//Присваиваем Координату Y BusinessInfo[AllBiz][bZ] = x[2];//Присваиваем Координату Z BusinessInfo[AllBiz][bPrice] = GetPVarInt(playerid, "b_price");//Присваиваем Цену BusinessInfo[AllBiz][bInterior] = GetPVarInt(playerid, "b_int");//Присваиваем Интерьер BusinessInfo[AllBiz][bVirtWorld] = AllBiz;//Присваиваем Виртуальный Мир strmid(BusinessInfo[AllBiz][bBusName], str, 0, 32, 32);//Присваиваем Имя strmid(BusinessInfo[AllBiz][bOwner], "Nones", 0, 24, 24);//Присваиваем Владельца "Nones" SaveBusiness(AllBiz);//Сохраняем BusinessInfo[AllBiz][bPick] = CreatePickup(1274,23,x[0],x[1],x[2],0);//Создаём Пикап format(LString, 128, "Бизнес\n%s\nЦена: $%d", BusinessInfo[AllBiz][bBusName], BusinessInfo[AllBiz][bPrice]);//Форматируем BusinessInfo[AllBiz][bText] = Create3DTextLabel(LString, 0xFFFFFFFF, x[0], x[1], x[2] + 0.5, 10.0, 0, 0);//Создаём 3DText GameTextForPlayer(playerid, "~w~Бизнес ~g~Создан",100,1); DeletePVar(playerid, "b_price"); DeletePVar(playerid, "b_name"); DeletePVar(playerid, "b_int"); } else DeletePVar(playerid,"b_price"), DeletePVar(playerid, "b_name"), DeletePVar(playerid, "b_int");//Иначе } В папке scriptfiles создайте файл biz.cfg и впишите туда allbiz = 0. И создайте папку biz, туда они будут сохранятся. Автор: Лев Попов Автор переделки: Basis
  11. Predator

    Анти-мат

    Добрый вечер всем пользователям cr-mp.ru! Хочу представить вам анти-мат. Начнем! Ко всем new добавим: new BadWords[2][] = { "ваши запрещенные слова","ваши запрещенные слова" }; И в OnPlayerText: for(new w; w < sizeof(BadWords); w++) if(strfind(text,BadWords[w],true) != -1) return SendClientMessage(playerid,-1,"Не ругайтесь матом!") & 0; Автор: Amfy(во всяком случае он выложил данный урок и автора не указал)
  12. CRMP1

    fatal error 100: cannot read from file

    Ошибка вот. fatal error 100: cannot read from file: "includes/foreach" если удаляю его с павно выходят другие. Вот все. #include "includes/foreach" #include "includes/zcmd" #include "includes/sscanf2" #include "includes/a_mysql" #include "includes/streamer" #include "includes/Y_MD5" #include "includes/cyberchat"
  13. Predator

    Логотип сервера

    Приветствую всех пользователей, Представляю вашему вниманию логотип сервера. Приступим! Ко всем переменным добавим: new Text:Textdraw0; new Text:Textdraw1; Далее В OnGameModeinit: Textdraw0 = TextDrawCreate(509.667083, 421.452026, "cr-mp.ru"); TextDrawLetterSize(Textdraw0, 0.452666, 2.043852); TextDrawTextSize(Textdraw0, -23.666669, 97.066665); TextDrawAlignment(Textdraw0, 1); TextDrawColor(Textdraw0, -65281); TextDrawSetShadow(Textdraw0, 0); TextDrawSetOutline(Textdraw0, 1); TextDrawBackgroundColor(Textdraw0, -2147483393); TextDrawFont(Textdraw0, 3); TextDrawSetProportional(Textdraw0, 1); Textdraw1 = TextDrawCreate(507.666625, 422.537109, "usebox"); TextDrawLetterSize(Textdraw1, 0.000000, 1.987859); TextDrawTextSize(Textdraw1, 633.000183, 0.000000); TextDrawAlignment(Textdraw1, 1); TextDrawColor(Textdraw1, 0); TextDrawUseBox(Textdraw1, true); TextDrawBoxColor(Textdraw1, -1061109505); TextDrawSetShadow(Textdraw1, 0); TextDrawSetOutline(Textdraw1, 0); TextDrawFont(Textdraw1, 0); И В onplayerconnect: TextDrawShowForPlayer(playerid,Textdraw0); TextDrawShowForPlayer(playerid,Textdraw1); Автор: TheSelton Тема закрыта! Нет активности!
  14. ЗИЛ 130, нашёл хорошую модельку, думаю кому-либо пригодится. Заменяет yankee Автор мне неизвестен. скачать VT
  15. Danil Golovchanski

    error 017: undefined symbol "cKey"

    Здравствуйте помогите пожалуйста с командой "/addcar" у меня её нету мод "FARME" я хочу вырезать её с другога сервера вот только не знаю что вырезать саму команду попробовал нифега врезал из "crmp-7,7,3" C:\Users\ASUS\Desktop\????? ?????\??? ???\gamemodes\CRMP.pwn(61328) : error 017: undefined symbol "cKey" C:\Users\ASUS\Desktop\????? ?????\??? ???\gamemodes\CRMP.pwn(61335) : warning 202: number of arguments does not match definition
  16. Выкладываю скрипт системы достижения.При выполнении достижения - вам даётся определенное кол-во денег и выполняется достижение. Начнем: В enum pInfo добавить: pDostig, pDostigg, pDostiggg, pDostigggg В public OnPlayerConnect: PlayerInfo[playerid][pDostig] = 0; PlayerInfo[playerid][pDostigg] = 0; PlayerInfo[playerid][pDostiggg] = 0; PlayerInfo[playerid][pDostigggg] = 0; В public OnPlayerUpdate, ну или в любой таймер. ( желательно секундный ): if(PlayerInfo[playerid][pDostig] == 0) { if(PlayerInfo[playerid][pDostig] == 1) return 1; if(PlayerInfo[playerid][pDrugs] > 99) SendClientMessage(playerid, -1, "Ты выполнил(а) достижение {0080FF}№1{FFFFFF}. Приз: {0080FF}1OOOO$"), PlayerInfo[playerid][pDostig] = 1, GivePlayerMoney(playerid, 10000); } if(PlayerInfo[playerid][pDostigg] == 0) { if(PlayerInfo[playerid][pDostigg] == 1) return 1; if(PlayerInfo[playerid][pMats] > 9999) SendClientMessage(playerid, -1, "Ты выполнил(а) достижение {0080FF}№2{FFFFFF}. Приз: {0080FF}55OO$"), PlayerInfo[playerid][pDostigg] = 1, GivePlayerMoney(playerid, 5500); } if(PlayerInfo[playerid][pDostiggg] == 0) { if(PlayerInfo[playerid][pDostiggg] == 1) return 1; if(PlayerInfo[playerid][pLevel] > 2) SendClientMessage(playerid, -1, "Ты выполнил(а) достижение {0080FF}№3{FFFFFF}. Приз: {0080FF}1OOOO$"), PlayerInfo[playerid][pDostiggg] = 1, GivePlayerMoney(playerid, 10000); } if(PlayerInfo[playerid][pDostigggg] == 0) { if(PlayerInfo[playerid][pDostigggg] == 1) return 1; if(PlayerInfo[playerid][pMoney] > 499999) SendClientMessage(playerid, -1, "Ты выполнил(а) достижение {0080FF}№4{FFFFFF}. Приз: {0080FF}3O.OOO$"), PlayerInfo[playerid][pDostigggg] = 1, GivePlayerMoney(playerid, 30000); } В public OnPlayerRegister format(var, 64, "Dostig=%d\n",PlayerInfo[playerid][pDostig]);fwrite(hFile, var); format(var, 64, "Dostigg=%d\n",PlayerInfo[playerid][pDostigg]);fwrite(hFile, var); format(var, 64, "Dostiggg=%d\n",PlayerInfo[playerid][pDostiggg]);fwrite(hFile, var); format(var, 64, "Dostigggg=%d\n",PlayerInfo[playerid][pDostigggg]);fwrite(hFile, var); Добавим в public OnPlayerUpdate вот это: format(var, 64, "Dostig=%d\n",PlayerInfo[playerid][pDostig]);fwrite(hFile, var); format(var, 64, "Dostigg=%d\n",PlayerInfo[playerid][pDostigg]);fwrite(hFile, var); format(var, 64, "Dostiggg=%d\n",PlayerInfo[playerid][pDostiggg]);fwrite(hFile, var); format(var, 64, "Dostigggg=%d\n",PlayerInfo[playerid][pDostigggg]);fwrite(hFile, var); В public OnPlayerLogin добавим: if( strcmp( key , "Dostig" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDostig] = strval( val ); } if( strcmp( key , "Dostigg" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDostigg] = strval( val ); } if( strcmp( key , "Dostiggg" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDostiggg] = strval( val ); } if( strcmp( key , "Dostigggg" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDostiggg] = strval( val ); } В public OnPlayerCommandText: else if(strcmp(cmd, "/dostig", true) == 0) return ShowPlayerDostigDialog(playerid); Ко всем стокам/пабликам: stock ShowPlayerDostigDialog(playerid) { new text[50], text2[50], text3[50], text4[50]; switch(PlayerInfo[playerid][pDostig]) { case 0: { text = "{FF3300}Не выполнено"; } case 1: { text = "{33AA33}Выполнено"; } } switch(PlayerInfo[playerid][pDostigg]) { case 0: { text2 = "{FF3300}Не выполнено"; } case 1: { text2 = "{33AA33}Выполнено"; } } switch(PlayerInfo[playerid][pDostiggg]) { case 0: { text3 = "{FF3300}Не выполнено"; } case 1: { text3 = "{33AA33}Выполнено"; } } switch(PlayerInfo[playerid][pDostigggg]) { case 0: { text4 = "{FF3300}Не выполнено"; } case 1: { text4 = "{33AA33}Выполнено"; } } new string[1024], s[1024]; format(s, sizeof(s), "{C3C3C3}1. %s{C3C3C3}. Тебе нужно иметь более {FF3300}1OO{C3C3C3} грамм наркотиков при себе, чтобы выполнить это достижение. Приз: {33AA33}1OOOO${C3C3C3}\n\n", text); strcat(string, s); format(s, sizeof(s), "{C3C3C3}2. %s{C3C3C3}. Тебе нужно иметь более {FF3300}1OOOO{C3C3C3} материалов, чтобы выполнить это достижение. Приз: {33AA33}55OO${C3C3C3}\n\n", text2); strcat(string, s); format(s, sizeof(s), "{C3C3C3}3. %s{C3C3C3}. Тебе нужно получить {FF3300}3{C3C3C3} уровень, чтобы выполнить это достижение. Приз: {33AA33}1OOOO${C3C3C3}\n\n", text3); strcat(string, s); format(s, sizeof(s), "{C3C3C3}4. %s{C3C3C3}. Тебе нужно получить {FF3300}5OOOOO{C3C3C3} денег, чтобы выполнить это достижение. Приз: {33AA33}3OOOO$", text4); strcat(string, s); ShowDialog(playerid, DOST_ID, DIALOG_STYLE_MSGBOX, " ", string, "Назад","Закрыть"); return 1; }
  17. Нашёл на просторах интернета систему рюкзака для SA:MP, решил перевести на CR:MP. Команды: /invent - открыть инвентарь /addinv - пополнить инвентарь P.S ни на одном форуме o CR:MP. Автор не известен. Items.amx Items.pwn
  18. Karpyha

    error 017: undefined symbol "iniClose"

    вообщем вот сам диалог: //????? if(dialogid == 2484) { new donate; new file = ini_openFile("donate.ini"); if(ini_getInteger(file, inputtext, donate) == 0) { if(donate == 1) // FIND (NOT MONEY) (DONATERANK) { SendClientMessage(playerid,COLOR_GRAD2,"VIP ??????? ???????????"); ini_removeKey(file,inputtext); PlayerInfo[playerid][pDonateRank] = 1; return 1; } else if(donate == 2) // FIND (NOT MONEY) (LEVEL) { SendClientMessage(playerid,COLOR_GRAD2,"??? ??????? ?????? ?? 1 ???????"); ini_removeKey(file,inputtext); PlayerInfo[playerid][pLevel] += 1; return 1; } else if(donate == 3) { SendClientMessage(playerid,COLOR_GRAD2,"?????? ??? ?????????? ????? ??????????????"); ini_removeKey(file,inputtext); new randphone = 1000 + random(9999);//minimum 1000 max 9999 //giving one at the start PlayerInfo[playerid][pPnumber] = randphone; return 1; } else if(donate == 4) { SendClientMessage(playerid,COLOR_GRAD2,"?? ???????? 100 000"); ini_removeKey(file,inputtext); GivePlayerMoney(playerid, 100000); return 1; } else if(donate == 5) { SendClientMessage(playerid,COLOR_GRAD2,"?? ???????? 500 000"); ini_removeKey(file,inputtext); GivePlayerMoney(playerid, 500000); return 1; } else if(donate == 6) { SendClientMessage(playerid,COLOR_GRAD2,"?? ???????? 1 000 000"); ini_removeKey(file,inputtext); GivePlayerMoney(playerid, 1000000); return 1; } else if(donate == 7) { SendClientMessage(playerid,COLOR_GRAD2,"?? ???????? 3 000 000"); ini_removeKey(file,inputtext); GivePlayerMoney(playerid, 3000000); return 1; } ini_removeKey(file,inputtext); SendClientMessage(playerid,COLOR_GRAD2,"??????? ?? ?????????????"); } else { SendClientMessage(playerid,COLOR_GRAD2,"???????? ???"); } iniClose(file); } строка: iniClose(file); в ней ошибка... C:\Users\?????\Desktop\????\??? ??????????\111\gamemodes\razrab.pwn(3902) : error 017: undefined symbol "iniClose" Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 1 Error. как быть?,
  19. Emiliano

    sscanf error: System not initialised.

    [20:27:05] Number of vehicle models: 0 [20:27:26] [death] Ivan_Voropaev died 255 [20:27:40] sscanf error: System not initialised. [20:27:41] sscanf error: System not initialised. [20:27:42] sscanf error: System not initialised. [20:28:18] [part] Ivan_Voropaev has left the server (0:1 Как исправить Error ???????????????
  20. #Kot

    error 014: invalid statement; not in switch

    В общем проблема конечно мелкая,ну что-то догнать все не могу. Паблик public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) Ошибки: Строка(код) case 232: { if(response) { if(GetPVarInt(playerid,"JOB1") == 1) return send(playerid, "Ошибка! Вы уже здесь работаете."); SetPVarInt(playerid,"JOB1" ,1); SetPVarInt(playerid,"Yash" ,0); SetPVarInt(playerid,"YASHIK",0); SetPlayerSkin(playerid, 16); DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, 2848.1050,-2452.1558,12.1007, 2.0); SendClientMessage(playerid, COLOR_GREEN, "{e49b0f}Рабочий день начат."); } } Что за ошибки знаю,ну все равно догнать не могу... Ошибка строки: case 232:
  21. ко всем new new ReadPm[MAX_PLAYERS] new sendername[MAX_PLAYER_NAME]; ReadPm[playerid] = 0; при добавление этого значение вызывает много проблем: new sendername[MAX_PLAYER_NAME]; если убрать то одно. new ReadPm[MAX_PLAYERS] ReadPm[playerid] = 0; razrab.pwn(535) : error 001: expected token: ";", but found "-identifier-" Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase сама строка ошибки: ReadPm[playerid] = 0; как быть ребят?
  22. Здравствуйте я не пойму предупреждение 202 и 213.... вроде сделано всё нормально (в игре работает), но в павно выдает последующие предупреждение. C:\Users\?????\Desktop\????\??? ??????????\111\gamemodes\razrab.pwn(10723) : warning 202: number of arguments does not match definition C:\Users\?????\Desktop\????\??? ??????????\111\gamemodes\razrab.pwn(17422) : warning 213: tag mismatch C:\Users\?????\Desktop\????\??? ??????????\111\gamemodes\razrab.pwn(17422) : warning 202: number of arguments does not match definition сами строки: строка 10723: SetPlayerPos(playerid, -424.2004,627.8239,12.1944,88.9426); что это?, я не понимаю обычные координаты... предупреждение x2 с 202 и 213 сама строка: строка 14422 pdd = CreatePickup(1239,2155.7573,-2196.1357,23.3069); // пикап Ребят подскажите, координаты ведь правильно прописываю.
  23. Karpyha

    warning 215: expression has no effect

    Всем привет, создаю номера на т/с с диалогом "выбора региона" Как можно сократить данный текст?, я не понимаю как. //============================================================================== if(strcmp(cmd, "/nomer", true) == 0) { ShowPlayerDialog(playerid,832,2,"Номера регионов","01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n62\n63\n64\n65\n66\n67\n68\n69\n70\n71\n72\n73\n74\n75\n76\n77\n78\n79\n80\n81\n82\n83\n84\n85\n86\n87\n88\n89\n90\n91\n92\n93\n94\n95\n96\n97\n98\n99\n102\n113\n116\n121\n123\n124\n125\n134\n136\n138\n142\n150\n152\n154\n159\n161\n163\n164\n169\n173\n174\n177\n178\n186\n190\n196\n197\n199\n725\n750\n777\n790\n797","Выбрать","Закрыть"); return true; } Вот вроде все записано регионы, но, выдает ошибку павно. C:\Users\Серый\Desktop\игры\Мои разработки\111\gamemodes\razrab.pwn(48667) : warning 215: expression has no effect C:\Users\Серый\Desktop\игры\Мои разработки\111\gamemodes\razrab.pwn(48667) : error 001: expected token: ";", but found "\" C:\Users\Серый\Desktop\игры\Мои разработки\111\gamemodes\razrab.pwn(48667) : error 029: invalid expression, assumed zero C:\Users\Серый\Desktop\игры\Мои разработки\111\gamemodes\razrab.pwn(48667) : fatal error 107: too many error messages on one line C:\Users\Серый\Desktop\игры\Мои разработки\111\gamemodes\razrab.pwn(48666) : error 075: input line too long (after substitutions) C:\Users\Серый\Desktop\игры\Мои разработки\111\gamemodes\razrab.pwn(48667) : error 037: invalid string (possibly non-terminated string Что и как действовать? я не знаю, подскажите умные люди. Впервые создал диалог, все нормально сделал, но вот эта строка с номером выдает ошибки.
  24. Так, как у нас нету этого урока, решил его выложить. Все источники и авторы указаны ниже. Данный урок есть на официальном сайте www.sa-mp.com Автор статьи: newbienoob Что нам понадобиться в этой статье: - Mysql plugin - Whirlpool Начнем: 1. Ко всем include: #include <a_samp> #include <a_mysql> 2. Ко всем define: #define host "localhost" //ваш хост mysql. По умолчанию localhost #define user "root" //имя пользователя mysql #define db "server" //название базы данных #define pass "" //Ваш пароль mysql #define dregister 6287 //диалог регистрации #define dlogin 6288 // диалог авторизации 3. К глобальным переменным: static mysql, //переменная будет использоваться для управления в базе Name[MAX_PLAYERS][24], //для хранения имени игрока. IP[MAX_PLAYERS][16] //для хранения игрока ip. ; native WP_Hash(buffer[], len, const str[]); enum PDATA { ID, //для хранения игрока ID из базы данных, поэтому мы можем использовать его в любом месте позже Password[129],//загрузка пароля игрока в этот varible из базы данных Admin, //загрузка игрока на уровне администратора из базы данных в этой переменной VIP, //загрузка уровня VIP игрока из базы данных в этой переменной Money, //загрузка денег игрока из базы данных в этой переменной Float:posX, //загрузка X позиции игрока из базы данных в этой переменной Float:posY, //загрузка Y позиции игрока из базы данных в этой переменной Float:posZ //загрузка Z позиции игрока из базы данных в этой переменной } new pInfo[MAX_PLAYERS][PDATA]; //Переменная для хранения всего, что перечислили выше 4. В public OnGameModeInit(): mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG); //включаем отладку, так мы можем выявить проблемы(если есть) mysql = mysql_connect(host, user, db, pass); //подключение сервера к базе данных. if(mysql_errno(mysql) != 0) print("Не удалось подключиться к базе данных!"); //ошибка о подключении к БД, проверьте правильно ли вы ввели свои данные 5. В public OnPlayerConnect(playedid): new query[128]; //запрос GetPlayerName(playerid, Name[playerid], 24); //Получение имени игрока GetPlayerIp(playerid, IP[playerid], 16); //Получение IP игрока mysql_format(mysql, query, sizeof(query),"SELECT `Password`, `ID` FROM `players` WHERE `Username` = '%e' LIMIT 1", Name[playerid]); mysql_tquery(mysql, query, "OnAccountCheck", "i", playerid); 6. В конце скрипта создаем public: forward OnAccountCheck(playerid); public OnAccountCheck(playerid) { new rows, fields; cache_get_data(rows, fields, mysql); if(rows) //если есть строка {//затем cache_get_field_content(0, "PASS", pInfo[playerid][Password], mysql, 129); //загружаем пароль игрока в pInfo[playerid][Password], используемый в регистрации pInfo[playerid][ID] = cache_get_field_content_int(0, "ID"); //загрузка ID игрока в pInfo[playerid][ID] printf("%s", pInfo[playerid][Password]); ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_INPUT, "Авторизация", "Для того чтобы начать игру, необходимо авторизоваться", "Вход", "Выйти"); //Обнаружили аккаунт, показываем данный диалог } else //если аккаунта нет { ShowPlayerDialog(playerid, dregister, DIALOG_STYLE_INPUT, "регистрация", "Для того, чтобы начать игру, Вам необходимо зарегистрироваться.", "регистрация", "Выйти"); //То показываем этот диалог регистрации аккаунта } return 1; } forward OnAccountLoad(playerid); forward OnAccountRegister(playerid); public OnAccountLoad(playerid) { pInfo[playerid][Admin] = cache_get_field_content_int(0, "Admin"); pInfo[playerid][VIP] = cache_get_field_content_int(0, "VIP"); pInfo[playerid][Money] = cache_get_field_content_int(0, "Money"); pInfo[playerid][posX] = cache_get_field_content_float(0, "PosX"); pInfo[playerid][posY] = cache_get_field_content_float(0, "PosY"); pInfo[playerid][posZ] = cache_get_field_content_float(0, "PosZ"); GivePlayerMoney(playerid, pInfo[playerid][Money]);//деньги SendClientMessage(playerid, -1, "Успешный вход!"); //Успешный вход в аккаунт return 1; } public OnAccountRegister(playerid) { pInfo[playerid][ID] = cache_insert_id(); //загружает ID игрока в переменную, после того, как он зарегистрировался. printf("New account registered. ID: %d", pInfo[playerid][ID]); return 1; } 7. В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]): switch(dialogid) { case dlogin: //диалоговое окно входа в систему { if(!response) return Kick(playerid); //если нажал выйти - кикает new hpass[129]; //для хэширования паролей new query[100]; // для форматирования нашего запроса WP_Hash(hpass, 129, inputtext); //хеширования inputtext if(!strcmp(hpass, pInfo[playerid][Password])) { mysql_format(mysql, query, sizeof(query), "SELECT * FROM `players` WHERE `Username` = '%e' LIMIT 1", Name[playerid]); mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid); } else { ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_INPUT, "Авторизация", "Чтобы начать игру необходимо вести пароль", "Вход", "Выйти"); } } case dregister: //диалог регистрации { if(!response) return Kick(playerid); //если нажали выйти, мы будем кикать их if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, dregister, DIALOG_STYLE_INPUT, "Регистрация", "Для того, чтобы играть, Вам необходимо зарегистрироваться.\nВаш пароль должен быть не менее 6 символов!", "Регистрация", "Выйти"); //strlen проверяет длину строки, если игрок вводит свой пароль, который ниже, чем 6 символов, то выводим данное сообщение new query[300]; WP_Hash(pInfo[playerid][Password], 129, inputtext); mysql_format(mysql, query, sizeof(query), "INSERT INTO `players` (`Username`, `Password`, `IP`, `Admin`, `VIP`, `Money`, `PosX` ,`PosY`, `PosZ`) VALUES ('%e', '%s', '%s', 0, 0, 0, 0.0, 0.0, 0.0)", Name[playerid], pInfo[playerid][Password], IP[playerid]); mysql_tquery(mysql, query, "OnAccountRegister", "i", playerid); } } 8. В public OnPlayerDisconnect(playerid, reason): new query[128], Float:pos[3]; //query[128] для форматирования нашего запроса и Float:pos[3] Для получения и сохранения позиции игрока GetPlayerPos(playerid, pos[0], pos[1], pos[2]); //добавление позиции игрока, когда они покидают сервер mysql_format(mysql, query, sizeof(query), "UPDATE `players` SET `Admin`=%d, `VIP`=%d, `Money`=%d, `posX`=%f, `posY`=%f, `posZ`=%f WHERE `ID`=%d",\ pInfo[playerid][Admin], pInfo[playerid][VIP], pInfo[playerid][Money], pos[0], pos[1], pos[2], pInfo[playerid][ID]); //Обновляем таблицу игроков mysql_tquery(mysql, query, "", ""); 9. В public OnPlayerSpawn(playerid): SetPlayerPos(playerid, pInfo[playerid][posX], pInfo[playerid][posY], pInfo[playerid][posZ]); //Установка позиции игрока к последнему сохранению позиций. Перевод комментариев может быть не точным, а также может отсутствовать совсем. Кто шарит по английски, смотрите оригинальную тему. Пишите свои поправки в тему, исправлю. Оригинальная статья: Нажимай, чтобы посмотреть
  25. Поскольку в настоящий момент обрели популярность работы с использованием функций замены текстур SetObjectMaterial(), считаю нужным расставить точки над i и оповестить о нескольких нюансах работы этой функции. Для начала - немного теоретической части для общего понимания механизма рендера движком моделей, и начнем с рендера SA без учета мультиплеера. Как многим известно, информация о моделях и их расположении подгружается движком из IDE (Item DEfinition file) и IPL (Item PLacement file) соответственно. Более того, масштабные модели имеют низкополигональную версию - LOD, который отрисовывается раньше основной модели и перестает отрисовываться при достижении нужного радиуса рендера. Соответственно, механика процесса такова: - игрок попал в зону отрисовки LOD: отрисовывается LOD. - игрок из зоны отрисовки LOD переходит в зону основного рендера: LOD выгружается из памяти и в рендере более не участвует до следующего вызова, рендерится основная модель. - игрок из зоны рендера основной модели переходит в зону рендера LOD: основная модель выгружается из памяти, рендерится LOD. - игрок выходит из зоны рендера LOD: LOD выгружается из памяти и в рендере не участвует. Созданные сервером объекты LOD не рендерят - серверу неоткуда брать информацию о нужном LOD. Поэтому схема упрощается: - игрок попал в зону основного рендера: рендерится основная модель. - игрок из зоны рендера основной модели выходит: основная модель выгружается из памяти (учитывая наличие стримера: оригинальная схема модели не выгружает, но жестко лимитирует их количество, выделяя память специально для них). Как можно заметить, без необходимости модель не занимает места в ОЗУ, тем самым экономя ресурсы. Основная проблема SetObjectMaterial (и производных, SetObjectMaterialText, к примеру) - она НЕ ВЫГРУЖАЕТ модель из ОЗУ. Схема рендера получается неполной: - игрок попал в зону основного рендера: рендерится основная модель. - игрок из зоны рендера основной модели выходит: основная модель НЕ ВЫГРУЖАЕТСЯ из памяти, загаживая стек. Стек не бесконечен. В случае SA максимально возможное количество используемой ОЗУ колеблется в районе 1.6ГБ. В случае переполнения стека движок пытается обратиться к участку памяти, доступа к которому у него нет, вследствие чего клиент падает с ошибкой, именуемой в народе "С++". Чрезмерное использование SetObjectMaterial еще больше увеличивает шансы выхода за пределы стека. Посему один небольшой совет: используйте функцию только там, где это действительно необходимо. К слову, корректно эта функция не работает даже на свежем SA:MP 0.3.7. Disclaimer: - использование данного материала без явного разрешения автора запрещено; - использование данного материала без явного указания автора, даже при его явном согласии, запрещено. От автора: я бы предложил закрепить в шапке, но это уже на усмотрение остальных.
×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.