[CAMPANIE STAFF]Cautam moderatori si designeri activi!
Welcome to WTFCS Community Forums!
Servere gaming la super-preturi! [HOSTING SERVICE]
-->






[PAWN] Modificarea vitezei vehiculelor
Author : mihay111, Category : Tutoriale, 0 Replyes, 680 Views
EVALUATE THIS TOPIC
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
1 Guest(s)
Moderator
     
577
POSTS
452
THREADS
190
REPUTATION
Male
Sex

WtfCs Coins: 0.15[w]

Suit Member
05-03-2020, 12:49 AM
#1
Creat de _SIRIUS_ pe You are not allowed to view links. Register or Login to view. (sursa)

Practic acest "sistem" este baza sistemului stage de pe b-hood.
Incepem prin a defini variabilile de care ne vom folosi:
Adaugati tot de mai jos undeva la inceputul gamemode-ului.


Code:
#define SPEED_MULTIPLIER 1.025
#define SPEED_THRESHOLD  0.4
#define  SpeedUPCheck(%0,%1,%2,%3,%4)  floatround(floatsqroot(%4?(%0*%0+%1*%1+%2*%2):(%0*%0+%1*%1) ) *%3*1.7)
new g_SpeedUpTimer = -1, Float:g_SpeedThreshold, maxSpeed[MAX_VEHICLES];

Adaugati tot de mai jos in OnGameModeInit().


Code:
g_SpeedThreshold = SPEED_THRESHOLD * SPEED_THRESHOLD;
g_SpeedUpTimer = SetTimer("SpeedUP", 250, true);

Adaugati tot de mai jos undeva prin gamemode.


Code:
forward SpeedUP();
public SpeedUP[250]() {
    foreach(new playerid : Player) {
       new vehicleid = GetPlayerVehicleID(playerid), Float:vx, Float:vy, Float:vz, viteza = GetPlayerSpeedUP(playerid, 0);
        if(IsPlayerInAnyVehicle(playerid)) {
            GetVehicleVelocity(vehicleid, vx, vy, vz);
           if(vx * vx + vy * vy < g_SpeedThreshold)
               continue;

           vx *= SPEED_MULTIPLIER;
           vy *= SPEED_MULTIPLIER;

           if (vz > 0.04 || vz < -0.04)
           vz -= 0.020;
            if(viteza < maxSpeed[vehicleid])
                SetVehicleVelocity(vehicleid, vx, vy, vz);
        }
   }
}

Adaugati tot de mai jos undeva prin gamemode.


Code:
stock GetPlayerSpeedUP(playerid, get3d) {
new veh = GetPlayerVehicleID(playerid), Float:FlSP[3];
GetVehicleVelocity(veh, FlSP[0], FlSP[1], FlSP[2]), SpeedUPCheck(FlSP[0], FlSP[1], FlSP[2], 100.0, get3d);
return 1;
}

Adaugati comanda undeva prin gamemode.


Code:
CMD:maxspeedup(playerid, params[]) {
   if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "** Nu te afli intr-un vehicul.");
    new speed, veh = GetPlayerVehicleID(playerid), string[51];
   if(sscanf(params, "i", speed)) return SendClientMessage(playerid, -1, "/maxspeedup [speed]");
   switch(speed) {
       case 0: return SendClientMessage(playerid, -1, "** Max speed-ul a fost eliminat!"), maxSpeed[veh] = 0, 0;
   }
   maxSpeed[veh] = speed;
   format(string, sizeof string, "** Vehiculul #%d detine acum maxSpeed-ul #%d.", veh, maxSpeed[veh]);
    SendClientMessage(playerid, -1, string);
    return 1;


Pentru a elimina max speed-ul de pe un vehicul tastati comanda:



Code:
[/maxspeedup 0]


Forum Jump: