shape1
shape2
shape3
shape4
shape7
shape8

Error (9 штук)+ warnings при компилировании мода.


Статус
Закрыто для дальнейших ответов.

farcray57

Новичок
Пользователь
10.08.2021
1
0
0
Ошибки и варнинги при компилировании мода вылезают в max_speed.inc

Ошибки:

> Executing task: ""E:\сервера/pawno/pawncc.exe" "e:\сервера\gamemodes\BEST_RP_TEST.pwn" -Dgamemodes -;+ -(+ -d3" <

Pawn compiler 3.10.8 Copyright © 1997-2006, ITB CompuPhase

E:\ёхЁтхЁр\pawno\include\nex-ac.inc(6540) : error 004: function "ac_OnPlayerStateChange" is not implemented
E:\ёхЁтхЁр\pawno\include\max_speed.inc(9) : warning 213: tag mismatch: expected tag none ("_"), but found "Float"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(13) : error 020: invalid symbol name ""
E:\ёхЁтхЁр\pawno\include\max_speed.inc(32) : warning 213: tag mismatch: expected tag none ("_"), but found "Float"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(33) : warning 213: tag mismatch: expected tag none ("_"), but found "Float"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(34) : warning 213: tag mismatch: expected tag none ("_"), but found "Float"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(35) : warning 213: tag mismatch: expected tag none ("_"), but found "Float"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(38) : warning 213: tag mismatch: expected tag none ("_"), but found "Float"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(39) : warning 213: tag mismatch: expected tag none ("_"), but found "Float"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(40) : warning 213: tag mismatch: expected tag none ("_"), but found "Float"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(41) : warning 213: tag mismatch: expected tag none ("_"), but found "Float"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(263) : error 055: start of function body without function header
E:\ёхЁтхЁр\pawno\include\max_speed.inc(268) : error 010: invalid function or declaration
E:\ёхЁтхЁр\pawno\include\max_speed.inc(270) : error 054: unmatched closing brace ("}")
E:\ёхЁтхЁр\pawno\include\max_speed.inc(283) : error 017: undefined symbol "max_speed_timer"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(283) : warning 215: expression has no effect
E:\ёхЁтхЁр\pawno\include\max_speed.inc(283) : error 001: expected token: ";", but found "]"
E:\ёхЁтхЁр\pawno\include\max_speed.inc(283) : error 029: invalid expression, assumed zero
E:\ёхЁтхЁр\pawno\include\max_speed.inc(283) : fatal error 107: too many error messages on one line

Compilation aborted.


9 Errors.




max_speed.inc:

#if defined _inc_max_speed
    #endinput
#endif
#define _inc_max_speed

/*settings*/
static const
    Float:MAX_VEHICLE_SPEED_CHANGE    = 10.0, // на сколько может скорость транспорта превышать максимальную
    MAX_VEHICLE_SPEED_SET            = 0.1, // на сколько изменять постоянно
    MAX_VEHICLE_SPEED_TIMER            = 250, // частота вызова таймера, мс

/*variables, massives, enums*/
enum e_STRUCT_VEHICLE_SPEED
{
    newX,
    newY,
    newZ,
    newA,
    newSpeed,

    oldX,
    oldY,
    oldZ,
    oldA,
    oldSpeed
};
static gVehicleSpeed[MAX_PLAYERS][e_STRUCT_VEHICLE_SPEED];
static const e_STRUCT_VEHICLE_SPEED_DEFAULT[e_STRUCT_VEHICLE_SPEED] =
{
    Float:0.0,
    Float:0.0,
    Float:0.0,
    Float:0.0,
    0,

    Float:0.0,
    Float:0.0,
    Float:0.0,
    Float:0.0,
    0
};

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

/*system's code*/
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    max_speed_timer[playerid] = SetTimerEx("@UpdateVehicleVelocity", MAX_VEHICLE_SPEED_TIMER, true, "i", playerid);
    #if defined max_speed_OnPlayerStateChange
        return max_speed_OnPlayerStateChange(playerid, newstate, oldstate);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerStateChange
    #undef OnPlayerStateChange
#else
    #define _ALS_OnPlayerStateChange
#endif

#if defined max_speed_OnPlayerStateChange
    forward max_speed_OnPlayerStateChange(playerid, newstate, oldstate);
#endif

public OnPlayerExitVehicle(playerid, vehicleid)
{
    KillTimer(max_speed_timer[playerid]);
    max_speed_timer[playerid] = -1;
    
    #if defined max_speed_OnPlayerExitVehicle
        return max_speed_OnPlayerExitVehicle(playerid, vehicleid);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerExitVehicle
    #undef OnPlayerExitVehicle
#else
    #define _ALS_OnPlayerExitVehicle
#endif
#define OnPlayerExitVehicle max_speed_OnPlayerExitVehicle

#if defined max_speed_OnPlayerExitVehicle
    forward max_speed_OnPlayerExitVehicle(playerid, vehicleid);
#endif

public OnPlayerDisconnect(playerid, reason)
{
    gVehicleSpeed[playerid] = e_STRUCT_VEHICLE_SPEED_DEFAULT;
    
    #if defined max_speed_OnPlayerDisconnect
        return max_speed_OnPlayerDisconnect(playerid, reason);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerDisconnect
    #undef OnPlayerDisconnect
#else
    #define _ALS_OnPlayerDisconnect
#endif
#define OnPlayerDisconnect max_speed_OnPlayerDisconnect

#if defined max_speed_OnPlayerDisconnect
    forward max_speed_OnPlayerDisconnect(playerid, reason);
#endif

@UpdateVehicleVelocity(playerid);
@UpdateVehicleVelocity(playerid)
{
    static keys, ud, lr, vehicleid = GetPlayerVehicleID(playerid);
    GetPlayerKeys(playerid, keys, ud, lr);

    GetVehiclePos(vehicleid, gVehicleSpeed[playerid][newX], gVehicleSpeed[playerid][newY], gVehicleSpeed[playerid][newZ]);
    GetVehicleZAngle(vehicleid, gVehicleSpeed[playerid][newA]);
    GetVehicleSpeed(vehicleid, gVehicleSpeed[playerid][newSpeed]);

    if(gVehicleSpeed[playerid][newZ] > gVehicleSpeed[playerid][oldZ])
        return 0; // если игрок едет вверх, выходим из функции

    static
        bool: set_angle;

    if(IsNumberInRange(gVehicleSpeed[vehicleid][newA], -gVehicleSpeed[vehicleid][oldA], gVehicleSpeed[vehicleid][newA])
        set_angle = false;

    if(ud == KEY_UP && GetVehicleSpeed[vehicleid] < (gVehicleMaxSpeed[GetVehicleModel(vehicleid)]+10) && set_angle == false) // игрок давит кнопку газа и он не достиг максимальной скорости
        SetVehicleSpeed(vehicleid, gVehicleSpeed[playerid][newSpeed]+MAX_VEHICLE_SPEED_SET);

    gVehicleSpeed[playerid][oldX] = gVehicleSpeed[playerid][newX];
    gVehicleSpeed[playerid][oldY] = gVehicleSpeed[playerid][newY];
    gVehicleSpeed[playerid][oldZ] = gVehicleSpeed[playerid][oldZ];
    gVehicleSpeed[playerid][oldA] = gVehicleSpeed[playerid][oldA];
    gVehicleSpeed[playerid][oldSpeed] = gVehicleSpeed[playerid][newSpeed];
    return 1;
}

stock GetVehicleSpeed(vehicleid)
    return floatround(floatsqroot(gVehicleSpeed[playerid][newX]*gVehicleSpeed[playerid][newX]+gVehicleSpeed[playerid][newY]*gVehicleSpeed[playerid][newY]+gVehicleSpeed[playerid][newZ]*gVehicleSpeed[playerid][newZ])*180.0);

stock SetVehicleSpeed(vehicleid, speed)
{
    new Float:x, Float:y, Float:z, Float:a;
    GetVehicleZAngle(vehicleid, x);
    GetVehicleVelocity(vehicleid, x, y, z);

    return SetVehicleVelocity(vehicleid, floatsin(-a,degrees)*(speed/99), floatcos(-a,degrees)*(speed/99), z);
}

stock IsNumberInRange(value, min, max)
    return ((value-(min+cellmin))<(max-(min+cellmin));
max_speed.pwn:

#include <a_samp>

#if defined _inc_max_speed
    #endinput
#endif
#define _inc_max_speed

new max_speed_timer[MAX_PLAYERS];

/*settings*/
static const
    Float:MAX_VEHICLE_SPEED_CHANGE    = 10.0, // на сколько может скорость транспорта превышать максимальную
    Float:MAX_VEHICLE_SPEED_SET            = 0.1, // на сколько изменять постоянно
    MAX_VEHICLE_SPEED_TIMER            = 250; // частота вызова таймера, мс

/*variables, massives, enums*/
enum e_STRUCT_VEHICLE_SPEED
{
    Float:newX,
    Float:newY,
    Float:newZ,
    Float:newA,
    newSpeed,
    Float:eek:ldX,
    Float:eek:ldY,
    Float:eek:ldZ,
    Float:eek:ldA,
    oldSpeed
};
static gVehicleSpeed[MAX_PLAYERS][e_STRUCT_VEHICLE_SPEED];
static const e_STRUCT_VEHICLE_SPEED_DEFAULT[e_STRUCT_VEHICLE_SPEED] =
{
    Float:0.0,
    Float:0.0,
    Float:0.0,
    Float:0.0,
    0,

    Float:0.0,
    Float:0.0,
    Float:0.0,
    Float:0.0,
    0
};

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

/*system's code*/
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
    {
        max_speed_timer[playerid] = SetTimerEx("@UpdateVehicleVelocity", MAX_VEHICLE_SPEED_TIMER, true, "i", playerid);
        #if defined max_speed_OnPlayerStateChange
            return max_speed_OnPlayerStateChange(playerid, newstate, oldstate);
        #else
            return 1;
        #endif
    }
    return 1;
}
#if defined _ALS_OnPlayerStateChange
    #undef OnPlayerStateChange
#else
    #define _ALS_OnPlayerStateChange
#endif

#if defined max_speed_OnPlayerStateChange
    forward max_speed_OnPlayerStateChange(playerid, newstate, oldstate);
#endif

public OnPlayerExitVehicle(playerid, vehicleid)
{
    KillTimer(max_speed_timer[playerid]);
    max_speed_timer[playerid] = -1;
    
    #if defined max_speed_OnPlayerExitVehicle
        return max_speed_OnPlayerExitVehicle(playerid, vehicleid);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerExitVehicle
    #undef OnPlayerExitVehicle
#else
    #define _ALS_OnPlayerExitVehicle
#endif
#define OnPlayerExitVehicle max_speed_OnPlayerExitVehicle

#if defined max_speed_OnPlayerExitVehicle
    forward max_speed_OnPlayerExitVehicle(playerid, vehicleid);
#endif

public OnPlayerDisconnect(playerid, reason)
{
    gVehicleSpeed[playerid] = e_STRUCT_VEHICLE_SPEED_DEFAULT;
    
    #if defined max_speed_OnPlayerDisconnect
        return max_speed_OnPlayerDisconnect(playerid, reason);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerDisconnect
    #undef OnPlayerDisconnect
#else
    #define _ALS_OnPlayerDisconnect
#endif
#define OnPlayerDisconnect max_speed_OnPlayerDisconnect

#if defined max_speed_OnPlayerDisconnect
    forward max_speed_OnPlayerDisconnect(playerid, reason);
#endif

@UpdateVehicleVelocity(playerid);
@UpdateVehicleVelocity(playerid)
{
    new keys, ud, lr, vehicleid = GetPlayerVehicleID(playerid);
    GetPlayerKeys(playerid, keys, ud, lr);

    GetVehiclePos(vehicleid, gVehicleSpeed[playerid][newX], gVehicleSpeed[playerid][newY], gVehicleSpeed[playerid][newZ]);
    GetVehicleZAngle(vehicleid, gVehicleSpeed[playerid][newA]);
    gVehicleSpeed[playerid][newSpeed] = GetVehicleSpeed(playerid);

    printf("0");
    
    //if(gVehicleSpeed[playerid][newZ] > gVehicleSpeed[playerid][oldZ])
    //    return 1; // если игрок едет вверх, выходим из функции

    printf("1");
    
    static
        bool: set_angle;

    if(IsNumberInRange(gVehicleSpeed[vehicleid][newA], -gVehicleSpeed[vehicleid][oldA], gVehicleSpeed[vehicleid][newA]))
        set_angle = false;

    printf("2");
    
    if(ud == KEY_UP && GetVehicleSpeed(playerid) < (gVehicleMaxSpeed[GetVehicleModel(vehicleid)]+10) && set_angle == false) // игрок давит кнопку газа и он не достиг максимальной скорости
        SetVehicleSpeed(vehicleid, gVehicleSpeed[playerid][newSpeed]+MAX_VEHICLE_SPEED_SET);

    printf("3");
    
    gVehicleSpeed[playerid][oldX] = gVehicleSpeed[playerid][newX];
    gVehicleSpeed[playerid][oldY] = gVehicleSpeed[playerid][newY];
    gVehicleSpeed[playerid][oldZ] = gVehicleSpeed[playerid][oldZ];
    gVehicleSpeed[playerid][oldA] = gVehicleSpeed[playerid][oldA];
    gVehicleSpeed[playerid][oldSpeed] = gVehicleSpeed[playerid][newSpeed];
    
    new fmt_msg[144];
    
    format(fmt_msg, sizeof fmt_msg, "speed: %f", GetVehicleSpeed(playerid));
    SendClientMessage(playerid, -1, fmt_msg);
    
    return 1;
}

stock GetVehicleSpeed(playerid)
    return floatround(floatsqroot(gVehicleSpeed[playerid][newX]*gVehicleSpeed[playerid][newX]+gVehicleSpeed[playerid][newY]*gVehicleSpeed[playerid][newY]+gVehicleSpeed[playerid][newZ]*gVehicleSpeed[playerid][newZ])*180.0);

stock SetVehicleSpeed(vehicleid, Float: speed)
{
    new Float:x, Float:y, Float:z, Float:a;
    GetVehicleZAngle(vehicleid, x);
    GetVehicleVelocity(vehicleid, x, y, z);

    return SetVehicleVelocity(vehicleid, floatsin(-a,degrees)*(speed/99), floatcos(-a,degrees)*(speed/99), z);
}

stock IsNumberInRange(Float: value, Float: min, Float: max)
    return ((value-(min+cellmin))<(max-(min+cellmin)));
 
Просьба по возможности помочь.

 
Последнее редактирование модератором:

Alexander_Batrakov

Новичок
Пользователь
13.09.2019
255
2
0
0
25
Игрок
Код:
#include <a_samp>

#include <max_speed>

new max_speed_timer[MAX_PLAYERS];

/*settings*/
static const
    Float:MAX_VEHICLE_SPEED_SET            = 0.1, 
    MAX_VEHICLE_SPEED_TIMER            = 250;

/*variables, massives, enums*/
enum e_STRUCT_VEHICLE_SPEED
{
    Float:newX,
    Float:newY,
    Float:newZ,
    Float:newA,
    newSpeed,
    Float:oldX,
    Float:oldY,
    Float:oldZ,
    Float:oldA,
    oldSpeed
};
static gVehicleSpeed[MAX_PLAYERS][e_STRUCT_VEHICLE_SPEED];
static const e_STRUCT_VEHICLE_SPEED_DEFAULT[e_STRUCT_VEHICLE_SPEED] =
{
    Float:0.0,
    Float:0.0,
    Float:0.0,
    Float:0.0,
    0,

    Float:0.0,
    Float:0.0,
    Float:0.0,
    Float:0.0,
    0
};

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

/*system's code*/
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
    {
        max_speed_timer[playerid] = SetTimerEx("@UpdateVehicleVelocity", MAX_VEHICLE_SPEED_TIMER, true, "i", playerid);
        #if defined max_speed_OnPlayerStateChange
            return max_speed_OnPlayerStateChange(playerid, newstate, oldstate);
        #else
            return 1;
        #endif
    }
    return 1;
}
#if defined _ALS_OnPlayerStateChange
    #undef OnPlayerStateChange
#else
    #define _ALS_OnPlayerStateChange
#endif

#if defined max_speed_OnPlayerStateChange
    forward max_speed_OnPlayerStateChange(playerid, newstate, oldstate);
#endif

public OnPlayerExitVehicle(playerid, vehicleid)
{
    KillTimer(max_speed_timer[playerid]);
    max_speed_timer[playerid] = -1;

    #if defined max_speed_OnPlayerExitVehicle
        return max_speed_OnPlayerExitVehicle(playerid, vehicleid);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerExitVehicle
    #undef OnPlayerExitVehicle
#else
    #define _ALS_OnPlayerExitVehicle
#endif
#define OnPlayerExitVehicle max_speed_OnPlayerExitVehicle

#if defined max_speed_OnPlayerExitVehicle
    forward max_speed_OnPlayerExitVehicle(playerid, vehicleid);
#endif

public OnPlayerDisconnect(playerid, reason)
{
    gVehicleSpeed[playerid] = e_STRUCT_VEHICLE_SPEED_DEFAULT;

    #if defined max_speed_OnPlayerDisconnect
        return max_speed_OnPlayerDisconnect(playerid, reason);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerDisconnect
    #undef OnPlayerDisconnect
#else
    #define _ALS_OnPlayerDisconnect
#endif
#define OnPlayerDisconnect max_speed_OnPlayerDisconnect

#if defined max_speed_OnPlayerDisconnect
    forward max_speed_OnPlayerDisconnect(playerid, reason);
#endif

@UpdateVehicleVelocity(playerid);
@UpdateVehicleVelocity(playerid)
{
    new keys, ud, lr, vehicleid = GetPlayerVehicleID(playerid);
    GetPlayerKeys(playerid, keys, ud, lr);

    GetVehiclePos(vehicleid, gVehicleSpeed[playerid][newX], gVehicleSpeed[playerid][newY], gVehicleSpeed[playerid][newZ]);
    GetVehicleZAngle(vehicleid, gVehicleSpeed[playerid][newA]);
    gVehicleSpeed[playerid][newSpeed] = GetVehicleSpeed(playerid);

    printf("0");

    //if(gVehicleSpeed[playerid][newZ] > gVehicleSpeed[playerid][oldZ])
    //    return 1; // ???? ????? ???? ?????, ??????? ?? ???????

    printf("1");

    static
        bool: set_angle;

    if(IsNumberInRange(gVehicleSpeed[vehicleid][newA], -gVehicleSpeed[vehicleid][oldA], gVehicleSpeed[vehicleid][newA]))
        set_angle = false;

    printf("2");

    if(ud == KEY_UP && GetVehicleSpeed(playerid) < (gVehicleMaxSpeed[GetVehicleModel(vehicleid)]+10) && set_angle == false) // ????? ????? ?????? ???? ? ?? ?? ?????? ???????????? ????????
        SetVehicleSpeed(vehicleid, gVehicleSpeed[playerid][newSpeed]+MAX_VEHICLE_SPEED_SET);

    printf("3");

    gVehicleSpeed[playerid][oldX] = gVehicleSpeed[playerid][newX];
    gVehicleSpeed[playerid][oldY] = gVehicleSpeed[playerid][newY];
    gVehicleSpeed[playerid][oldZ] = gVehicleSpeed[playerid][oldZ];
    gVehicleSpeed[playerid][oldA] = gVehicleSpeed[playerid][oldA];
    gVehicleSpeed[playerid][oldSpeed] = gVehicleSpeed[playerid][newSpeed];

    new fmt_msg[144];

    format(fmt_msg, sizeof fmt_msg, "speed: %f", GetVehicleSpeed(playerid));
    SendClientMessage(playerid, -1, fmt_msg);

    return 1;
}

stock GetVehicleSpeed(playerid)
    return floatround(floatsqroot(gVehicleSpeed[playerid][newX]*gVehicleSpeed[playerid][newX]+gVehicleSpeed[playerid][newY]*gVehicleSpeed[playerid][newY]+gVehicleSpeed[playerid][newZ]*gVehicleSpeed[playerid][newZ])*180.0);

stock SetVehicleSpeed(vehicleid, Float: speed)
{
    new Float:x, Float:y, Float:z, Float:a;
    GetVehicleZAngle(vehicleid, x);
    GetVehicleVelocity(vehicleid, x, y, z);

    return SetVehicleVelocity(vehicleid, floatsin(-a,degrees)*(speed/99), floatcos(-a,degrees)*(speed/99), z);
}

stock IsNumberInRange(Float: value, Float: min, Float: max)
    return ((value-(min+cellmin))<(max-(min+cellmin)));

 

Давид Ордян

Модератор
Команда портала
Модератор
09.10.2021
180
10
11
0
Тема большой промежуток времени была неактивна.
Закрыто.
 
Статус
Закрыто для дальнейших ответов.