Beiträge von relyyy

    //Firstly Credits to Homer as this is just a small edit on top of his
    //Secondly please always leave my credits on this too
    //thirdly enjoy


    #include <a_samp>


    #define SCM SendClientMessage
    #define COLOR_PURPLE 0xC2A2DAAA



    new VehicleStarted[MAX_VEHICLES];
    new sendername[MAX_PLAYER_NAME];
    new BigEar[MAX_PLAYERS];


    forward Starting(playerid);
    forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);


    public OnFilterScriptInit()
    {
    print("-------------------------------------");
    print("-----Engine System By Lee Percox-----");
    print("---Credits to Lee Percox & Homer----");


    new Car;
    for(Car=0;Car<MAX_VEHICLES;Car++)
    return 1;
    return 1;
    }



    public OnFilterScriptExit()
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/exitcar", cmdtext, true, 10) == 0) // you do not need to use this command as you just hit enter now
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RemovePlayerFromVehicle(playerid);
    SCM(playerid,0xFFFF00AA,"* You left the vehicle.");
    TogglePlayerControllable(playerid,1);
    }else{
    SCM(playerid,0xFFFF00AA,"* Du bist in kein Auto!");
    }
    }
    return 1;
    }
    return 0;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new CarID = GetPlayerVehicleID(playerid);
    new CarMod = GetVehicleModel(playerid);


    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(VehicleStarted[CarID] == 0 && CarMod != 510 && CarMod != 509 && CarMod != 481)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 510 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 481){
    return 1;
    }
    TogglePlayerControllable(playerid,0);
    SCM(playerid,0x950000FF,"* Drücke SHIFT um den Motor zu starten");
    }else{
    SCM(playerid,0x80FF80FF,"* Motor ist schon an!");
    }
    }
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if((newkeys & (KEY_JUMP)) == (KEY_JUMP))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(IsPlayerConnected(playerid))
    {
    new Vehicle = GetPlayerVehicleID(playerid);
    if(VehicleStarted[Vehicle] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    SCM(playerid,0x0000FFFF,"* Dein motor ist nun wieder aus.");
    TogglePlayerControllable(playerid,1);
    }
    }
    }
    }


    if(newkeys == KEY_ACTION)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 510 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 509 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 481){
    return 1;
    }
    new Vehicle = GetPlayerVehicleID(playerid);
    if(VehicleStarted[Vehicle] == 0)
    {
    new string[256];
    SCM(playerid,0x80FF80FF,"* Starte Motor...");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s Versucht den Motor zu starten.", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    GameTextForPlayer(playerid,"~n~~n~~n~~n~~n~~n~~n~~g~Motor gestartet...",3000,3);
    SetTimerEx("Starting",3500,0,"i",playerid);
    }
    }
    }
    }
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    TogglePlayerControllable(playerid,1);
    new Vehicle = GetPlayerVehicleID(playerid);
    VehicleStarted[Vehicle] = 0;
    return 1;
    }


    public Starting(playerid)
    {
    new Vehicle = GetPlayerVehicleID(playerid);
    new RandomStart;
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RandomStart = random(10);
    switch(RandomStart)
    {
    case 0,1,2,3,4,5,6,7,8,9:
    {
    new string[256];
    VehicleStarted[Vehicle] = 1;
    TogglePlayerControllable(playerid,1);
    GameTextForPlayer(playerid,"~r~Motor Gestartet", 1000, 1);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s startet den Motor.", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    }
    case 10:
    {
    new string[256];
    SendClientMessage(playerid,0xFF1C1CFF,"* Motor nicht gestartet!");
    format(string, sizeof(string), "* %s fails to start the Engine.", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    }
    }
    }
    }
    return 1;
    }


    public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:posx, Float:posy, Float:posz;
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(!BigEar[i])
    {
    GetPlayerPos(i, posx, posy, posz);
    tempposx = (oldposx -posx);
    tempposy = (oldposy -posy);
    tempposz = (oldposz -posz);
    if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
    {
    SendClientMessage(i, col1, string);
    }
    else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
    {
    SendClientMessage(i, col2, string);
    }
    else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
    {
    SendClientMessage(i, col3, string);
    }
    else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
    {
    SendClientMessage(i, col4, string);
    }
    else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    SendClientMessage(i, col5, string);
    }
    }
    else
    {
    SendClientMessage(i, col1, string);
    }
    }
    }
    }
    return 1;
    }


    strtok(const string[], &index, const seperator[] = " ")
    {
    new index2, result[30];
    index2 = strfind(string, seperator, false, index);


    if(index2 == -1)
    {
    if(strlen(string) > index)
    {
    strmid(result, string, index, strlen(string), 30);
    index = strlen(string);
    }
    return result;
    }
    if(index2 > (index + 29))
    {
    index2 = index + 29;
    strmid(result, string, index, index2, 30);
    index = index2;
    return result;
    }
    strmid(result, string, index, index2, 30);
    index = index2 + 1;
    return result;
    }
    #pragma unused strtok