Поиск сообщества
Показаны результаты для тегов 'crmp'.
Найдено: 2,041 результат
-
Интерьер для Квартиры (Одна комната) CreateDynamicObject(19378, -2301.47, 357.37, -87.54, 0.00, 90.00, 0.00); CreateDynamicObject(19358, -2306.12, 354.31, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2304.43, 352.85, -85.73, 0.00, 0.00, 90.00); CreateDynamicObject(19358, -2306.12, 357.43, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2306.12, 360.63, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2304.60, 362.07, -85.73, 0.00, 0.00, 90.00); CreateDynamicObject(19358, -2301.40, 362.04, -85.73, 0.00, 0.00, 90.00); CreateDynamicObject(19358, -2299.71, 360.48, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2296.53, 357.46, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2296.53, 354.34, -85.73, 0.00, 0.00, 0.00); CreateDynamicObject(19358, -2298.13, 352.83, -85.73, 0.00, 0.00, 90.00); CreateDynamicObject(19358, -2301.26, 352.85, -85.72, 0.00, 0.00, 90.00); CreateDynamicObject(10165, -2304.11, 360.68, -86.66, 0.00, 0.00, 90.00); CreateDynamicObject(10178, -2300.81, 361.48, -86.21, 0.00, 0.00, 270.00); CreateDynamicObject(19173, -2304.14, 361.97, -85.35, 0.00, 0.00, 0.00); CreateDynamicObject(10266, -2305.55, 353.45, -87.07, 0.00, 0.00, 0.00); CreateDynamicObject(10267, -2305.52, 354.53, -86.95, 0.00, 0.00, 90.00); CreateDynamicObject(10200, -2303.99, 353.28, -87.45, 0.00, 0.00, 180.00); CreateDynamicObject(10206, -2302.98, 353.31, -87.45, 0.00, 0.00, 180.00); CreateDynamicObject(10204, -2302.87, 353.34, -85.14, 90.00, 0.00, 0.00); CreateDynamicObject(10271, -2297.09, 353.27, -86.86, 0.00, 0.00, 270.00); CreateDynamicObject(10256, -2296.93, 354.19, -86.26, 0.00, 0.00, 270.00); CreateDynamicObject(19377, -2301.54, 357.37, -84.05, 0.00, 90.00, 0.00); CreateDynamicObject(19358, -2298.01, 358.96, -85.73, 0.00, 0.00, 90.00); CreateDynamicObject(3172, -2305.43, 357.29, -86.98, 0.00, 0.00, 90.00); CreateDynamicObject(1744, -2305.64, 357.24, -86.19, 0.00, 0.00, 180.00); CreateDynamicObject(1738, -2305.22, 357.25, -86.47, 0.00, 0.00, 180.00); CreateDynamicObject(1748, -2305.26, 357.75, -86.47, 0.00, 0.00, 180.00); CreateDynamicObject(1743, -2305.39, 356.60, -86.25, 0.00, 0.00, 180.00); CreateDynamicObject(1747, -2305.57, 357.84, -86.34, 0.00, 0.00, 180.00); CreateDynamicObject(1747, -2305.57, 358.24, -86.34, 0.00, 0.00, 180.00); CreateDynamicObject(1742, -2304.35, 357.32, -86.94, 0.00, 0.00, 180.00); CreateDynamicObject(1491, -2296.84, 357.74, -87.45, 0.00, 0.00, 135.00); CreateDynamicObject(19358, -2297.06, 358.02, -85.73, 0.00, 0.00, 45.00); CreateDynamicObject(1416, -2297.32, 355.00, -86.97, 0.00, 0.00, 0.00); CreateDynamicObject(19172, -2306.03, 356.87, -85.19, 0.00, 0.00, 90.00); CreateDynamicObject(1748, -2291.63, 330.30, -86.54, 0.00, 0.00, 0.00);
- 7 ответов
-
- 8
-
-
- crmp
- всё для crmp
-
(и ещё 4 )
C тегом:
-
Удалено.
- 23 ответа
-
- 3
-
-
- crmp
- всё для crmp
- (и ещё 5 )
-
Здравствуйте ув. пользователи сайта gs-games , сегодня я вам расскажу о оптимизации игровых модов. Посмотрим как будет выгледеть обычная команда: if(strcmp(cmd,"/tskill",true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pTskill] > 1000){ PlayerInfo[playerid][pTskill] = 1000; } if(PlayerInfo[playerid][pTskill] < 0){ PlayerInfo[playerid][pTskill] = 0; } format(string,sizeof(string),"Ваш скилл : %d / 1000",PlayerInfo[playerid][pTskill]); SendClientMessage(playerid,COLOR_BLUE,string); return 1; } return 1; } Теперь посмотрите команду более оптимизированую: CMD:tskill(playerid, params[]) { if(!IsPlayerConnected(playerid)) return true; if(PlayerInfo[playerid][pTskill]>999) return PlayerInfo[playerid][pTskill]=1000; if(PlayerInfo[playerid][pTskill]<0) return PlayerInfo[playerid][pTskill]=0; format(string,sizeof(string),"Ваш скилл : %d / 1000",PlayerInfo[playerid][pTskill]); SendClientMessage(playerid,COLOR_BLUE,string); return true; } 1) Комманды станут короче и более оптимизированы. Диалоги: Диалог до оптимизации: if(dialogid == 99) { olololo=1; } if(dialogid == 88) { olololo=2; } После switch(dialogid) { case 99: olololo=1; case 88: olololo=2; return true; } Чем же это оптимизирует? А тем, что при сравнении сервер тоже использует память, и в итоге если этих диалогов будет не 2 как в примере, а 20000. То при поиске диалога сервер просто-напросто повиснет, а в случае со свичем он просто ищет диалог. То-есть он не проверяет каждую возможность, а просто берет число и ищет кейс с ним. На этом наш урок закончен Автор урока : [Ega29]
- 4 ответа
-
- 1
-
-
- всё для crmp
- pawn
-
(и ещё 5 )
C тегом:
-
Здраствуйте уважаемые пользователи Gs-Games. К вашему вниманию. Были скрипты Падающего снега. Но выглядело не очень. Я Сделал другой выход. Чтобы добавить снег в мод, нужно В public OnGameModeInit добавить: for(new x=-3000; x < 3000; x+=100) for(new y=-3000; y < 3000; y+=100) CreateDynamicObject(18864, x, y, 0.0, 0.0, 0.0, 0.0); Спасибо за внимание.
- 2 ответа
-
- всё для crmp
- pawn
-
(и ещё 5 )
C тегом:
-
Здраствуйте уважаемые пользыватели форума. Почему я решил мод выложить старой версий? да потому что задолбали все его продовать. Вообщем что есть в моде: Фракций. 1. Дпс 2.Фсб 3.Армия 4.Здравохранение 5. La costra nosta 6. РЖд 7. Правительство 8. Смотра 9. Репортеры 10. такси 11. Лицензеры 12. Итальянская мафий 13. непомню 14. Пожарная 15. русская мафия 16. Гопники 17. Уличные гонщики 18. Прокуратура 19. Батыревская братва 20. спецназ 21. южная братва 22. Атп 23. ППС 2. система бизнесов 3. Система авто - gamer 4. система домов - gamer 5. Система Обучение 6. Много команд :D 7. система подездов ну и другие системы. p.s чтоб удалить все дома /asellhousedom вроде. CRMP RP v7.0.9.zip
-
Добрый День Форумчане... Вот решил выложить интерьер который не понадобился в моем моде... Он хорошо подойдет для Respawna или же Гостиницы... Вообщем смотрим фото: CreateDynamicObject(19450, 2516.09, -2134.89, 10.91, 0.00, 0.00, 0.00); CreateDynamicObject(19450, 2516.09, -2125.29, 10.91, 0.00, 0.00, 0.00); CreateDynamicObject(19450, 2520.79, -2139.73, 10.91, 0.00, 0.00, 90.00); CreateDynamicObject(19450, 2530.29, -2139.72, 10.91, 0.00, 0.00, 90.00); CreateDynamicObject(19450, 2535.11, -2136.44, 10.91, 0.00, 0.00, 0.00); CreateDynamicObject(19450, 2535.17, -2122.50, 10.91, 0.00, 0.00, 0.00); CreateDynamicObject(19450, 2520.97, -2120.59, 10.91, 0.00, 0.00, 90.00); CreateDynamicObject(19450, 2530.57, -2120.59, 10.91, 0.00, 0.00, 90.00); CreateDynamicObject(19378, 2528.53, -2135.27, 9.11, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2518.92, -2135.22, 9.11, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2518.94, -2124.80, 9.11, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2528.52, -2124.82, 9.11, 0.00, -90.00, 90.00); CreateDynamicObject(19377, 2530.27, -2135.39, 12.57, 0.00, -90.00, 90.00); CreateDynamicObject(19377, 2530.29, -2124.91, 12.57, 0.00, -90.00, 90.00); CreateDynamicObject(19377, 2520.58, -2135.35, 12.57, 0.00, -90.00, 90.00); CreateDynamicObject(19377, 2520.75, -2124.89, 12.57, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.34, -2136.65, 9.24, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.34, -2126.17, 9.24, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.65, -2126.07, 9.42, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.66, -2136.52, 9.42, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.89, -2136.50, 9.60, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2529.89, -2126.03, 9.60, 0.00, -90.00, 90.00); CreateDynamicObject(18755, 2537.07, -2129.47, 11.36, 0.00, 0.00, 0.00); CreateDynamicObject(18756, 2537.05, -2129.42, 11.36, 0.00, 0.00, 0.00); CreateDynamicObject(18757, 2537.07, -2129.40, 11.36, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2535.05, -2134.26, 9.50, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2535.04, -2138.31, 9.50, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2535.13, -2126.47, 9.50, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2535.12, -2122.87, 9.50, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2530.87, -2139.66, 9.50, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2525.19, -2139.68, 9.50, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2525.20, -2120.70, 9.50, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2531.09, -2120.68, 9.50, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2521.68, -2120.68, 9.18, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2521.82, -2139.69, 9.18, 0.00, 0.00, 0.00); CreateDynamicObject(1504, 2518.11, -2139.68, 9.18, 0.00, 0.00, 0.00); CreateDynamicObject(19404, 2517.60, -2123.78, 10.91, 0.00, 0.00, -90.00); CreateDynamicObject(19450, 2519.13, -2119.03, 10.91, 0.00, 0.00, 0.00); CreateDynamicObject(19466, 2517.74, -2123.72, 12.01, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2519.20, -2122.78, 9.18, 0.00, 0.00, 90.00); CreateDynamicObject(1504, 2519.08, -2122.80, 9.18, 0.00, 0.00, 90.00); CreateDynamicObject(1749, 2517.57, -2123.19, 9.66, 0.00, 0.00, -90.00); CreateDynamicObject(1744, 2517.56, -2123.11, 10.44, 0.00, 0.00, -90.00); CreateDynamicObject(1742, 2517.57, -2121.90, 9.77, 0.00, 0.00, -90.00); CreateDynamicObject(1746, 2516.67, -2137.51, 9.66, 0.00, 0.00, -180.00); CreateDynamicObject(1746, 2516.71, -2133.82, 9.66, 0.00, 0.00, -180.00); CreateDynamicObject(19174, 2516.19, -2133.78, 11.29, 0.00, 0.00, 90.00); CreateDynamicObject(19175, 2516.15, -2125.59, 11.29, 0.00, 0.00, 90.00); CreateDynamicObject(19173, 2516.20, -2137.65, 11.29, 0.00, 0.00, 90.00); CreateDynamicObject(1536, 2516.16, -2131.24, 9.19, 0.00, 0.00, 90.00); CreateDynamicObject(1536, 2516.12, -2128.30, 9.19, 0.00, 0.00, 270.00); CreateDynamicObject(19378, 2518.92, -2135.22, 9.05, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2518.94, -2124.80, 9.05, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2528.52, -2124.82, 9.08, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2528.53, -2135.27, 9.04, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2539.50, -2125.57, 9.60, 0.00, -90.00, 90.00); CreateDynamicObject(19378, 2539.51, -2136.05, 9.60, 0.00, -90.00, 90.00);
- 5 ответов
-
- 7
-
-
- crmp
- всё для crmp
-
(и ещё 4 )
C тегом:
-
Здраствуйте уважаемые пользователи форума. Хочу вам предоставить свой урок КПП на мосту. Я делал его для своего сервера что бы серверу придать больше РП. Пост Расположен на начале моста со стороны Южного. Этот пост могут открывать только 2 фракции. Когда сотрудников ПО нету на сервере пост открыт. Скрин как это выглядит:
- 9 ответов
-
- 1
-
-
- всё для crmp
- pawn
-
(и ещё 6 )
C тегом:
-
Мануал Решение проблемы: Run time error 19: "File or function is not found"
Гость опубликовал теме в Готовые решения
1. Забыли скомпилировать мод Заходи в папку gamemodes и открывай .pwn файл и нажимай клавишу F5 2.Мод не до конца скомпилировался, или amx. файл поврежден Проверяем размер amx. файла, если 0 кб, значит ошибка компиляции. Проблема в исходном коде, или ошибка запуска компилятора. Запускайте pawncc.exe от имени администратора. 3.У вас нету в моде "точки входа" (функция main) Открываем мод и добавляем в любое место: ( не в stock и не public естественно ) main(){} 4.У вас не установлена программы на компьютере NET Framework или Microsoft Visual C++ Гуглим то и другое, качаем. 5.Не прописаны в server.cfg плагины (нужно проверить используются в моде они или нет для начала) Заходим в папку с сервером и находим файл server.cfg и если у вас нету строки plugins, то добавляем в конце plugins Имя плагина Если у вас стоит Linux то после имя плагина должно быть написано так Имя плагина.so И мой способ: 6).Качаем Streamer: https://code.google.com/p/samp-streamer-plugin/downloads/detail?name=streamer_plugin_v2_6_1_r84.zip&can=2&q= Заменяем всё в папке с модом. И компилируйте мод. И Запускаем мод. (Лично мне это помогло!)- 11 ответов
-
- 4
-
-
- всё для crmp
- pawn
-
(и ещё 5 )
C тегом:
-
Этот скрипт позволит вам приглашать игрока на дуэль Выбрать оружие и ставку P.S.Координаты меняйте на свои! И так приступаем... Открываем new.pwn удаляем оттуда все и вставляем это: new StartingDuel[MAX_PLAYERS]; new CountDuelTimer[MAX_PLAYERS]; new WeaponDuel = 24; new MoneyDuel = 1000; new bool:DuelPlaceVisit = false; new Float:duelspawn[12][3] = { {-1129.8909,1057.5424,1346.4141}, {-1103.7913,1086.7838,1341.9036}, {-1082.0232,1043.7269,1343.7159}, {-1053.5138,1023.3488,1343.1503}, {-1048.3635,1058.6753,1343.9337}, {-1060.6057,1092.9423,1342.9473}, {-1036.6921,1088.7567,1343.1466}, {-1015.7525,1069.8811,1344.1016}, {-1020.4619,1034.2771,1342.4492}, {-992.12230,1036.9589,1341.8861}, {-973.94290,1061.5148,1345.6714}, {-992.10420,1090.4716,1342.8617} }; forward DuelStarting(playerid); //============================================================================== public OnPlayerConnect(playerid) { PlayerInDuel[playerid] = 0; GetDuelCreate[playerid] = INVALID_PLAYER_ID; return 1; } //============================================================================== public OnPlayerDisconnect(playerid, reason) { KillTimer(CountDuelTimer[playerid]); for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInDuel[i] == 1) { PlayerInDuel[i] = 0; DuelPlaceVisit = false; SendClientMessage(i, -1, "Твой противник покинул дуэль!"); OnPlayerSpawn(i); } } } return 1; } //============================================================================== public OnPlayerSpawn(playerid) { return 1; } //============================================================================== public OnPlayerCommandText(playerid, cmdtext[]) { new string[1024], cmd[256], tmp[256], giveplayerid, idx; cmd = strtok(cmdtext, idx); if(strcmp(cmd, "/duel", true) == 0) { if(PlayerInDuel[playerid] == 1) return SendClientMessage(playerid, -1, "Ты уже участвуешь в дуэли."); if(DuelPlaceVisit) return SendClientMessage(playerid, -1, "Подождите пока место для дуэли освободится."); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Использование: /duel [ id игрока ] [ id оружия ] [ ставка ]"); giveplayerid = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Использование: /duel [ id игрока ] [ id оружия ] [ ставка ]"); WeaponDuel = strval(tmp); if(WeaponDuel < 0 || WeaponDuel > 42) return SendClientMessage(playerid, -1, "Ты ввёл не верный id оружия. Используй id от 0 до 42"); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Использование: /duel [ id игрока ] [ id оружия ] [ ставка ]"); MoneyDuel = strval(tmp); if(MoneyDuel < 1 || MoneyDuel > 100000) return SendClientMessage(playerid, -1, "Ты ввёл не верную сумму ставки. Используй сумму от 1$ до 100000$"); if(MoneyDuel > GetPlayerMoney(playerid)) return SendClientMessage(playerid, -1, "Тебе не хватает на ставку. Укажи другую сумму!"); if(MoneyDuel > GetPlayerMoney(giveplayerid)) return SendClientMessage(playerid, -1, "Твоему противнику не хватает на ставку. Укажи другую сумму!"); if(IsPlayerConnected(giveplayerid)) { new Float:POS[3]; GetPlayerPos(giveplayerid, POS[0], POS[1], POS[2]); if(playerid == giveplayerid) return SendClientMessage(playerid, -1, "Ты не можешь применить это действие к самому себе."); if(!IsPlayerInRangeOfPoint(playerid, 5, POS[0], POS[1], POS[2])) return SendClientMessage(playerid, -1, "Ты находишься слишком далеко от этого игрока."); if(PlayerInDuel[giveplayerid] == 1) return SendClientMessage(playerid, -1, "Этот игрок уже участвует в дуэли."); GetDuelCreate[giveplayerid] = playerid; format(string, sizeof(string), "Ты успешно пригласил игрока {9DDAF2}%s{FFFFFF} на дуэль! Дождись ответа.", pNick(giveplayerid)); SendClientMessage(playerid, -1, string); format(string, sizeof(string), "Игрок %s приглашает тебя на дуэль.\n\nОружие: %d\nСтавка: %d$", pNick(playerid), WeaponDuel, MoneyDuel); ShowPlayerDialog(giveplayerid, DUEL_ID, DIALOG_STYLE_MSGBOX, "Приглашение на дуэль", string, "Да", "Нет"); } else { SendClientMessage(playerid, -1, "Игрок с указанным тобой id не найден!"); } return 1; } return 0; } //============================================================================== public DuelStarting(playerid) { new string[256]; StartingDuel[playerid] -= 1; format(string, sizeof(string), "~y~STARTING: ~w~%d", StartingDuel[playerid]); GameTextForPlayer(playerid, string, 999, 3); SetPlayerHealth(playerid, 100); if(StartingDuel[playerid] == 0) { GameTextForPlayer(playerid, "~g~DUEL START", 3000, 3); TogglePlayerControllable(playerid, true); KillTimer(CountDuelTimer[playerid]); } return 1; } //============================================================================== public OnPlayerDeath(playerid, killerid, reason) { if(PlayerInDuel[killerid] == 1 && PlayerInDuel[playerid] == 1) { new string[256]; DuelPlaceVisit = false; PlayerInDuel[killerid] = 0; PlayerInDuel[playerid] = 0; GetDuelCreate[killerid] = INVALID_PLAYER_ID; GetDuelCreate[playerid] = INVALID_PLAYER_ID; GivePlayerMoney(killerid, MoneyDuel); GivePlayerMoney(playerid, -MoneyDuel); format(string, sizeof(string), "~g~+%d$", MoneyDuel); GameTextForPlayer(killerid, string, 1000, 1); format(string, sizeof(string), "~r~-%d$", MoneyDuel); GameTextForPlayer(playerid, string, 1000, 1); format(string, sizeof(string), ">>> В дуэли между игроками {FFFFFF}%s{00FF00} и {FFFFFF}%s{00FF00} победил игрок {FFFFFF}%s", pNick(killerid), pNick(playerid), pNick(killerid)); SendClientMessageToAll(0x00FF00FF, string); SetTimerEx("OnPlayerSpawn", 1000, false, "i", killerid); return 1; } return 1; } //============================================================================== public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new string[1024]; new dueledid = GetDuelCreate[playerid]; if(dialogid == DUEL_ID) { if(response) { if(PlayerInDuel[playerid] == 1) { SendClientMessage(playerid, -1, "Ты уже участвуешь в дуэли."); SendClientMessage(dueledid, -1, "При соглашении на участие в дуэли произошла ошибка!"); GetDuelCreate[playerid] = INVALID_PLAYER_ID; return 1; } if(PlayerInDuel[dueledid] == 1) { SendClientMessage(playerid, -1, "Игрок, отославший тебе приглашение, уже участвует в дуэли."); SendClientMessage(dueledid, -1, "При соглашении на участие в дуэли произошла ошибка!"); GetDuelCreate[playerid] = INVALID_PLAYER_ID; return 1; } if(DuelPlaceVisit) { SendClientMessage(playerid, -1, "Подожди пока место для дуэли освободится."); SendClientMessage(dueledid, -1, "Подожди пока место для дуэли освободится."); GetDuelCreate[playerid] = INVALID_PLAYER_ID; return 1; } if(IsPlayerConnected(dueledid)) { PlayerInDuel[playerid] = 1; PlayerInDuel[dueledid] = 1; DuelPlaceVisit = true; new rand1 = random(sizeof(duelspawn)); SetPlayerPos(playerid, duelspawn[rand1][0], duelspawn[rand1][1], duelspawn[rand1][2]); new rand2 = random(sizeof(duelspawn)); SetPlayerPos(dueledid, duelspawn[rand2][0], duelspawn[rand2][1], duelspawn[rand2][2]); SetCameraBehindPlayer(playerid); SetCameraBehindPlayer(dueledid); SetPlayerInterior(playerid, 10); SetPlayerInterior(dueledid, 10); SetPlayerHealth(dueledid, 100); SetPlayerHealth(playerid, 100); SetPlayerVirtualWorld(playerid, DUEL_MIR); SetPlayerVirtualWorld(dueledid, DUEL_MIR); TogglePlayerControllable(playerid, false); TogglePlayerControllable(dueledid, false); StartingDuel[playerid] = 6; StartingDuel[dueledid] = 6; CountDuelTimer[playerid] = SetTimerEx("DuelStarting", 1000, true, "i", playerid); CountDuelTimer[dueledid] = SetTimerEx("DuelStarting", 1000, true, "i", dueledid); ResetPlayerWeapons(playerid); ResetPlayerWeapons(dueledid); GivePlayerWeapon(playerid, WeaponDuel, 99999); GivePlayerWeapon(dueledid, WeaponDuel, 99999); GetDuelCreate[playerid] = INVALID_PLAYER_ID; } else { SendClientMessage(playerid, -1, "Игрок, отославший тебе приглашение, отсоеденился!"); GetDuelCreate[playerid] = INVALID_PLAYER_ID; } } else { format(string, sizeof(string), "Ты отказался на участие в дуэли с игроком {9DDAF2}%s", pNick(dueledid)); SendClientMessage(playerid, -1, string); format(string, sizeof(string), "Игрок {9DDAF2}%s{FFFFFF} отказался на участие в дуэли с тобой!", pNick(playerid)); SendClientMessage(GetDuelCreate[playerid], -1, string); GetDuelCreate[playerid] = INVALID_PLAYER_ID; } return 1; } return 1; } //============================================================================== stock pNick(playerid) { new nick[MAX_PLAYER_NAME]; GetPlayerName(playerid, nick, MAX_PLAYER_NAME); return nick; } //============================================================================== strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } Вот и всё! Если будут ошибки пишите
- 4 ответа
-
- всё для crmp
- pawn
-
(и ещё 5 )
C тегом:
-
Всем привет! Выкладываю самую мою первую работу в MTA Въезд в Аэропорт "Мирный". Не судите строго=)
-
CreateDynamicObject(5464, 2147.48, -2071.09, 20.33, 0.00, 0.00, 90.24); CreateDynamicObject(5468, 2147.39, -2071.07, 20.38, 0.00, 0.00, 90.18); CreateDynamicObject(5466, 2146.91, -2071.48, 20.32, 0.00, 0.00, 90.24); CreateDynamicObject(5465, 2147.00, -2071.42, 20.29, 0.00, 0.00, 90.18); CreateDynamicObject(5463, 2147.34, -2071.06, 20.34, 0.00, 0.00, 90.12); CreateDynamicObject(5467, 2147.67, -2071.00, 20.27, 0.00, 0.00, 90.54); CreateDynamicObject(19054, 2139.66, -2069.94, 20.58, 0.00, 0.00, 0.00); CreateDynamicObject(19057, 2137.76, -2069.81, 20.48, 0.00, 0.00, 0.00); CreateDynamicObject(19054, 2138.61, -2071.15, 20.34, -1.80, -90.48, 2.94); CreateDynamicObject(4344, 2168.41, -2074.36, 19.68, 0.00, 0.00, 0.00); CreateDynamicObject(19076, 2136.90, -2061.89, 17.78, 0.00, 0.00, -23.88); CreateDynamicObject(19054, 2138.41, -2061.20, 18.43, 0.00, 0.00, 0.00); CreateDynamicObject(10236, 2133.07, -2061.04, 17.79, 0.00, 0.00, -41.10); CreateDynamicObject(10236, 2134.54, -2059.50, 17.79, 0.00, 0.00, -54.54); CreateDynamicObject(10236, 2136.33, -2058.45, 17.79, 0.00, 0.00, -75.48); CreateDynamicObject(10236, 2138.45, -2058.07, 17.79, 0.00, 0.00, -96.96); CreateDynamicObject(10236, 2140.23, -2058.60, 17.79, 0.00, 0.00, -145.80); CreateDynamicObject(10236, 2141.42, -2060.41, 17.79, 0.00, 0.00, -149.70); CreateDynamicObject(10236, 2142.32, -2062.26, 17.79, 0.00, 0.00, -169.62); CreateDynamicObject(10236, 2142.45, -2066.46, 17.79, 0.00, 0.00, -183.84); CreateDynamicObject(10236, 2132.45, -2062.93, 17.79, 0.00, 0.00, -12.72); CreateDynamicObject(10236, 2132.88, -2064.90, 17.79, 0.00, 0.00, 17.52); CreateDynamicObject(10236, 2133.93, -2066.73, 17.79, 0.00, 0.00, 33.60); CreateDynamicObject(10236, 2135.76, -2067.07, 17.79, 0.00, 0.00, 86.70); CreateDynamicObject(19057, 2137.76, -2069.81, 20.48, 0.00, 0.00, 0.00); CreateDynamicObject(19057, 2136.95, -2063.02, 18.48, 0.00, 0.00, 36.12); CreateDynamicObject(19058, 2136.28, -2061.17, 18.44, 0.00, 0.00, -47.58); CreateDynamicObject(4430, 2163.08, -2047.78, 19.70, 0.00, 0.00, 0.00); CreateDynamicObject(4430, 2128.28, -2030.37, 19.70, 0.00, 0.00, 0.00); CreateDynamicObject(982, 2189.78, -2041.10, 18.70, 0.00, 0.00, 0.00); CreateDynamicObject(982, 2189.79, -2066.73, 18.70, 0.00, 0.00, 0.00); CreateDynamicObject(982, 2176.94, -2079.54, 18.70, 0.00, 0.00, 90.06); CreateDynamicObject(982, 2151.32, -2079.56, 18.70, 0.00, 0.00, 90.06); CreateDynamicObject(982, 2125.70, -2079.57, 18.70, 0.00, 0.00, 90.12); CreateDynamicObject(19064, 2140.68, -2068.47, 21.10, 2.58, 34.80, 0.00); CreateDynamicObject(19064, 2141.07, -2068.56, 21.10, 2.58, 34.80, -269.58); CreateDynamicObject(4259, 2148.46, -2032.12, 18.31, 0.00, 0.00, 0.00); CreateDynamicObject(1232, 2136.28, -2025.63, 20.33, 0.00, 0.00, 0.00); CreateDynamicObject(1232, 2136.19, -2038.69, 20.33, 0.00, 0.00, 0.00); CreateDynamicObject(1232, 2160.26, -2026.03, 20.33, 0.00, 0.00, 0.00); CreateDynamicObject(1232, 2160.26, -2038.83, 20.33, 0.00, 0.00, 0.00); CreateDynamicObject(1232, 2160.20, -2050.34, 20.33, 0.00, 0.00, 0.00); CreateDynamicObject(1232, 2136.64, -2050.34, 20.33, 0.00, 0.00, 0.00); CreateDynamicObject(1232, 2160.14, -2015.33, 20.33, 0.00, 0.00, 0.00); CreateDynamicObject(1232, 2136.06, -2015.50, 20.33, 0.00, 0.00, 0.00); CreateDynamicObject(19129, 2148.77, -2032.30, 17.79, 0.00, 0.00, 0.00); CreateDynamicObject(1256, 2155.75, -2028.84, 18.38, 0.00, 0.00, 180.00); CreateDynamicObject(1256, 2155.73, -2035.94, 18.38, 0.00, 0.00, 180.00); CreateDynamicObject(1256, 2151.89, -2039.38, 18.38, 0.00, 0.00, 90.30); CreateDynamicObject(1256, 2144.54, -2039.40, 18.38, 0.00, 0.00, 90.30); CreateDynamicObject(616, 2170.05, -2087.81, 17.86, 0.00, 0.00, 0.00); CreateDynamicObject(616, 2146.56, -2102.68, 17.86, 0.00, 0.00, 0.00); CreateDynamicObject(616, 2119.52, -2093.45, 17.86, 0.00, 0.00, 0.00); CreateDynamicObject(616, 2089.07, -2109.59, 17.86, 0.00, 0.00, 0.00); CreateDynamicObject(616, 2200.26, -2059.19, 17.86, 0.00, 0.00, 0.00); CreateDynamicObject(615, 2177.93, -2088.09, 18.50, 0.00, 0.00, 0.00); CreateDynamicObject(615, 2196.28, -2061.43, 18.50, 0.00, 0.00, 0.00);
- 11 ответов
-
- 3
-
-
- crmp
- всё для crmp
-
(и ещё 4 )
C тегом:
-
Данная модификация с полными повреждениями, на что заменять смотрите сами, я заменил Admiral. ;-)
- 3 ответа
-
- 1
-
-
- crmp
- criminal russia
-
(и ещё 5 )
C тегом:
-
Простенький спортивный зал, сделанный в "минимализме" Скриншоты: http://cs409326.vk.me/v409326524/36fa/VqTpFeypp0Y.jpg http://cs409326.vk.me/v409326524/3703/dv4kEoSkmZA.jpg http://cs409326.vk.me/v409326524/370c/HyTMlqg3NhY.jpg http://cs409326.vk.me/v409326524/3715/VwLsmj7-MUc.jpg
- 11 ответов
-
- 17
-
-
- Спортзал
- Спортивный зал
- (и ещё 7 )
-
Здраствуйте дорогие пользователи сайта gsgames.ru. Хочу вам продемонстрировать гудок для поезда. Итак,перейдём к самой модификации: Основные характеристики: 1.Гудок может слышать любой игрок находящийся не дальше 30-50 метров от объекта. 2.Звучание гудка не очень реалистичное и на мой взгляд скорей похоже на звучание гудка ЭД4М выпуска 2001 года. 3.Гудок подходит не только для сервера crmp но и для samp.(Сам не проверял,но как гласят слухи это правда) Вот и всё! Ссылка: http://rghost.ru/51117187 Пароль: gsgames Автор: SHOROOP
- 18 ответов
-
- 5
-
-
- crmp
- всё для crmp
- (и ещё 5 )
-
Приветствую всех. Выкладываю скрипт анти-реклама,дабы не заметил такого на форуме. Принцип работы:если в сообщение будет содержаться "формат" ip,команда просто не сработает(работает на всех командах чата). Автор:Slim Ссылка:http://rghost.ru/51287002 VT:https://www.virustotal.com/ru/file/a0d48e4d7649f3b0ceeedc6be6c78a8412e80a74eafd390c14144af4735c1770/analysis/
-
- 2
-
-
- crmp
- всё для crmp
- (и ещё 5 )
-
Маппинг делал для своего сервера но сервер забросил. Не пропадать добру!
- 13 ответов
-
- 5
-
-
- crmp
- всё для crmp
-
(и ещё 4 )
C тегом:
-
Всем привет! Вот было нечего сделать сделал базу полиции, оценивайте.
- 15 ответов
-
- 5
-
-
- crmp
- всё для crmp
-
(и ещё 4 )
C тегом:
-
Вот делал аэропорт для одного проекта(как спавн), проект закрылся выкладываю в паблик
- 7 ответов
-
- 8
-
-
- crmp
- всё для crmp
-
(и ещё 4 )
C тегом:
-
Находим И после скобок вставляем вот это : Строго не судите это моя первая работа :)
- 9 ответов
-
- 3
-
-
- всё для crmp
- pawn
-
(и ещё 5 )
C тегом:
-
По просьбе выкладываю снова скрипт сигнализации "Alarm" Команды: /BuyAlarm - купить сигнализацию. /TurnAlarm - вкл/выкл сигнализацию. http://rghost.ru/50942348
- 1 ответ
-
- 1
-
-
- Сигнализация
- crmp
- (и ещё 6 )
-
Это FS поможет вам прикреплять объекты к машине и узнавать точные координаты !
- 3 ответа
-
- 1
-
-
- crmp
- всё для crmp
- (и ещё 5 )
-
SCR SIS - Simple Injury System, или Система ранений с нуля. Обучение работы с OnPlayerTakeDamage.
SHOROOP опубликовал теме в Мануалы/Уроки
Доброго дня. Итак, сегодня речь пойдет о контроле нанесенного игроку урона. SA:MP (а значит - и адаптации) при получении игроком урона незамедлительно запускает коллбэк OnPlayerTakeDamage, у которого есть несколько входных параметров: [*]playerid - ID игрока, которому был нанесен урон. [*]issuerid - ID игрока, который нанес урон. Если игрок пострадал от падения, взрыва и т.п. - в данный параметр будет передано значение INVALID_PLAYER_ID. [*]amount - количество нанесенного урона в виде числа с плавающей точкой. [*]weaponid - ID оружия, которым был нанесен урон, либо ID причины нанесения урона. Более подробно об этом можно прочитать в статье на SA:MP Wiki. Разбирать, как же все это работает, я предлагаю на конкретном примере. И примером таким станет написание системы нанесения ранений. Собственно, в обобщенном виде алгоритм действий будет таков: [*]Если игрок получает урон - с шансом 1 к 2 он упадет в обморок. [*]Если игрок падает в обморок - заморозить его любым доступным способом на определенное время. В примере время обморока будет выбрано случайно. [*]Если время обморока закончилось - разморозить игрока. Итак, приступим. Подключаем библиотеку a_samp. Работы в других коллбэках нам практически не нужны. Для собственной страховки в OnPlayerSpawn можно вызвать функцию ClearAnimations. Итак, первоначально - определяем время и шанс обморока. Минимальное время в моем примере - 15 секунд, максимальное - 1 минута. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) { new ObmorokTime = random(45)+15; new Obmorok = random (3); И в этом месте на момент написания скрипта я задумался. Есть шанс, что нанесенного урона хватит, чтобы убить игрока, однако для него уже будет вызвана анимация, что может привести к отсутствию вызова OnPlayerDeath. Проблема решилась просто и изящно - если у игрока будет менее 10 HP, скрипт просто не будет вызван. Точно также анимация будет вызвана и для водителя, что нам не нужно - такую проверку мы тоже поставим. new Float:HP; GetPlayerHealth(playerid, HP); if (HP >=10 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { Далее через switch проверяем, упал все-таки в обморок игрок или нет. Если упал - очищаем ему текущую анимацию, на время ObmorokTime применяем к нему анимацию и таймер для сброса этой анимации в указанное время. switch (Obmorok) { case 2: { ClearAnimations(playerid); ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.1, 0, 1, 1, 1, ObmorokTime*1000, 1); SetTimerEx ("ClearAnimation", ObmorokTime*1000, false, "d", playerid); Ну, и для большей информативности - добавим информацию ранившему и раненному. Если же раненный сам виноват - следует ввести проверку и на это. Резервируем три переменные, проверяем ID атаковавшего и в зависимости от этого выводим сообщения о ранении. new string[128], victim[MAX_PLAYER_NAME], attacker[MAX_PLAYER_NAME]; GetPlayerName(playerid, victim, sizeof (victim)); if (issuerid != INVALID_PLAYER_ID) { GetPlayerName(issuerid, attacker, sizeof (attacker)); format(string, sizeof(string), "%s ранил Вас!", attacker); SendClientMessage(playerid, 0xFF110000, string); format(string, sizeof(string), "Вы ранили %s!", victim); SendClientMessage(issuerid, 0xFF110000, string); } else { SendClientMessage(playerid, 0xFF110000, "Вы ранены!"); } } } } return 1; } За этим все! Больше от программиста не требуется ничего, скрипт будет успешно работать, что уже доказано использованием его на нашем проекте уже больше года.- 8 ответов
-
- 11
-
-
- crmp
- criminal russia
-
(и ещё 4 )
C тегом:
-
И снова здравствуйте! Эта тема для тех, кто не знает как перевести сервер с SAMP на CRMP. 1) Скачиваем стандартный мод с офф.сайта адаптации SAMP. [*]Windows Server [*]Linux Server 2) Разархивируем архив на рабочий стол и откроем папку. 3) В папке видим 3 файла: adap-npc, announcr, samp-server-cr.
- 11 ответов
-
- 17
-
-
- crmp
- criminal russia
-
(и ещё 4 )
C тегом:
-
Выложите пожалуйста систему пожаров, поставлю +
- 2 ответа
-
- crmp
- всё для crmp
- (и ещё 5 )
-
Здравствуйте уважаемые пользователи сайта gsgames Хочу с вами поделиться скриптом снегопада Я его нашёл,лазия по форумам Автор не я
- 19 ответов
-
- 4
-
-
- crmp
- всё для crmp
- (и ещё 5 )