Beiträge von .realyamamoto

    Hey,


    Ich habe ein neues LSPD Interior hinzugefügt und das alte ganz heraus genommen und nun fallen die Autos immer wieder unten in der LSPD Garage durch einander also sie fliegen und manchmal kommen auch die Helikopter in die Garage ;)


    PS: Ist das German Next Era Script.
    PS2: Es ist kein Hacker ;)

    Aha kannst ja ruhig denken das ich Hacke ;)


    Naja in Youtube sind auch viele Videos das der Key gestohlen worden und die ein Ticket geschrieben haben und den Key wieder bekommen haben ;) Aber leider weiß ich nicht wo.

    Wie kann man den Support anschreiben das der Key geklaut worden ist? Steam Support ist Buggy... immer wenn ich mich auf der Homepage einloggen will kommt ein Fehler das PW und ID falsch sind ;)


    PS: Ich habe mir den Key gestern Abend gekauft und nun wieder geklaut ;(

    //
    // Admin vehicle spawner using previews. For SA-MP 0.3x and above.
    // - Kye 2012
    //


    #include <a_samp>
    #include "../include/gl_common.inc"


    #define TOTAL_ITEMS 207
    #define SELECTION_ITEMS 21
    #define ITEMS_PER_LINE 7


    #define HEADER_TEXT "Vehicles"
    #define NEXT_TEXT "Next"
    #define PREV_TEXT "Prev"


    #define DIALOG_BASE_X 75.0
    #define DIALOG_BASE_Y 130.0
    #define DIALOG_WIDTH 550.0
    #define DIALOG_HEIGHT 180.0
    #define SPRITE_DIM_X 60.0
    #define SPRITE_DIM_Y 70.0


    new gTotalItems = TOTAL_ITEMS;
    new PlayerText:gCurrentPageTextDrawId[MAX_PLAYERS];
    new PlayerText:gHeaderTextDrawId[MAX_PLAYERS];
    new PlayerText:gBackgroundTextDrawId[MAX_PLAYERS];
    new PlayerText:gNextButtonTextDrawId[MAX_PLAYERS];
    new PlayerText:gPrevButtonTextDrawId[MAX_PLAYERS];
    new PlayerText:gSelectionItems[MAX_PLAYERS][SELECTION_ITEMS];
    new gSelectionItemsTag[MAX_PLAYERS][SELECTION_ITEMS];
    new gItemAt[MAX_PLAYERS];


    new gItemList[TOTAL_ITEMS] = {
    400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,
    431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,450,451,452,453,454,455,456,457,458,459,460,461,
    462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,
    493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,
    524,525,526,527,528,529,530,531,532,533,534,535,536,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,
    555,556,557,558,559,560,561,562,563,564,565,566,567,568,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,
    586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611
    };


    //------------------------------------------------


    public OnFilterScriptInit()
    {
    print("\n--Admin Vehicle Spawner Loaded\n");
    return 1;
    }


    //------------------------------------------------


    GetNumberOfPages()
    {
    if((gTotalItems >= SELECTION_ITEMS) && (gTotalItems % SELECTION_ITEMS) == 0)
    {
    return (gTotalItems / SELECTION_ITEMS);
    }
    else return (gTotalItems / SELECTION_ITEMS) + 1;
    }


    //------------------------------------------------


    PlayerText:CreateCurrentPageTextDraw(playerid, Float:Xpos, Float:Ypos)
    {
    new PlayerText:txtInit;
    txtInit = CreatePlayerTextDraw(playerid, Xpos, Ypos, "0/0");
    PlayerTextDrawUseBox(playerid, txtInit, 0);
    PlayerTextDrawLetterSize(playerid, txtInit, 0.4, 1.1);
    PlayerTextDrawFont(playerid, txtInit, 1);
    PlayerTextDrawSetShadow(playerid, txtInit, 0);
    PlayerTextDrawSetOutline(playerid, txtInit, 1);
    PlayerTextDrawColor(playerid, txtInit, 0xACCBF1FF);
    PlayerTextDrawShow(playerid, txtInit);
    return txtInit;
    }


    //------------------------------------------------
    // Creates a button textdraw and returns the textdraw ID.


    PlayerText:CreatePlayerDialogButton(playerid, Float:Xpos, Float:Ypos, Float:Width, Float:Height, button_text[])
    {
    new PlayerText:txtInit;
    txtInit = CreatePlayerTextDraw(playerid, Xpos, Ypos, button_text);
    PlayerTextDrawUseBox(playerid, txtInit, 1);
    PlayerTextDrawBoxColor(playerid, txtInit, 0x000000FF);
    PlayerTextDrawBackgroundColor(playerid, txtInit, 0x000000FF);
    PlayerTextDrawLetterSize(playerid, txtInit, 0.4, 1.1);
    PlayerTextDrawFont(playerid, txtInit, 1);
    PlayerTextDrawSetShadow(playerid, txtInit, 0); // no shadow
    PlayerTextDrawSetOutline(playerid, txtInit, 0);
    PlayerTextDrawColor(playerid, txtInit, 0x4A5A6BFF);
    PlayerTextDrawSetSelectable(playerid, txtInit, 1);
    PlayerTextDrawAlignment(playerid, txtInit, 2);
    PlayerTextDrawTextSize(playerid, txtInit, Height, Width); // The width and height are reversed for centering.. something the game does <g>
    PlayerTextDrawShow(playerid, txtInit);
    return txtInit;
    }

    //------------------------------------------------


    PlayerText:CreatePlayerHeaderTextDraw(playerid, Float:Xpos, Float:Ypos, header_text[])
    {
    new PlayerText:txtInit;
    txtInit = CreatePlayerTextDraw(playerid, Xpos, Ypos, header_text);
    PlayerTextDrawUseBox(playerid, txtInit, 0);
    PlayerTextDrawLetterSize(playerid, txtInit, 1.25, 3.0);
    PlayerTextDrawFont(playerid, txtInit, 0);
    PlayerTextDrawSetShadow(playerid, txtInit, 0);
    PlayerTextDrawSetOutline(playerid, txtInit, 1);
    PlayerTextDrawColor(playerid, txtInit, 0xACCBF1FF);
    PlayerTextDrawShow(playerid, txtInit);
    return txtInit;
    }


    //------------------------------------------------


    PlayerText:CreatePlayerBackgroundTextDraw(playerid, Float:Xpos, Float:Ypos, Float:Width, Float:Height)
    {
    new PlayerText:txtBackground = CreatePlayerTextDraw(playerid, Xpos, Ypos,
    " ~n~"); // enough space for everyone
    PlayerTextDrawUseBox(playerid, txtBackground, 1);
    PlayerTextDrawBoxColor(playerid, txtBackground, 0x00000099);
    PlayerTextDrawLetterSize(playerid, txtBackground, 5.0, 5.0);
    PlayerTextDrawFont(playerid, txtBackground, 0);
    PlayerTextDrawSetShadow(playerid, txtBackground, 0);
    PlayerTextDrawSetOutline(playerid, txtBackground, 0);
    PlayerTextDrawColor(playerid, txtBackground,0x000000FF);
    PlayerTextDrawTextSize(playerid, txtBackground, Width, Height);
    PlayerTextDrawBackgroundColor(playerid, txtBackground, 0x00000099);
    PlayerTextDrawShow(playerid, txtBackground);
    return txtBackground;
    }


    //------------------------------------------------
    // Creates a model preview sprite


    PlayerText:CreateModelPreviewTextDraw(playerid, modelindex, Float:Xpos, Float:Ypos, Float:width, Float:height)
    {
    new PlayerText:txtPlayerSprite = CreatePlayerTextDraw(playerid, Xpos, Ypos, ""); // it has to be set with SetText later
    PlayerTextDrawFont(playerid, txtPlayerSprite, TEXT_DRAW_FONT_MODEL_PREVIEW);
    PlayerTextDrawColor(playerid, txtPlayerSprite, 0xFFFFFFFF);
    PlayerTextDrawBackgroundColor(playerid, txtPlayerSprite, 0x000000EE);
    PlayerTextDrawTextSize(playerid, txtPlayerSprite, width, height); // Text size is the Width:Height
    PlayerTextDrawSetPreviewModel(playerid, txtPlayerSprite, modelindex);
    PlayerTextDrawSetPreviewRot(playerid,txtPlayerSprite, -16.0, 0.0, -55.0);
    PlayerTextDrawSetSelectable(playerid, txtPlayerSprite, 1);
    PlayerTextDrawShow(playerid,txtPlayerSprite);
    return txtPlayerSprite;
    }


    //------------------------------------------------


    DestroyPlayerModelPreviews(playerid)
    {
    new x=0;
    while(x != SELECTION_ITEMS) {
    if(gSelectionItems[playerid][x] != PlayerText:INVALID_TEXT_DRAW) {
    PlayerTextDrawDestroy(playerid, gSelectionItems[playerid][x]);
    gSelectionItems[playerid][x] = PlayerText:INVALID_TEXT_DRAW;
    }
    x++;
    }
    }


    //------------------------------------------------


    ShowPlayerModelPreviews(playerid)
    {
    new x=0;
    new Float:BaseX = DIALOG_BASE_X;
    new Float:BaseY = DIALOG_BASE_Y - (SPRITE_DIM_Y * 0.33); // down a bit
    new linetracker = 0;

    new itemat = GetPVarInt(playerid, "vspawner_page") * SELECTION_ITEMS;

    // Destroy any previous ones created
    DestroyPlayerModelPreviews(playerid);


    while(x != SELECTION_ITEMS && itemat < gTotalItems) {
    if(linetracker == 0) {
    BaseX = DIALOG_BASE_X + 25.0; // in a bit from the box
    BaseY += SPRITE_DIM_Y + 1.0; // move on the Y for the next line
    }
    gSelectionItems[playerid][x] = CreateModelPreviewTextDraw(playerid, gItemList[itemat], BaseX, BaseY, SPRITE_DIM_X, SPRITE_DIM_Y);
    gSelectionItemsTag[playerid][x] = gItemList[itemat];
    BaseX += SPRITE_DIM_X + 1.0; // move on the X for the next sprite
    linetracker++;
    if(linetracker == ITEMS_PER_LINE) linetracker = 0;
    itemat++;
    x++;
    }
    }


    //------------------------------------------------


    UpdatePageTextDraw(playerid)
    {
    new PageText[64+1];
    format(PageText, 64, "%d/%d", GetPVarInt(playerid,"vspawner_page") + 1, GetNumberOfPages());
    PlayerTextDrawSetString(playerid, gCurrentPageTextDrawId[playerid], PageText);
    }


    //------------------------------------------------


    CreateSelectionMenu(playerid)
    {
    gBackgroundTextDrawId[playerid] = CreatePlayerBackgroundTextDraw(playerid, DIALOG_BASE_X, DIALOG_BASE_Y + 20.0, DIALOG_WIDTH, DIALOG_HEIGHT);
    gHeaderTextDrawId[playerid] = CreatePlayerHeaderTextDraw(playerid, DIALOG_BASE_X, DIALOG_BASE_Y, HEADER_TEXT);
    gCurrentPageTextDrawId[playerid] = CreateCurrentPageTextDraw(playerid, DIALOG_WIDTH - 30.0, DIALOG_BASE_Y + 15.0);
    gNextButtonTextDrawId[playerid] = CreatePlayerDialogButton(playerid, DIALOG_WIDTH - 30.0, DIALOG_BASE_Y+DIALOG_HEIGHT+100.0, 50.0, 16.0, NEXT_TEXT);
    gPrevButtonTextDrawId[playerid] = CreatePlayerDialogButton(playerid, DIALOG_WIDTH - 90.0, DIALOG_BASE_Y+DIALOG_HEIGHT+100.0, 50.0, 16.0, PREV_TEXT);


    ShowPlayerModelPreviews(playerid);
    UpdatePageTextDraw(playerid);
    }


    //------------------------------------------------


    DestroySelectionMenu(playerid)
    {
    DestroyPlayerModelPreviews(playerid);


    PlayerTextDrawDestroy(playerid, gHeaderTextDrawId[playerid]);
    PlayerTextDrawDestroy(playerid, gBackgroundTextDrawId[playerid]);
    PlayerTextDrawDestroy(playerid, gCurrentPageTextDrawId[playerid]);
    PlayerTextDrawDestroy(playerid, gNextButtonTextDrawId[playerid]);
    PlayerTextDrawDestroy(playerid, gPrevButtonTextDrawId[playerid]);


    gHeaderTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
    gBackgroundTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
    gCurrentPageTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
    gNextButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
    gPrevButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
    }


    //------------------------------------------------


    SpawnVehicle_InfrontOfPlayer(playerid, vehiclemodel, color1, color2)
    {
    new Float:x,Float:y,Float:z;
    new Float:facing;
    new Float:distance;


    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, facing);


    new Float:size_x,Float:size_y,Float:size_z;
    GetVehicleModelInfo(vehiclemodel, VEHICLE_MODEL_INFO_SIZE, size_x, size_y, size_z);

    distance = size_x + 0.5;


    x += (distance * floatsin(-facing, degrees));
    y += (distance * floatcos(-facing, degrees));


    facing += 90.0;
    if(facing > 360.0) facing -= 360.0;


    return CreateVehicle(vehiclemodel, x, y, z + (size_z * 0.25), facing, color1, color2, -1);
    }


    //------------------------------------------------


    HandlePlayerItemSelection(playerid, selecteditem)
    {
    // In this case we're spawning a vehicle for them
    SpawnVehicle_InfrontOfPlayer(playerid, gSelectionItemsTag[playerid][selecteditem], -1, -1);
    }


    //------------------------------------------------


    public OnPlayerConnect(playerid)
    {
    // Init all of the textdraw related globals
    gHeaderTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
    gBackgroundTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
    gCurrentPageTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
    gNextButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;
    gPrevButtonTextDrawId[playerid] = PlayerText:INVALID_TEXT_DRAW;

    for(new x=0; x < SELECTION_ITEMS; x++) {
    gSelectionItems[playerid][x] = PlayerText:INVALID_TEXT_DRAW;
    }

    gItemAt[playerid] = 0;

    return 1; // Allow other scripts to keep processing OnPlayerConnect
    }


    //-------------------------------------------
    // Even though only Player* textdraws are used in this script,
    // OnPlayerClickTextDraw is still required to handle ESC


    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    if(GetPVarInt(playerid, "vspawner_active") == 0) return 0;


    // Handle: They cancelled (with ESC)
    if(clickedid == Text:INVALID_TEXT_DRAW) {
    DestroySelectionMenu(playerid);
    SetPVarInt(playerid, "vspawner_active", 0);
    PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
    return 1;
    }

    return 0;
    }


    //------------------------------------------------


    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    {
    if(GetPVarInt(playerid, "vspawner_active") == 0) return 0;


    new curpage = GetPVarInt(playerid, "vspawner_page");

    // Handle: next button
    if(playertextid == gNextButtonTextDrawId[playerid]) {
    if(curpage < (GetNumberOfPages() - 1)) {
    SetPVarInt(playerid, "vspawner_page", curpage + 1);
    ShowPlayerModelPreviews(playerid);
    UpdatePageTextDraw(playerid);
    PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
    } else {
    PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
    }
    return 1;
    }

    // Handle: previous button
    if(playertextid == gPrevButtonTextDrawId[playerid]) {
    if(curpage > 0) {
    SetPVarInt(playerid, "vspawner_page", curpage - 1);
    ShowPlayerModelPreviews(playerid);
    UpdatePageTextDraw(playerid);
    PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0);
    } else {
    PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
    }
    return 1;
    }

    // Search in the array of textdraws used for the items
    new x=0;
    while(x != SELECTION_ITEMS) {
    if(playertextid == gSelectionItems[playerid][x]) {
    HandlePlayerItemSelection(playerid, x);
    PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
    DestroySelectionMenu(playerid);
    CancelSelectTextDraw(playerid);
    SetPVarInt(playerid, "vspawner_active", 0);
    return 1;
    }
    x++;
    }

    return 0;
    }


    //------------------------------------------------


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new cmd[256+1];
    new idx;


    if(!IsPlayerAdmin(playerid)) return 0;

    cmd = strtok(cmdtext, idx);


    if(strcmp("/vspawner", cmd, true) == 0)
    {
    // If there was a previously created selection menu, destroy it
    DestroySelectionMenu(playerid);

    SetPVarInt(playerid, "vspawner_active", 1);
    //SetPVarInt(playerid, "vspawner_page", 0); // will reset the page back to the first

    CreateSelectionMenu(playerid);
    SelectTextDraw(playerid, 0xACCBF1FF);
    return 1;
    }

    return 0;
    }
    //------------------------------------------------


    Ich kanns halt Like a Pro ;)