admin Дата: Воскресенье, 28.08.2011, 03:50:37 | Сообщение # 1
Группа: Администраторы
Сообщений: 3869
В этом уроке мы сделаем фары и по воротники. Косяков не обнаружено сам лично проверял. Включить фары под цифровой 2 верху клаве. Включить по воротники - q и e Начнем уроку. Верху мода: Code
#define BLINK_RATE 400 // Скорость вспышки #define PFLASH_RATE 300 // Позволяет контролировать скорость вспышки для общественных фар автомобиля, сделано для полиции,пожарных и скорая помощь. #define LIGHT_KEY KEY_SUBMISSION //установите под ваш вкус какую надо кнопку жать чтобы включать фары #undef MAX_PLAYERS #define MAX_PLAYERS 50 #define PRESSED(%0) \ (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) new BlinkTime[MAX_PLAYERS];
После этого ищем public OnPlayerDisconnect и туда вставляем: Code
KillTimer(BlinkTime[playerid]);
Примерно так должен выглядеть public: Code
public OnPlayerDisconnect(playerid, reason) { KillTimer(BlinkTime[playerid]); return 1; }
После этого ищем public OnPlayerStateChange и туда вставляем:Code
if(newstate == PLAYER_STATE_DRIVER) { new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); lights = encode_lights(1, 1, 1, 1); SetPVarInt(playerid, "vMainOn", 0); UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); } else if(newstate == PLAYER_STATE_ONFOOT) { KillTimer(BlinkTime[playerid]); SetPVarInt(playerid, "CopFlash", 0); }
Примерно так должен быть выглядеть public: Code
public OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate == PLAYER_STATE_DRIVER) { new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); lights = encode_lights(1, 1, 1, 1); SetPVarInt(playerid, "vMainOn", 0); UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); } else if(newstate == PLAYER_STATE_ONFOOT) { KillTimer(BlinkTime[playerid]); SetPVarInt(playerid, "CopFlash", 0); } return 1; }
После этого добавим еше один public такой же! Code
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(PRESSED(LIGHT_KEY)) { if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0) { if(GetPVarInt(playerid, "CopFlash") == 0) { new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); switch(GetPVarInt(playerid, "vMainOn")) { case 0:{ lights = encode_lights(0, 0, 0, 0); SetPVarInt(playerid, "vMainOn", 1); } case 1:{ lights = encode_lights(1, 1, 1, 1); SetPVarInt(playerid, "vMainOn", 0); } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); } } } if(PRESSED(KEY_CROUCH)) { if(IsPublicService(GetPlayerVehicleID(playerid)) && GetPlayerVehicleSeat(playerid) == 0) { switch(GetPVarInt(playerid, "CopFlash")) { case 0:{ KillTimer(BlinkTime[playerid]); BlinkTime[playerid] = SetTimerEx("vBlinker", PFLASH_RATE, 1, "i", playerid); SetPVarInt(playerid, "CopFlash", 1); } case 1:{ KillTimer(BlinkTime[playerid]); new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); lights = encode_lights(1, 1, 1, 1); UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); SetPVarInt(playerid, "CopFlash", 0); } } } } if(PRESSED(KEY_LOOK_LEFT)) { if(GetPlayerVehicleSeat(playerid) == 0) { if(GetPVarInt(playerid, "vBLeft") == 0) { KillTimer(BlinkTime[playerid]); BlinkTime[playerid] = SetTimerEx("vBlinker", BLINK_RATE, 1, "i", playerid); SetPVarInt(playerid, "vBLeft", 1); SetPVarInt(playerid, "vBRight", 0); }else{ KillTimer(BlinkTime[playerid]); new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ lights = encode_lights(1, 1, 1, 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); SetPVarInt(playerid, "vBLeft", 0); } } } if(PRESSED(KEY_LOOK_RIGHT)) { if(GetPlayerVehicleSeat(playerid) == 0) { if(GetPVarInt(playerid, "vBRight") == 0) { KillTimer(BlinkTime[playerid]); BlinkTime[playerid] = SetTimerEx("vBlinker", BLINK_RATE, 1, "i", playerid); SetPVarInt(playerid, "vBRight", 1); SetPVarInt(playerid, "vBLeft", 0); }else{ KillTimer(BlinkTime[playerid]); new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ lights = encode_lights(1, 1, 1, 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); SetPVarInt(playerid, "vBRight", 0); } } } return 1; }
И так это мы сделали. Теперь верху мода еще добавим: Code
forward vBlinker(playerid);
И в любое место вставляем public с функциями: Code
public vBlinker(playerid) { if(IsPlayerInAnyVehicle(playerid) && GetPVarInt(playerid, "CopFlash") != 1) { new Keys, ud, lr, panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetPlayerKeys(playerid, Keys, ud, lr); GetVehicleDamageStatus(carid, panels, doors, lights, tires); if(lr > 0) { if(GetPVarInt(playerid, "vBLeft") == 1) { KillTimer(BlinkTime[playerid]); switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ lights = encode_lights(1, 1, 1, 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); SetPVarInt(playerid, "vBLeft", 0); return 1; } } else if(lr < 0) { if(GetPVarInt(playerid, "vBRight") == 1) { KillTimer(BlinkTime[playerid]); switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ lights = encode_lights(1, 1, 1, 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); SetPVarInt(playerid, "vBRight", 0); return 1; } } if(GetPVarInt(playerid, "vBRight") == 1) { switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ switch(GetPVarInt(playerid, "vBlinkOn")){ case 0:{ lights = encode_lights(1, 1, 0, 0); SetPVarInt(playerid, "vBlinkOn", 1); } case 1:{ lights = encode_lights(1, 1, 1, 1); SetPVarInt(playerid, "vBlinkOn", 0); } } } case 1:{ switch(GetPVarInt(playerid, "vBlinkOn")){ case 0:{ lights = encode_lights(0, 0, 1, 1); SetPVarInt(playerid, "vBlinkOn", 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); SetPVarInt(playerid, "vBlinkOn", 0); } } } } } if(GetPVarInt(playerid, "vBLeft") == 1) { switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ switch(GetPVarInt(playerid, "vBlinkOn")){ case 0:{ lights = encode_lights(0, 0, 1, 1); SetPVarInt(playerid, "vBlinkOn", 1); } case 1:{ lights = encode_lights(1, 1, 1, 1); SetPVarInt(playerid, "vBlinkOn", 0); } } } case 1:{ switch(GetPVarInt(playerid, "vBlinkOn")){ case 0:{ lights = encode_lights(1, 1, 0, 0); SetPVarInt(playerid, "vBlinkOn", 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); SetPVarInt(playerid, "vBlinkOn", 0); } } } } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); } else if(GetPVarInt(playerid, "CopFlash") == 1) { new d[4]; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, d[0], d[1], d[2], d[3]); switch(GetPVarInt(playerid, "vBlinkOn")) { case 0:{ d[2] = encode_lights(1, 1, 0, 0); SetPVarInt(playerid, "vBlinkOn", 1); } case 1:{ d[2] = encode_lights(0, 0, 1, 1); SetPVarInt(playerid, "vBlinkOn", 0); } } UpdateVehicleDamageStatus(carid, d[0], d[1], d[2], d[3]); return 1; } return 1; } encode_lights(light1, light2, light3, light4) { return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3); } IsPublicService(carid) { new PS[11] = { 416, 427, 490, 528, 407, 544, 596, 598, 597, 599, 601 }; for(new i = 0; i < sizeof(PS); i++) { if(GetVehicleModel(carid) == PS[i]) return 1; } return 0; }
Урок by - 26_RUSSS
zm-jail.ru Разработка сайта samp-pawno.ru
Сообщение В этом уроке мы сделаем фары и по воротники. Косяков не обнаружено сам лично проверял. Включить фары под цифровой 2 верху клаве. Включить по воротники - q и e Начнем уроку. Верху мода: Code
#define BLINK_RATE 400 // Скорость вспышки #define PFLASH_RATE 300 // Позволяет контролировать скорость вспышки для общественных фар автомобиля, сделано для полиции,пожарных и скорая помощь. #define LIGHT_KEY KEY_SUBMISSION //установите под ваш вкус какую надо кнопку жать чтобы включать фары #undef MAX_PLAYERS #define MAX_PLAYERS 50 #define PRESSED(%0) \ (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) new BlinkTime[MAX_PLAYERS];
После этого ищем public OnPlayerDisconnect и туда вставляем: Code
KillTimer(BlinkTime[playerid]);
Примерно так должен выглядеть public: Code
public OnPlayerDisconnect(playerid, reason) { KillTimer(BlinkTime[playerid]); return 1; }
После этого ищем public OnPlayerStateChange и туда вставляем:Code
if(newstate == PLAYER_STATE_DRIVER) { new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); lights = encode_lights(1, 1, 1, 1); SetPVarInt(playerid, "vMainOn", 0); UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); } else if(newstate == PLAYER_STATE_ONFOOT) { KillTimer(BlinkTime[playerid]); SetPVarInt(playerid, "CopFlash", 0); }
Примерно так должен быть выглядеть public: Code
public OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate == PLAYER_STATE_DRIVER) { new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); lights = encode_lights(1, 1, 1, 1); SetPVarInt(playerid, "vMainOn", 0); UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); } else if(newstate == PLAYER_STATE_ONFOOT) { KillTimer(BlinkTime[playerid]); SetPVarInt(playerid, "CopFlash", 0); } return 1; }
После этого добавим еше один public такой же! Code
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(PRESSED(LIGHT_KEY)) { if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0) { if(GetPVarInt(playerid, "CopFlash") == 0) { new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); switch(GetPVarInt(playerid, "vMainOn")) { case 0:{ lights = encode_lights(0, 0, 0, 0); SetPVarInt(playerid, "vMainOn", 1); } case 1:{ lights = encode_lights(1, 1, 1, 1); SetPVarInt(playerid, "vMainOn", 0); } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); } } } if(PRESSED(KEY_CROUCH)) { if(IsPublicService(GetPlayerVehicleID(playerid)) && GetPlayerVehicleSeat(playerid) == 0) { switch(GetPVarInt(playerid, "CopFlash")) { case 0:{ KillTimer(BlinkTime[playerid]); BlinkTime[playerid] = SetTimerEx("vBlinker", PFLASH_RATE, 1, "i", playerid); SetPVarInt(playerid, "CopFlash", 1); } case 1:{ KillTimer(BlinkTime[playerid]); new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); lights = encode_lights(1, 1, 1, 1); UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); SetPVarInt(playerid, "CopFlash", 0); } } } } if(PRESSED(KEY_LOOK_LEFT)) { if(GetPlayerVehicleSeat(playerid) == 0) { if(GetPVarInt(playerid, "vBLeft") == 0) { KillTimer(BlinkTime[playerid]); BlinkTime[playerid] = SetTimerEx("vBlinker", BLINK_RATE, 1, "i", playerid); SetPVarInt(playerid, "vBLeft", 1); SetPVarInt(playerid, "vBRight", 0); }else{ KillTimer(BlinkTime[playerid]); new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ lights = encode_lights(1, 1, 1, 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); SetPVarInt(playerid, "vBLeft", 0); } } } if(PRESSED(KEY_LOOK_RIGHT)) { if(GetPlayerVehicleSeat(playerid) == 0) { if(GetPVarInt(playerid, "vBRight") == 0) { KillTimer(BlinkTime[playerid]); BlinkTime[playerid] = SetTimerEx("vBlinker", BLINK_RATE, 1, "i", playerid); SetPVarInt(playerid, "vBRight", 1); SetPVarInt(playerid, "vBLeft", 0); }else{ KillTimer(BlinkTime[playerid]); new panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, panels, doors, lights, tires); switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ lights = encode_lights(1, 1, 1, 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); SetPVarInt(playerid, "vBRight", 0); } } } return 1; }
И так это мы сделали. Теперь верху мода еще добавим: Code
forward vBlinker(playerid);
И в любое место вставляем public с функциями: Code
public vBlinker(playerid) { if(IsPlayerInAnyVehicle(playerid) && GetPVarInt(playerid, "CopFlash") != 1) { new Keys, ud, lr, panels, doors, lights, tires; new carid = GetPlayerVehicleID(playerid); GetPlayerKeys(playerid, Keys, ud, lr); GetVehicleDamageStatus(carid, panels, doors, lights, tires); if(lr > 0) { if(GetPVarInt(playerid, "vBLeft") == 1) { KillTimer(BlinkTime[playerid]); switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ lights = encode_lights(1, 1, 1, 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); SetPVarInt(playerid, "vBLeft", 0); return 1; } } else if(lr < 0) { if(GetPVarInt(playerid, "vBRight") == 1) { KillTimer(BlinkTime[playerid]); switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ lights = encode_lights(1, 1, 1, 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); SetPVarInt(playerid, "vBRight", 0); return 1; } } if(GetPVarInt(playerid, "vBRight") == 1) { switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ switch(GetPVarInt(playerid, "vBlinkOn")){ case 0:{ lights = encode_lights(1, 1, 0, 0); SetPVarInt(playerid, "vBlinkOn", 1); } case 1:{ lights = encode_lights(1, 1, 1, 1); SetPVarInt(playerid, "vBlinkOn", 0); } } } case 1:{ switch(GetPVarInt(playerid, "vBlinkOn")){ case 0:{ lights = encode_lights(0, 0, 1, 1); SetPVarInt(playerid, "vBlinkOn", 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); SetPVarInt(playerid, "vBlinkOn", 0); } } } } } if(GetPVarInt(playerid, "vBLeft") == 1) { switch(GetPVarInt(playerid, "vMainOn")){ case 0:{ switch(GetPVarInt(playerid, "vBlinkOn")){ case 0:{ lights = encode_lights(0, 0, 1, 1); SetPVarInt(playerid, "vBlinkOn", 1); } case 1:{ lights = encode_lights(1, 1, 1, 1); SetPVarInt(playerid, "vBlinkOn", 0); } } } case 1:{ switch(GetPVarInt(playerid, "vBlinkOn")){ case 0:{ lights = encode_lights(1, 1, 0, 0); SetPVarInt(playerid, "vBlinkOn", 1); } case 1:{ lights = encode_lights(0, 0, 0, 0); SetPVarInt(playerid, "vBlinkOn", 0); } } } } } UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); } else if(GetPVarInt(playerid, "CopFlash") == 1) { new d[4]; new carid = GetPlayerVehicleID(playerid); GetVehicleDamageStatus(carid, d[0], d[1], d[2], d[3]); switch(GetPVarInt(playerid, "vBlinkOn")) { case 0:{ d[2] = encode_lights(1, 1, 0, 0); SetPVarInt(playerid, "vBlinkOn", 1); } case 1:{ d[2] = encode_lights(0, 0, 1, 1); SetPVarInt(playerid, "vBlinkOn", 0); } } UpdateVehicleDamageStatus(carid, d[0], d[1], d[2], d[3]); return 1; } return 1; } encode_lights(light1, light2, light3, light4) { return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3); } IsPublicService(carid) { new PS[11] = { 416, 427, 490, 528, 407, 544, 596, 598, 597, 599, 601 }; for(new i = 0; i < sizeof(PS); i++) { if(GetVehicleModel(carid) == PS[i]) return 1; } return 0; }
Урок by - 26_RUSSS Автор - admin Дата добавления - 28.08.2011 в 03:50:37