Вопросы по созданию гейммодов
Сообщений 151 страница 180 из 703
Поделиться1522007-04-27 15:57:58
я ни куда не лезу. Я уже на серваке расставил тачки оружие респаунское скинов.... Вот дошел до этого. А вы мне даже это не можете объяснить!!!!простите за хамство
Поделиться1532007-04-27 16:49:20
Народ подскажите пожалуйста вот сохранять координаты игрока я знаю как, а координаты камеры как нибудь можно сохранить?
Поделиться1542007-04-27 17:59:22
Народ а как делать так что бы сервер был постоянно рабочем?А то у мя получается токо когда я запускаю samp-server
Поделиться1552007-04-27 19:43:14
я ни куда не лезу. Я уже на серваке расставил тачки оружие респаунское скинов.... Вот дошел до этого. А вы мне даже это не можете объяснить!!!!простите за хамство
Расставлять тачки/оружие/скины любой дурак сумеет, во всяком случе научится без проблем. Чтобы реализовать все то, что ты просишь нужно задействовать код объемом до тысячи строк. Я могу тебе это объяснить, но поймешь ли ты?
Хорошо, вот как нужно сделать в игре банк. Во первых нужно объявить глобальный массив переменных размером в MAX_PLAYERS, т.е. 100, в нем и будут содержаться все банки игроков. Далее тебе нужно поставить чекпойнт в банке.
Ах да, наверняка тебе нужно, чтобы у тебя было в игре более одного чекпойнта. Тогда нужно сделать следующее: сделать массив из координат всех чекпойнтов и массив из координат границ территорий, в которых будет появляться каждый чекпойнт. Поставить глобальную переменную с размером в MAX_PLAYERS, в ней будет номер чекпойнта, который будет активен в каждый момент времени для каждого конкретного игрока. Поставить таймер на функуию с повторением каджую секунду (желательно). Она будет при каждом вызове проверять всех игроков, находятся ли они на территории появления чекпойнтов, если да и номер активного чекпойнта не соответствует номеру чекпойнта территории, в которой игрок находится, то для него создается соответствующий чекпоцнт, а если оказалось так, что игрок не находится на какой-то территории, а номер активного чекпойнта для него соответствует этой территории (то есть игрок только что вышел из нее), то чекпойнт игрока убирается.
Так, с расстановкой множества чекпойнтов разобрались. Теперь перецдем непосредственно к банку. Когда игок входит в чекпойнт проверяем тип номер чекпойнта, на предмет, является ли он чекпойнтом банка. Если да, то пишем ему какое-нить сообщение, типа "вы можете положить бабло в банк!". Но это чисто формальность. В описании команд для "ложения", снятия или проверки баланса проверяем, находится ли игрок в чекпойнте, и если да, то опять удостоверяемся, что тип чекпойнта - банковский. Если это так, то позволяем выполняться дальнейшим операциям - то есть уменьшаем деньги игрока и увеличиваем его банк на введенную сумму в случае, если игрок положил деньги в банк, или увеличиваем деньги и уменьшаем банк, если игрок забирает деньги. Банк у нас хранится, напомню, в глобальном массиве переменных, которые мы объявили в самом начале.
В идеале, конечно неплохо сделать, чтобы банк сохранялся в файлы, чтобы при рестарте игроки не плакали "где наши деньги???". Для сохранения лучше всего пользоваться библиотекой dini, а именно функциями dini_Int(), dini_Get().
Ну вот, я подробно описал, как сделать в игре банк. Надеюсь, вопросов больше нет (и не будет). И не говори потом, что даже этого я тебе не объяснил.
Поделиться1562007-04-27 19:45:14
Народ подскажите пожалуйста вот сохранять координаты игрока я знаю как, а координаты камеры как нибудь можно сохранить?
Что значит "сохранять координаты камеры"??? Моя твоя не понимать.
Народ а как делать так что бы сервер был постоянно рабочем?А то у мя получается токо когда я запускаю samp-server
Сам-то понял, что спросил?
Отредактировано divine (2007-04-27 19:45:33)
Поделиться1572007-04-27 21:15:49
ChelSea написал:
4. Куда вставить этот кодЭто должен быть таймер, который каждые, скажем, 1 секунду проверяет положение игрока.
Я пробовал, из этого ничего хорошего не выйдет, пока я буду стоять в этой точке,мне каждую секунду будут писать мой текст,что не очень-то приятно.
Вот если ты новичек, то хрен ли ты лезишь в самые дебри програмирования? Научись для начала делать простейшие алгоритмы, а потом уже лезь дальше.
Попробуй переходить от простого к сложному, не бойся экспереминтировать, скочай откуданибудь список комманд на комп и открывай простые стандартные скрипты. Сравнивай то,что ты знаешь, если не знаешь,че за команда сверяй со своим списком и пытайся понять,что для чего написано. Потом скачивай более сложный моды и разбирай их. Очень неплохо приведен пример создания комманд в моде freeroam, если захочешь еще по-сложнее и не втягость прочитать 19 000 строк - качай PenLs или PenLV. И небойся экспереминтировать, создавай новый мод и пиши там,после проверяй результат.
Поделиться1582007-04-27 21:22:27
mcdog написал:
Народ а как делать так что бы сервер был постоянно рабочем?А то у мя получается токо когда я запускаю samp-server
Тебе нужен типа хост для гейм модов.(возможно я сказал не так правильно,я не знаю как правильно называется)
Обычно они все платные, чем болье иы хочешь,что-бы на твоем серваке играло людей, тем больше бабла ежемесячно надо платить.
Есть офицалки SAMP.com, если им понравится твой мод,они его вылажут нахаляву(т.е. выделят сервак)(так мне дивайн сказал).
Поговори со своими провайдерами, некоторые выделяют серваки за более умеренную плату.
Иначе-никак, только если твой комп не будет выключаться...
Поделиться1592007-04-27 21:27:14
можно поподробнее пожалуйста о работе с файлами,загрузки туда нескольких типов информации и чтению нужной тоже. плз. если не в лом.
Поделиться1602007-04-27 21:47:56
и еще вопрос... как наладить счетчик фрагов? А то у мя какая -то хрень... то 4000 то 2000 то 15000...
а кстати кто хочет зайти на мой сервак... сделал его благодоря в основном вам то вот 217.78.183.177:7777 EET RUSSIA(COLD WAR)
ЗАВТРА ЖДУ ВАС ВСЕХ В 6-8 ЧАСОВ ВЕЧЕРА
ЗАЙДИТЕ ПЛИЗ И НЕ ЗАБУДЬТЕ ПРО МРЙ ВОПРОС
Отредактировано mcdog (2007-04-27 21:50:28)
Поделиться1612007-04-28 11:03:04
Народ а как делать так что бы сервер был постоянно рабочем?А то у мя получается токо когда я запускаю samp-server
т.е.? чтобы он автоматически запускался при включении компьютера?
добавь ярлык запуска в автозагрузку и для удобства сворачивай в трей с помощью соответствующих прог.
Ну вот, я подробно описал, как сделать в игре банк. Надеюсь, вопросов больше нет (и не будет). И не говори потом, что даже этого я тебе не объяснил.
=)) ты думаешь они ченьть поймут? надо примеры, и как это все запихать
и еще вопрос... как наладить счетчик фрагов? А то у мя какая -то хрень... то 4000 то 2000 то 15000...
если я не ошибаюсь то у тебя показывается количество денег а не фраги
Поделиться1622007-04-28 12:46:29
public OnPlayerDeath(playerid, killerid, reason){
SetPlayerScore(killerid, GivePlayerScore(killerid) + 1);
}
Теперь при убийстве, убившему инроку дают одно очко.
Поделиться1632007-04-28 12:55:35
Ну народ,напишите плз как сохранять бабки игроков в файле, чтобы при входе в игру игрок со своим ником получал его деньги. И чтоб тудаже статисти пихнуть(типа сколько раз умер, сколько убил).
Поделиться1642007-04-28 13:33:08
не у мя ошибка выскакивает
public OnPlayerDeath(playerid, killerid, reason)
{
new playercash;
new killedplayer[MAX_PLAYER_NAME];
new string[256];
playercash = GetPlayerMoney(playerid);
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
}
else
{
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
if(bounty[playerid] > 0 && (playerGang[killerid] == 0 || playerGang[playerid] != playerGang[killerid])) {
GetPlayerName(playerid, killedplayer, sizeof(killedplayer));
format(string, sizeof(string), "You earned a bounty of %d for killing %s.", bounty[playerid], killedplayer);
SendClientMessage(killerid, COLOR_GREEN, string);
GivePlayerMoney(killerid, bounty[playerid]);
bounty[playerid] = 0;
}
if(playercash > 0) {
GivePlayerMoney(killerid, playercash);
}
}
if(playercash > 0)
{
ResetPlayerMoney(playerid);
}
return 1;
}
вот мой код и куда встаить?
Поделиться1652007-04-28 14:08:26
не у мя ошибка выскакивает
public OnPlayerDeath(playerid, killerid, reason)
{
new playercash;
new killedplayer[MAX_PLAYER_NAME];
new string[256];
playercash = GetPlayerMoney(playerid);
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
}
else
{
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
if(bounty[playerid] > 0 && (playerGang[killerid] == 0 || playerGang[playerid] != playerGang[killerid])) {
GetPlayerName(playerid, killedplayer, sizeof(killedplayer));
format(string, sizeof(string), "You earned a bounty of %d for killing %s.", bounty[playerid], killedplayer);
SendClientMessage(killerid, COLOR_GREEN, string);
GivePlayerMoney(killerid, bounty[playerid]);
bounty[playerid] = 0;
}
if(playercash > 0) {
GivePlayerMoney(killerid, playercash);
}
}
if(playercash > 0)
{
ResetPlayerMoney(playerid);
}
return 1;
}
вот мой код и куда встаить?
куда куда в скрипт
это у тебя отдельная функция так что вставляй в конец
а вообще телепатов тут нету, если есть ошибки то скрипт в студию
Поделиться1662007-04-28 14:28:53
НЕ НЕ ПОЛУЧАЕТСЯ БЛИН...А КУДА В КОНЕЦ ВСЕГО СКРИПТА ИЛИ В КОНЕЦ ON PLAYER DEATH?
КСТАТИ НЕ У КОГО НЕТУ МОДАGTA EURO(VA-CREW)?
Поделиться1672007-04-28 15:33:39
попробуй эту строчку: if(bounty[playerid] > 0 && (playerGang[killerid] == 0 || playerGang[playerid] != playerGang[killerid])) {
написать иначе: if(bounty[playerid]>0 && playerGang[killerid] == 0 || bounty[playerid] >0 && playerGang[playerid] != playerGang[killerid]) {
или еще как-нибудь. Думаю дело в ней.
Поделиться1682007-04-28 15:50:52
не, не получается и опять же куды его всавлять?
и еще куда вставить комманду чтоб игрок мог цвет менять? вот начало моего скрипта
//Cold War mod +RACING #include <a_samp> #include <core> #include <float> #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_BLUE 0x0000BBAA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_ORANGE 0xFF9900AA #define NICE_BLUE 0xa0d3ffAA // Blue #define PocketMoney 4000 // Amount player recieves on spawn. #define INACTIVE_PLAYER_ID 255 #define GIVECASH_DELAY 5000 // Time in ms between /givecash commands. #define NUMVALUES 4 #define CP_BANK 0 #define CP_PIRATE 1 #define CP_AMMU 2 #define CP_DRAGON 3 #define CP_SEXSHOP 4 #define CP_BAR 5 #define CP_CALIGULA 6 #define CP_ZIP 7 #define CP_BINCO 8 #define CP_TATOO 9 #define CP_BOTIQUE 10 #define CP_LVRACE 11 #define CP_LVRACE2 12 #define CP_DRAG 13 #define CP_FULLTURN 14 #define CP_ENCLOSE 15 #define CP_FREEWAY 16 #define CP_AIRPORT 17 #define P_DRAGON 0 #define P_SEXSHOP 1 #define P_BAR 2 #define P_CALIGULA 3 #define P_ZIP 4 #define P_BINCO 5 #define P_TATOO 6 #define P_BOTIQUE 7 #define P_OFFSET 3 #define P_OFFSETRESET 10 #define LVRACE 1 #define LVRACE2 2 #define DRAG 3 #define FULLTURN 4 #define ENCLOSE 5 #define FREEWAY 6 #define AIRPORT 7 new gProgress[MAX_PLAYERS]; new gRacer[MAX_PLAYERS]; new gPosition[100]; new MAX_CHECKPOINTS[100]; new gTrack[MAX_PLAYERS]; new gRaceid; new gCountdown[MAX_PLAYERS]; new gStartedAt[MAX_PLAYERS]; new gTrackName[100][255]; forward MoneyGrubScoreUpdate(); forward Givecashdelaytimer(playerid); //forward GrubModeReset(); forward SetPlayerRandomSpawn(playerid); forward SetupPlayerForClassSelection(playerid); forward GameModeExitFunc(); //------------------------------------------------------------------------------------------------------ new CashScoreOld; new iSpawnSet[MAX_PLAYERS]; new bank[MAX_PLAYERS]; new bounty[MAX_PLAYERS]; new playerCheckpoint[MAX_PLAYERS]; new gambleWarning[MAX_PLAYERS]; new savePos; new worldTime; new playerColors[100] = { 0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEE82EEFF,0xFFD720FF, 0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF, 0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF, 0x275222FF,0xF09F5BFF,0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF, 0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,0x4B8987FF, 0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF, 0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF, 0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF, 0x9F945CFF,0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF, 0x3FE65CFF }; new Float:gRandomPlayerSpawns[23][3] = { {1958.3783,1343.1572,15.3746}, {2199.6531,1393.3678,10.8203}, {2483.5977,1222.0825,10.8203}, {2637.2712,1129.2743,11.1797}, {2000.0106,1521.1111,17.0625}, {2024.8190,1917.9425,12.3386}, {2261.9048,2035.9547,10.8203}, {2262.0986,2398.6572,10.8203}, {2244.2566,2523.7280,10.8203}, {2335.3228,2786.4478,10.8203}, {2150.0186,2734.2297,11.1763}, {2158.0811,2797.5488,10.8203}, {1969.8301,2722.8564,10.8203}, {1652.0555,2709.4072,10.8265}, {1564.0052,2756.9463,10.8203}, {1271.5452,2554.0227,10.8203}, {1441.5894,2567.9099,10.8203}, {1480.6473,2213.5718,11.0234}, {1400.5906,2225.6960,11.0234}, {1598.8419,2221.5676,11.0625}, {1318.7759,1251.3580,10.8203}, {1558.0731,1007.8292,10.8125}, //{-857.0551,1536.6832,22.5870}, Out of Town Spawns //{817.3494,856.5039,12.7891}, //{116.9315,1110.1823,13.6094}, //{-18.8529,1176.0159,19.5634}, //{-315.0575,1774.0636,43.6406}, {1705.2347,1025.6808,10.8203} }; new Float:gCopPlayerSpawns[2][3] = { {2297.1064,2452.0115,10.8203}, {2297.0452,2468.6743,10.8203} };
Отредактировано mcdog (2007-04-28 15:54:17)
Поделиться1692007-04-28 15:53:41
а и вот еще продолжение(конечно же не до конца)
#define MAX_POINTS 18 new Float:checkCoords[MAX_POINTS][4] = { {-36.5483,-57.9948, -17.2655,-49.2967}, //BANK {1894.6128,1445.3431, 2084.9739,1637.8186}, //PIRATE {284.0546,-86.4384, 302.9315,-56.6674}, //AMMUNATION {1925.1511,968.2358, 2019.0715,1067.4276}, //DRAGON {-115.9544,-24.2706, -99.1631,-7.1391}, //SEXSHOP {487.6558,-88.5900, 512.0635, -67.7503}, //BAR {2216.7971,1638.0493, 2255.2097,1714.0806}, //CALIGULA {144.9131,-96.0927, 177.4128,-70.7923}, //ZIP {201.4462,-112.4556, 218.5237,-95.1238}, //BINCO {-204.7623,-44.0326, -200.2330,-39.8128}, //TATOO {416.7485,-84.4242, 422.6890,-74.0611}, //BOTIQUE {2057.2068,795.1260,2192.3413,900.7789}, //LVRACE1 {2219.2014,816.7987,2345.2524,907.6171}, //LVRACE2 {1339.7202,1574.3517,1711.5598,1860.3267}, //DRAG {2723.2661,2263.8979,2951.1128,2508.8557}, //FULLTURN {2020.0337,1104.0842,2239.7825,1387.2115}, //ENCLOSE {1129.8506,1576.3555,1254.2544,1892.2421}, //FREEWAY {1260.1062,1212.9619,1711.8167,1565.5458} //AIRPORT }; // race1 cooord4 //2192.3413,2057.2068,900.7789,795.1260 // race1 //AddStaticVehicle(565,2233.9204,767.9291,9.7729,197.6801,42,42); // race1 coord3 //AddStaticVehicle(565,2386.9138,924.4572,10.4433,302.1986,42,42); // race2 cooord4 new Float:checkpoints[MAX_POINTS][4] = { {-22.2549,-55.6575,1003.5469,2.0}, {2000.3132,1538.6012,13.5859,2.0}, {291.0004,-84.5168,1001.5156,2.0}, {1989.0619,1005.5241,994.4688,2.0}, {-103.5525,-22.4661,1000.7188,2.0}, {501.4927,-75.4323,998.7578,2.0}, {2235.5408,1679.0402,1008.3594,2.0}, {161.1875,-79.9915,1001.8047,2.0}, {207.5640,-97.8188,1005.2578,2.0}, {-203.4864,-41.2045,1002.2734,2.0}, {418.5547,-80.1667,1001.8047,2.0}, {2151.3589,851.8388,6.3631,18.0}, {2292.0000,853.2295,6.3612,18.0}, {1478.0313,1777.5648,10.4346,15.0}, {2907.1707,2406.6133,10.4005,15.0}, {2187.4380,1207.0509,10.2941,15.0}, {1239.1427,1695.1627,6.3168,20.0}, {1335.4139,1311.4680,10.4433,20.0} }; new checkpointType[MAX_POINTS] = { CP_BANK, CP_PIRATE, CP_AMMU, CP_DRAGON, CP_SEXSHOP, CP_BAR, CP_CALIGULA, CP_ZIP, CP_BINCO, CP_TATOO, CP_BOTIQUE, CP_LVRACE, CP_LVRACE2, CP_DRAG, CP_FULLTURN, CP_ENCLOSE, CP_FREEWAY, CP_AIRPORT }; #define MAX_PROPERTIES 8 new propertyNames[MAX_PROPERTIES][32] = { "Four Dragons", "Sex Shop", "Shithole Bar", "Caligula", "Zip Shop", "Binco Shop", "Tatoo Parlor", "Botique" }; new propertyValues[MAX_PROPERTIES] = { 75000, 25000, 20000, 100000, 15000, 15000, 10000, 20000 }; new propertyEarnings[MAX_PROPERTIES] = { 5000, 2000, 1500, 7000, 1000, 1000, 700, 1500 }; new propertyOwner[MAX_PROPERTIES] = {999,999,999,999,999,999,999,999}; #define MAX_WEAPONS 7 new weaponNames[MAX_WEAPONS][32] = { "Shotgun", "Combat Shotgun", "Micro Uzi", "Tec9", "MP5", "AK47", "M4" }; new weaponIDs[MAX_WEAPONS] = { 25, //Shotgun 27, //Combat shotgun 28, //Micro Uzi 32, //Tec9 29, //MP5 30, //AK47 31 //M4 }; new weaponCost[MAX_WEAPONS] = { 7000, 15000, 7000, 5000, 15000, 25000, 30000 }; new weaponAmmo[MAX_WEAPONS] = { 15, 20, 120, 120, 120, 120, 120 }; #define LVRACE_CHECKPOINTS 21 new Float:gLVRaceCheckpoints[LVRACE_CHECKPOINTS][4] = { {2151.3589,851.8388,6.3631,15.0}, //LV RACE STARTING LINE {1753.6545,850.6560,9.5190,15.0}, //first checkpoint {1568.6921,833.5577,6.3990,15.0}, //second check {1287.6051,905.6605,6.4374,15.0}, {1226.4041,1334.8127,6.3621,15.0}, {1209.0433,1502.7931,6.3621,15.0}, {1263.7335,1732.5851,8.0399,15.0}, {1401.9918,1872.6542,10.3007,15.0}, {1707.2323,1886.4031,10.2967,15.0}, {1728.4037,2053.3477,10.2970,15.0}, {1956.9373,2022.1593,10.2968,15.0}, {2176.9705,2137.1475,10.2968,15.0}, {2349.7729,2179.5166,10.3058,25.0}, //bigish {2287.6816,2291.3613,10.3413,15.0}, {2271.7271,2413.7090,10.3006,15.0}, {2189.2878,2325.5537,10.2968,15.0}, {2074.8704,1758.3037,10.2968,15.0}, {2047.5907,1587.5190,10.2968,15.0}, {2061.5239,1531.0094,10.2968,15.0}, {2047.8118,1361.2373,10.2968,15.0}, {2046.0575,861.8326,6.3588,25.0} //FINISH! }; #define LVRACE2_CHECKPOINTS 30 new Float:gLVRace2Checkpoints[LVRACE2_CHECKPOINTS][4] = { {2292.0000,853.2295,6.3612,15.0}, {2672.6125,985.5797,6.3584,15.0}, {2680.1172,1379.5313,7.0318,15.0}, {2605.0435,1472.8322,10.4544,15.0}, {2548.1641,1451.3032,10.2968,15.0}, {2528.8911,1287.0098,10.2969,15.0}, {2515.0671,1193.8060,10.2967,15.0}, {2227.8516,1241.7512,10.2968,15.0}, {2246.8247,1412.3350,10.3007,15.0}, {2264.8145,1532.9839,10.2968,15.0}, {2260.0530,1533.0015,10.2991,15.0}, {2327.4248,1549.9917,10.2968,15.0}, {2341.7393,1612.9847,10.2969,15.0}, {2546.9839,1625.5905,10.2969,15.0}, {2506.9165,1741.3983,10.2959,15.0}, {2526.2810,2078.9180,10.2968,15.0}, {2511.9631,2135.4175,10.2967,15.0}, {2350.4355,1998.8438,10.2352,15.0}, {2293.0757,1894.1865,10.2968,15.0}, {2146.3867,1863.9653,10.3037,15.0}, {1981.5674,1712.7384,10.2960,15.0}, {1567.6030,1733.9701,10.2968,15.0}, {1471.7648,1872.7172,10.2978,15.0}, {1249.8389,1813.4238,12.2259,15.0}, {1007.4941,1789.1084,10.2966,15.0}, {1008.0173,1263.4282,10.2958,15.0}, {1170.4558,1176.4430,10.3949,15.0}, {1207.7604,1075.0952,6.4374,15.0}, {1514.8815,851.9245,6.4366,15.0}, {1973.7041,850.5347,6.3517,15.0} }; #define DRAG_CHECKPOINTS 2 new Float:gDragCheckpoints[DRAG_CHECKPOINTS][4] = { {1478.0313,1777.5648,10.4346,15.0}, {1477.4385,1320.3451,10.4456,15.0} }; #define FULLTURN_CHECKPOINTS 23 new Float:gFullTurnCheckpoints[FULLTURN_CHECKPOINTS][4] = { {2907.1707,2406.6133,10.4005,15.0}, //race1 start {2848.6821,2234.1079,10.2948,15.0}, //check1 {2847.8733,2070.4319,10.2974,15.0}, {2828.0847,1975.5433,10.2960,15.0}, {2672.8003,1951.6693,11.3938,15.0}, {2489.7747,1969.3590,10.2975,15.0}, {2357.3093,1957.5857,10.3005,15.0}, {2297.6909,1893.1490,10.2949,15.0}, {2154.1106,1904.3524,10.2950,15.0}, {2148.8367,2057.1125,10.3039,15.0}, {2148.2568,2188.1633,10.2961,15.0}, {2191.7668,2327.8037,10.2952,15.0}, {2228.0015,2477.6013,10.3034,15.0}, {2251.4468,2513.2791,10.2949,15.0}, {2394.4265,2513.3110,10.3540,15.0}, {2474.9592,2513.0181,10.4309,15.0}, {2528.3340,2488.9541,10.4441,15.0}, {2527.4434,2378.1226,10.2993,15.0}, {2541.6848,2232.6526,10.2953,15.0}, {2641.8872,2290.1973,10.2947,15.0}, {2797.1089,2294.5388,10.3165,15.0}, {2902.7891,2299.5833,10.2947,15.0}, {2906.9424,2403.9465,10.3297,15.0} //FINISH }; #define ENCLOSE_CHECKPOINTS 32 new Float:gEncloseCheckpoints[ENCLOSE_CHECKPOINTS][4] = { {2187.4380,1207.0509,10.2941,15.0}, {2181.7495,1152.6239,11.4193,15.0}, {2139.0605,1073.6729,11.8901,15.0}, {2075.8535,1051.5021,10.2872,15.0}, {2069.7153,1145.7050,10.3039,15.0}, {2051.0618,1207.5472,10.2961,15.0}, {2046.2145,1423.3301,10.2961,15.0}, //{2066.0078,1465.9922,10.2960,15.0}, {2053.0798,1541.2687,10.2960,15.0}, {2049.4795,1701.5417,10.2961,15.0}, {2116.5435,1837.6656,10.2961,15.0}, {2128.8782,1966.9749,10.3211,15.0}, {2127.1077,2118.2327,10.2960,15.0}, {2127.8813,2224.1440,10.2959,15.0}, {2072.3218,2313.3286,10.2948,15.0}, {2028.2240,2408.7466,10.2969,15.0}, {2041.2173,2452.1567,10.2949,15.0}, {2121.9824,2452.9285,10.2960,15.0}, {2226.4033,2437.6785,10.2926,15.0}, {2214.7600,2362.1882,10.2961,15.0}, {2164.1077,2290.1396,10.2976,15.0}, {2147.2456,2122.8555,10.2961,15.0}, {2148.2808,1982.2407,10.2987,15.0}, {2135.8943,1841.2278,10.3001,15.0}, {2085.1406,1772.8593,10.2963,15.0}, {2048.5164,1689.2438,10.2961,15.0}, {2047.9674,1572.2931,10.2961,15.0}, {2048.4014,1506.6959,10.2961,15.0}, {2064.2258,1440.9530,10.2962,15.0}, {2091.5720,1373.2731,10.2952,15.0}, {2149.9819,1373.5031,10.2968,15.0}, {2225.5425,1351.5120,10.4188,15.0}, {2227.3210,1278.1823,10.2961,15.0} }; #define FREEWAY_CHECKPOINTS 30 new Float:gFreewayCheckpoints[FREEWAY_CHECKPOINTS][4] = { {1239.1427,1695.1627,6.3168,20.0}, {1226.3138,1601.5934,6.3585,20.0}, {1224.6870,1334.1022,6.3585,20.0}, {1224.9535,1093.8094,6.4366,20.0}, {1373.5900,859.4901,6.4366,20.0}, {1480.3903,840.0465,6.4331,20.0}, {1657.9940,834.3144,6.3807,20.0}, {1900.6215,833.3372,7.5685,20.0}, {2064.5989,833.2748,6.3585,20.0}, {2181.0193,810.4846,6.3679,20.0}, {2295.9771,765.2249,10.3628,20.0}, {2378.4038,807.1584,7.1340,20.0}, {2486.1809,838.0077,6.3575,20.0}, {2652.8877,948.6396,6.3531,20.0}, {2706.2939,1125.8922,6.3586,20.0}, {2706.1467,1353.7439,6.3585,20.0}, {2709.1023,1671.8213,6.3623,20.0}, {2708.8352,2020.2767,6.3582,20.0}, {2723.1846,2165.8037,6.3683,20.0}, {2723.8447,2329.2424,6.3586,20.0}, {2668.4348,2447.2083,6.3586,20.0}, {2549.8311,2564.8225,4.5320,20.0}, {2443.1423,2605.3872,5.6154,20.0}, {2164.1670,2584.8892,6.3962,20.0}, {1894.5842,2507.6167,6.4288,20.0}, {1637.9525,2457.5022,6.4601,20.0}, {1471.5781,2454.2603,6.3585,20.0}, {1307.0748,2413.2354,6.3597,20.0}, {1227.7690,2095.6714,6.3650,20.0}, {1226.8463,1826.5822,6.3573,20.0} }; #define AIRPORT_CHECKPOINTS 25 new Float:gAirportCheckpoints[AIRPORT_CHECKPOINTS][4] = { {1335.4139,1311.4680,10.4433,20.0}, {1371.9209,1383.0455,10.4432,20.0}, {1384.8876,1524.5031,10.4359,20.0}, {1394.5297,1667.1444,10.4443,20.0}, {1455.2517,1726.9674,10.4432,20.0}, {1475.7906,1648.5292,10.4367,20.0}, {1483.4435,1395.6781,10.4493,20.0}, {1462.8909,1291.8767,10.4444,20.0}, {1404.7726,1293.1791,10.4431,20.0}, {1371.9209,1383.0455,10.4432,20.0}, {1384.8876,1524.5031,10.4359,20.0}, {1394.5297,1667.1444,10.4443,20.0}, {1455.2517,1726.9674,10.4432,20.0}, {1475.7906,1648.5292,10.4367,20.0}, {1483.4435,1395.6781,10.4493,20.0}, {1462.8909,1291.8767,10.4444,20.0}, {1404.7726,1293.1791,10.4431,20.0}, {1371.9209,1383.0455,10.4432,20.0}, {1384.8876,1524.5031,10.4359,20.0}, {1394.5297,1667.1444,10.4443,20.0}, {1455.2517,1726.9674,10.4432,20.0}, {1475.7906,1648.5292,10.4367,20.0}, {1483.4435,1395.6781,10.4493,20.0}, {1462.8909,1291.8767,10.4444,20.0}, {1345.2095,1292.1434,10.4436,20.0} }; new playerWeapons[MAX_PLAYERS][MAX_WEAPONS]; #define MAX_CASINO 3 new Float:gambleAreas[MAX_CASINO][4] = { {1928.1771,987.5739, 1970.5675,1042.8369}, {2171.3618,1584.2649, 2279.4915,1628.6199}, {1117.5068,-11.2747, 1142.4843,12.5986} }; #define MAX_SAVE 64 new savedInfo[MAX_SAVE][4]; new savedNames[MAX_SAVE][MAX_PLAYER_NAME]; new savedWeapons[MAX_SAVE][MAX_WEAPONS]; #define MAX_GANGS 32 #define MAX_GANG_MEMBERS 6 #define MAX_GANG_NAME 16 new gangMembers[MAX_GANGS][MAX_GANG_MEMBERS]; new gangNames[MAX_GANGS][MAX_GANG_NAME]; new gangInfo[MAX_GANGS][3]; //0-created,1-members,2-color new gangBank[MAX_GANGS]; new playerGang[MAX_PLAYERS]; new gangInvite[MAX_PLAYERS]; //Round code stolen from mike's Manhunt :P //new gRoundTime = 3600000; // Round time - 1 hour //new gRoundTime = 1200000; // Round time - 20 mins //new gRoundTime = 900000; // Round time - 15 mins //new gRoundTime = 600000; // Round time - 10 mins //new gRoundTime = 300000; // Round time - 5 mins //new gRoundTime = 120000; // Round time - 2 mins //new gRoundTime = 60000; // Round time - 1 min new gActivePlayers[MAX_PLAYERS]; new gLastGaveCash[MAX_PLAYERS]; //------------------------------------------------------------------------------------------------------ main() {
Поделиться1702007-04-28 16:13:51
НЕ НЕ ПОЛУЧАЕТСЯ БЛИН...А КУДА В КОНЕЦ ВСЕГО СКРИПТА ИЛИ В КОНЕЦ ON PLAYER DEATH?
КСТАТИ НЕ У КОГО НЕТУ МОДАGTA EURO(VA-CREW)?
если у тебя в скрипте еще есть функция OnPlayerDeath
то вставляй в нее
new playercash; new killedplayer[MAX_PLAYER_NAME]; new string[256]; playercash = GetPlayerMoney(playerid); if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); } else { SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); if(bounty[playerid] > 0 && (playerGang[killerid] == 0 || playerGang[playerid] != playerGang[killerid])) { GetPlayerName(playerid, killedplayer, sizeof(killedplayer)); format(string, sizeof(string), "You earned a bounty of %d for killing %s.", bounty[playerid], killedplayer); SendClientMessage(killerid, COLOR_GREEN, string); GivePlayerMoney(killerid, bounty[playerid]); bounty[playerid] = 0; } if(playercash > 0) { GivePlayerMoney(killerid, playercash); } } if(playercash > 0) { ResetPlayerMoney(playerid); }
Поделиться1712007-04-28 16:15:51
Используйте такую кнопочку для выкладывания частей скриптов
Поделиться1722007-04-28 16:18:06
mcdog и что с этим делать?
Поделиться1732007-04-28 16:19:45
divine напиши примеры как поставить несколько чекпойнтов в игру, ну по тому принципу, как ты объяснил
Поделиться1742007-04-28 16:21:52
Ну народ,напишите плз как сохранять бабки игроков в файле, чтобы при входе в игру игрок со своим ником получал его деньги. И чтоб тудаже статисти пихнуть(типа сколько раз умер, сколько убил).
А не дано посмотреть все тот же Freeroam и узнать, как это делается? Там это дело очень ясно показано:
public OnPlayerDisconnect(playerid)
{
dini_IntSet(udb_encode(playername), "money", GetPlayerMoney(playerid));
return 1;
}
Соответственно при коннекте наоборот.
КСТАТИ НЕ У КОГО НЕТУ МОДАGTA EURO(VA-CREW)?
Это частный скрипт сервера VA^Crew, никто тебе его просто так не даст.
Отредактировано divine (2007-04-28 16:26:49)
Поделиться1752007-04-28 18:01:00
Это требует файл dudb,которого у меня нет, и мне кажется система использованная в PenLS лучше этой, но я че-та не совсем это понимаю.
Поделиться1762007-04-28 18:13:59
кАК СДЕЛАТЬ ТАК ЧТОБ ИГРОКИ МЕНЯЛИ ЦВЕТ? НА ПРИМЕРЕ ЛЮКСУРИ В ФОРУМЕ НЕ ПОЛУЧАЕТСЯ
Поделиться1772007-04-28 20:53:36
Ну народ,напишите плз как сохранять бабки игроков в файле, чтобы при входе в игру игрок со своим ником получал его деньги. И чтоб тудаже статисти пихнуть(типа сколько раз умер, сколько убил).
Юзай dini, это проще всего.
а и вот еще продолжение(конечно же не до конца)
Ну нахрен выкладывать сюда скрипт на несколько тысяч строк, когда можно было просто сказать, что используешь Freeroam? И вообще, скрипты более 20 строк выкладывай на пастебин.
divine напиши примеры как поставить несколько чекпойнтов в игру, ну по тому принципу, как ты объяснил
Написанный мною пример наглядно показан в режиме Freeroam.
Это требует файл dudb,которого у меня нет, и мне кажется система использованная в PenLS лучше этой, но я че-та не совсем это понимаю.
Вот ты дурак или прикидываешься? Если у тебя нет dudb, то надо его достать, логично? Юзай поиск.
Поделиться1782007-04-28 21:11:07
Я пробовал, из этого ничего хорошего не выйдет, пока я буду стоять в этой точке,мне каждую секунду будут писать мой текст,что не очень-то приятно.
Есть такая вещь - мозги называется. Если ею пользоваться, то все прекрасно выходит. Я уже в одном из предыдущих постов отписал подробно, как такую систему сделать. Чтобы каждую секунду не писался текст вводим переменную (массив), которая будет сохранять тип территории для игрока. Если игрок находится на этой территории и значение этой переменной не совпадает с типом зоны, значит игрок только что в нее вошел, тогда выводим текст один раз и присваиваем переменной тип зоны. Все! Больше в этой зоне писаться это сообщение не будет. Точно также на выходе: если игрок не находится в зоне, а значение переменной совпадает с типом зоны, значит игрок только что вышел с этой зоны, тогда пишем прощальной сообщение и присваиваем переменной нактивный номер. Вот и все.
Есть офицалки SAMP.com, если им понравится твой мод,они его вылажут нахаляву(т.е. выделят сервак)(так мне дивайн сказал).
Что за бред? Я никогда такого не говорил. Официальные сервера - те, что принадлежат разработчикам и тестерам SA-MP и выделять их простым юзерам никто не будет.
=)) ты думаешь они ченьть поймут? надо примеры, и как это все запихать
Яркий пример наглядно показан в режиме Freeroam.
кАК СДЕЛАТЬ ТАК ЧТОБ ИГРОКИ МЕНЯЛИ ЦВЕТ?
SetPlayerColor()
Выучи сначала основные функции, а потом задавай вопросы.
Отредактировано divine (2007-04-28 21:12:59)
Поделиться1792007-04-28 21:45:45
А ОТКУДА МОЖНО СКАЧАТЬ DUDB
Поделиться1802007-04-29 13:22:41
И ЕЩЕ...я создал чекпоинты(в банке на корабле в оружейке), но когда я захожу все бабло в банке куда-то пропадает И ОРУЖИЕ РЕСПАУНСКОЕ ТОЖЕ!!!ЧТО ДЕЛАТЬ НАПИШИТЕ ПОПОДРОБНЕЕ ПЛЗ
Похожие темы
Общие вопросы | Вопросы по созданию скриптов | 2008-06-24 |
Помогите Ля Sm1l-у :)))) | Вопросы по созданию скриптов | 2007-06-06 |
телепортация | Вопросы по созданию скриптов | 2007-11-26 |
Новый класс! | Вопросы по созданию скриптов | 2007-05-14 |