Jump to content

[EXTREME RACE MODE]NTRM


Guest poblib

Recommended Posts

mod ala rally

benzin,cas a vela ineho vas caka v tomto mode!pracujem na vyvoji verzie 0.1'

prikladam pawno na ukazku vyvoja:

 

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

// New Technologie Racing Mode v 0.1 by [CX]shotung

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

 

#include

#include

#include

#include

#include

#include

#include

 

enum SavePlayerPosEnum { Float:LastX, Float:LastY, Float:LastZ, Num }

enum BasicInfo { money, team, logged, spawned, specinfo }

new SavePlayerPos[MAX_PLAYERS][savePlayerPosEnum];

new BI[MAX_PLAYERS][basicInfo];

 

//=========================================================================TEAMS

#define TEAM_NONE 0

#define COLOR_NONE 0xFFFF00FF

#define TEAM_PILOT 1

#define COLOR_PILOT 0x004080FF

#define TEAM_RESCUE 2

#define COLOR_RESCUE 0xFF0000FF

#define TEAM_SERVIS 3

#define COLOR_SERVIS 0x808080FF

#define TEAM_ATTACKER 4

#define COLOR_ATTACKER 0x1F1F1FFF

//======================================================================VEHICLES

#define TYPE_AIRPLANE 0

#define TYPE_TRAIN 1

#define TYPE_BIKE 2

#define TYPE_BOAT 3

#define TYPE_CAR 4

#define TYPE_RC 5

//==========================================================================CARS

#define CAR_HUSTLER 545

#define MFUEL_HUSTLER 50

#define CFUEL_HUSTLER 5

#define TFUEL_HUSTLER BENZIN

#define CAPACITY_HUSTLER 40

 

 

#define CAR_STAFFORD 580

#define MFUEL_STAFFORD 45

#define CFUEL_STAFFORD 4

#define TFUEL_STAFFORD BENZIN

#define CAPACITY_STAFFORD 30

//==========================================================================FUEL

#define BENZIN 1

#define NAFTA 2

 

#define PRICE_BENZIN 35

#define PRICE_NAFTA 44

//=======================================================================COLOURS

#define COLOR_SYSTEM 0x006C6CFF

#define bb 0xEFEFF7AA

//========================================================================TIMERS

#define TIMER_VEHICLESTATUS 1000

#define TIMER_CONSUMPTION 240000

 

#define TIMER_TIME 600000

#define TIMER_WEATHERCH 300000

 

//==========================================================================DCMD

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

//====================================================================TACHOMETER

new UpdateSeconds; new Float:distance,valuea,valueb; new benzin[MAX_VEHICLES];

//=====================================================================CAS+DATUM

new den = 3; new nastavene = 0; new TimerDni;

new hourt,minutet,secondt; new yeart,montht,dayt;

new HDS = 0; new MDS = 0; new SDS = 0; new CDS;

new string99[256]; new string98[256]; new string97[256]; new string96[256];

new Text:Clock; new Text:Date; new Text:Sekundy; new Text:Dni;

//======================================================================FORWARDS

forward VehicleStatus(vehicleid,playerid);

forward Consumption(playerid);

forward WeatherChanger();

 

forward time(playerid);

forward SetDayBorder();

forward SClock(playerid);

forward DateD(playerid);

forward HMseconds(playerid);

 

forward GetVehicleType(vehicleid);

forward IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius);

forward GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z);

forward GetDistanceBetweenPlayers(playerid,playerid2);

forward GetVehicleWithinDistance( playerid, Float:x1, Float:y1, Float:z1, Float:dist, &veh);

 

//=================================================================USELES-STOCKS

stock SystemMsg(playerid,msg[]) {

if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) {

SendClientMessage(playerid,COLOR_SYSTEM,msg);

}

return 1;

}

 

stock PlayerName(playerid) {

new name[64];

GetPlayerName(playerid, name, 64);

return name;

}

//===================================================================TIME-STOCKS

stock SetHM() {

gettime(hourt,minutet,secondt);

if (minutet <= 9 && hourt <= 9) { format(string99,25,"0%d:0%d",hourt,minutet);}

else if (minutet >= 10 && hourt >= 10) {format(string99,25,"%d:%d",hourt,minutet);}

else if (minutet <= 9 && hourt >= 10) { format(string99,25,"%d:0%d",hourt,minutet);}

else if (minutet >= 10 && hourt <= 9) {format(string99,25,"0%d:%d",hourt,minutet);}

return 1;

}

 

stock SetD() {

getdate(yeart,montht,dayt);

if (dayt <= 9 && montht <= 9) { format(string98,25,"0%d.0%d.%d",dayt,montht,yeart);}

else if (dayt >= 9 && montht >= 9) {format(string98,25,"%d.%d.%d",dayt,montht,yeart);}

else if (dayt <= 9 && montht >= 10) { format(string98,25,"0%d.%d.%d",dayt,montht,yeart);}

else if (dayt >= 10 && montht <= 9) {format(string98,25,"%d.0%d.%d",dayt,montht,yeart);}

return 1;

}

 

stock SetS() {

gettime(hourt,minutet,secondt);

format(string97,25,"%d",secondt);

return 1;

}

 

stock SetWeek() {

if (nastavene == 0)

{ nastavene = 1; SetDayBorder(); }

gettime(hourt,minutet,secondt);

if (nastavene == 1 && minutet >= 1 && secondt >= 1)

{ gettime(hourt,minutet,secondt);

HDS = hourt; MDS = minutet; SDS = secondt;

HDS = HDS * 60; HDS = HDS * 60; HDS = HDS * 60; HDS = HDS * 1000;

MDS = MDS * 60; MDS = MDS * 1000; SDS = SDS * 1000;

CDS = HDS + MDS; CDS = CDS + SDS; CDS = 86400000 - CDS;

TimerDni = SetTimer("SetDayBorder",CDS,1);

}

return 1;

}

 

stock SetDayCount()

{

if(den == 7)

{ den = 1; }

if(den >= 1 && den < 7)

{ den = den + 1;

}

return 1;

}

 

stock SetNameForBorder()

{

if (den == 1) return format(string96,25,"pondelok"," ");

if (den == 2) return format(string96,25,"utorok"," ");

if (den == 3) return format(string96,25,"streda"," ");

if (den == 4) return format(string96,25,"stvrtok"," ");

if (den == 5) return format(string96,25,"piatok"," ");

if (den == 6) return format(string96,25,"sobota"," ");

if (den == 7) return format(string96,25,"nedela"," ");

return 1;

}

//======================================================================COMMANDS

dcmd_register(playerid,params[]) {

if (BI[playerid][logged] == 1) return SystemMsg(playerid,"Uz si prihlaseny.");

if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Ucet uz existuje, prosim /login [heslo]'.");

if (strlen(params)==0) return SystemMsg(playerid,"Pouzite: /register[heslo]'");

if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Ucet bol uspesne vytvoreny. Teraz sa môzete prihlasit /login [heslo]");

return true;

}

 

dcmd_login(playerid,params[]) {

if (BI[playerid][logged] == 1) return SystemMsg(playerid,"Si prihlaseny.");

if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Ucet neexsistuje, prosim /register [heslo]'.");

if (strlen(params)==0) return SystemMsg(playerid,"Pouzite: /login [heslo]'");

if (udb_CheckLogin(PlayerName(playerid),params)) {

BI[playerid][team] = dUserINT(PlayerName(playerid)).("team");

BI[playerid][money] = dUserINT(PlayerName(playerid)).("money");

 

 

 

BI[playerid][logged] = 1;

return SystemMsg(playerid,"Prihlaseny! Tvoje posledne informacie zistis : /info");

}

return SystemMsg(playerid,"Login zlyhal! (Chybne Heslo)");

}

//============================================================================//

main()

{

print("\n------------------------------------------------");

print("New Technologie Racing Mode v 0.1 by [CX]shotung");

print("------------------------------------------------\n");

}

//============================================================================//

public OnGameModeInit()

{

SetGameModeText("NTRM 0.1");

 

SendRconCommand("mapname V0.1");

EnableTirePopping(1);

ShowPlayerMarkers(1);

ShowNameTags(1);

UsePlayerPedAnims();

EnableZoneNames(1);

DisableInteriorEnterExits();

 

SetTimer("VehicleStatus",TIMER_VEHICLESTATUS,1);

 

 

SetTimer("WeatherChanger",TIMER_WEATHERCH, 1);

SetHM(); SetD(); SetS(); SetWeek();

SetTimer("DateD",600000,0);

SetTimer("HMseconds",1000,1);

 

Clock = TextDrawCreate(545.000000,25.000000,string99);

TextDrawFont(Clock,3);

TextDrawLetterSize(Clock,0.499999,1.500000);

TextDrawColor(Clock,0xffffff99);

TextDrawSetOutline(Clock,1);

TextDrawSetProportional(Clock,1);

TextDrawSetShadow(Clock,1);

TextDrawShowForAll(Clock);

 

Date = TextDrawCreate(499.000000,13.000000,string98);

TextDrawFont(Date,3);

TextDrawLetterSize(Date,0.599999,1.000000);

TextDrawColor(Date,0xffffffcc);

TextDrawSetOutline(Date,1);

TextDrawSetProportional(Date,1);

TextDrawSetShadow(Date,1);

TextDrawShowForAll(Date);

 

Sekundy = TextDrawCreate(595.000000,26.000000,string97);

TextDrawFont(Sekundy,3);

TextDrawLetterSize(Sekundy,0.299999,1.000000);

TextDrawColor(Sekundy,0xff000099);

TextDrawSetOutline(Sekundy,1);

TextDrawSetProportional(Sekundy,1);

TextDrawSetShadow(Sekundy,1);

TextDrawShowForAll(Sekundy);

 

Dni = TextDrawCreate(499.000000,96.000000,string96);

TextDrawFont(Dni,3);

TextDrawLetterSize(Dni,0.699999,1.000000);

TextDrawColor(Dni,0x00ff0099);

TextDrawSetOutline(Dni,1);

TextDrawSetProportional(Dni,1);

TextDrawSetShadow(Dni,1);

TextDrawShowForAll(Dni);

return 1;

}

 

public OnGameModeExit()

{

return 1;

}

 

public OnPlayerRequestClass(playerid, classid)

{

SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);

SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);

SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);

return 1;

}

 

public OnPlayerRequestSpawn(playerid)

{

return 1;

}

 

public OnPlayerConnect(playerid)

{

if(IsPlayerConnected(playerid)) {

new string[256];

new pName[30];

 

BI[playerid][team] = TEAM_NONE;

BI[playerid][money] = 0;

BI[playerid][logged] = 0;

BI[playerid][spawned] = 0;

BI[playerid][specinfo] = 0;

 

SetPlayerColor(playerid,COLOR_NONE);

 

GetPlayerName(playerid, pName, 30);

format(string, 256, "%s sa pripojil na server.", pName);

SendClientMessageToAll(COLOR_SYSTEM,string);

}

return 1;

}

 

public OnPlayerDisconnect(playerid, reason)

{

return 1;

}

 

public OnPlayerSpawn(playerid)

{

return 1;

}

 

public OnPlayerDeath(playerid, killerid, reason)

{

return 1;

}

 

public OnVehicleSpawn(vehicleid)

{

return 1;

}

 

public OnVehicleDeath(vehicleid, killerid)

{

return 1;

}

 

public OnPlayerText(playerid, text[])

{

return 1;

}

 

public OnPlayerPrivmsg(playerid, recieverid, text[])

{

return 1;

}

 

public OnPlayerCommandText(playerid, cmdtext[])

{

//=========================================================================BASIC

dcmd(register,8,cmdtext);

dcmd(login,5,cmdtext);

return 0;

}

 

public OnPlayerInfoChange(playerid)

{

return 1;

}

 

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

{

if (benzin[vehicleid] < 1) {

GameTextForPlayer(bb,"~r~Toto vozidlo nema palivo!",2500,1);

}

return 1;

}

 

public OnPlayerExitVehicle(playerid, vehicleid)

{

return 1;

}

 

public OnPlayerStateChange(playerid, newstate, oldstate)

{

return 1;

}

 

public OnPlayerEnterCheckpoint(playerid)

{

return 1;

}

 

public OnPlayerLeaveCheckpoint(playerid)

{

return 1;

}

 

public OnPlayerEnterRaceCheckpoint(playerid)

{

return 1;

}

 

public OnPlayerLeaveRaceCheckpoint(playerid)

{

return 1;

}

 

public OnRconCommand(cmd[])

{

return 1;

}

 

public OnObjectMoved(objectid)

{

return 1;

}

 

public OnPlayerObjectMoved(playerid, objectid)

{

return 1;

}

 

public OnPlayerPickUpPickup(playerid, pickupid)

{

return 1;

}

 

public OnPlayerSelectedMenuRow(playerid, row)

{

return 1;

}

 

public OnPlayerExitedMenu(playerid)

{

return 1;

}

 

//===================================================================PUBLICS-CAR

public VehicleStatus(vehicleid,playerid) {

for(new i=0;i

new Float:x,Float:y,Float:z;

{

if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))

{

GetPlayerPos(i, x, y, z);

distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[LastZ])),2));

valuea = floatround(distance * 5000);

if(UpdateSeconds > 1)

{

valuea = floatround(valuea / UpdateSeconds);

//SavePlayerPos[Num] = floatround(value/1600);

}

}

SavePlayerPos[LastX] = x;

SavePlayerPos[LastY] = y;

SavePlayerPos[LastZ] = z;

}

}

if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && GetVehicleType(GetPlayerVehicleID(i)) == TYPE_CAR) {

new string[MAX_STRING]; new autorr[MAX_PLAYERS]; new Float:stav; autorr=GetPlayerVehicleID(i); GetVehicleHealth(autorr,stav);

valuea = floatround(valuea / 1400); valueb = floatround(valuea / 1.7); valuea = floatround(valuea - valueb); SavePlayerPos[Num] = 0; SavePlayerPos[Num] = valuea;

//format(string,sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~ ~r~Benzin ~y~: %d ~r~litru ~r~Stav ~y~: %1.f ~w~",benzin[GetPlayerVehicleID(i)],stav); %0.0f

//format(string,sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~ ~r~Palivo ~y~: %d ~r~Stav ~y~: %1.f ~r~Km/h ~y~: %0.0f ~w~",benzin[GetPlayerVehicleID(i)],stav,floatround(valuea/1600));

format(string,sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~ ~r~Palivo ~y~: %d ~r~Stav ~y~: %1.f ~r~Km/h ~y~: %d ~w~",benzin[GetPlayerVehicleID(i)],stav,SavePlayerPos[Num]);

GameTextForPlayer(i,string,1500,3); SavePlayerPos[Num] = 0;

}

if(benzin[GetPlayerVehicleID(i)]<1 && IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && GetVehicleType(GetPlayerVehicleID(i)) == TYPE_CAR) {

RemovePlayerFromVehicle(i);

GameTextForPlayer(bb,"~r~Doslo ti Palivo!",3000,1);

}

if(IsPlayerInSphere(i,-1672.3580,415.0102,7.1797,10) || IsPlayerInSphere(i,-2028.9136,157.2211,28.8359,10) || IsPlayerInSphere(i,-2413.8376,976.8757,45.2969,10) && GetPlayerMoney(i)>=30 && benzin[GetPlayerVehicleID(i)]<50 && IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER &&GetPlayerState(i) == PLAYER_STATE_DRIVER && GetVehicleType(GetPlayerVehicleID(i)) == TYPE_CAR) {

if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && GetVehicleType(GetPlayerVehicleID(i)) == TYPE_CAR) {

benzin[GetPlayerVehicleID(i)]++;

GivePlayerMoney(i,-50);

new neco[256];

format(neco,256, "~r~Tankujes - ~b~cena - $~y~50");

GameTextForPlayer(i,neco,1500,5);

}

}

}

return 1;

}

 

public Consumption(playerid) {

for(new i=0;i

if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && GetVehicleType(GetPlayerVehicleID(i)) == TYPE_CAR) {

if(GetVehicleModel(GetPlayerVehicleID(i)) == CAR_HUSTLER)

{ benzin[GetPlayerVehicleID(i)] = benzin[GetPlayerVehicleID(i)] - CFUEL_HUSTLER; }

if(GetVehicleModel(GetPlayerVehicleID(i)) == CAR_STAFFORD)

{ benzin[GetPlayerVehicleID(i)] = benzin[GetPlayerVehicleID(i)] - CFUEL_STAFFORD; }

}

}

return true;

}

//==================================================================PUBLICS-TIME

public time()

{

new hour,minute,second;

gettime(hour,minute,second);

SetTimer("time",TIMER_TIME,0);

if (hour == 0){SetWorldTime(0);}

if (hour == 1){SetWorldTime(1);}

if (hour == 2){SetWorldTime(2);}

if (hour == 3){SetWorldTime(3);}

if (hour == 4){SetWorldTime(4);}

if (hour == 5){SetWorldTime(5);}

if (hour == 6){SetWorldTime(6);}

if (hour == 7){SetWorldTime(7);}

if (hour == 8){SetWorldTime(8);}

if (hour == 9){SetWorldTime(9);}

if (hour == 10){SetWorldTime(10);}

if (hour == 11){SetWorldTime(11);}

if (hour == 12){SetWorldTime(12);}

if (hour == 13){SetWorldTime(13);}

if (hour == 14){SetWorldTime(14);}

if (hour == 15){SetWorldTime(15);}

if (hour == 16){SetWorldTime(16);}

if (hour == 17){SetWorldTime(17);}

if (hour == 18){SetWorldTime(18);}

if (hour == 19){SetWorldTime(19);}

if (hour == 20){SetWorldTime(20);}

if (hour == 21){SetWorldTime(21);}

if (hour == 22){SetWorldTime(22);}

if (hour == 23){SetWorldTime(23);}

if (hour == 24){SetWorldTime(24);}

return 1;

}

 

public WeatherChanger()

{

new randwet = random(20);

SetWeather(randwet);

return 1;

}

 

public SetDayBorder()

{

SetNameForBorder();

SetDayCount();

KillTimer(TimerDni);

return 1;

}

 

public SClock(playerid) {

if(BI[playerid][spawned] == 1) {

if(BI[playerid][specinfo] == 0) {

TextDrawHideForPlayer(playerid,Clock);

SetHM();

TextDrawSetString(Clock, string99);

TextDrawShowForPlayer(playerid,Clock);

}}

return 1;

}

 

public HMseconds(playerid) {

if(BI[playerid][spawned] == 1) {

if(BI[playerid][specinfo] == 0) {

TextDrawHideForPlayer(playerid,Sekundy);

SetS();

TextDrawSetString(Sekundy, string97);

TextDrawShowForPlayer(playerid,Sekundy);

gettime(hourt,minutet,secondt);

if(secondt == 0) { SClock(playerid); }

}

}

return 1;

}

 

public DateD(playerid){

if(BI[playerid][spawned] == 1) {

if(BI[playerid][specinfo] == 0) {

TextDrawHideForPlayer(playerid,Date);

TextDrawHideForPlayer(playerid,Dni);

SetD(); SetWeek();

TextDrawSetString(Date, string98);

TextDrawSetString(Dni, string96);

TextDrawShowForPlayer(playerid,Date);

TextDrawShowForPlayer(playerid,Dni);

}

}

return 1;

}

//================================================================PUBLICS-OTHERS

public GetVehicleType(vehicleid)

{

new model = GetVehicleModel(vehicleid);

if(model > 399 && model < 613) //kdyz jde o existujici auto

{

switch(model)

{

case 590,569,537,538,570,449: return TYPE_TRAIN;

case 481,509,510: return TYPE_BIKE;

case 592,577,511..513,548,593,425,417,487,553,488,497,563,476,447,519,460,469,520: return TYPE_AIRPLANE;

case 472,473,493,595,484,430,453,452,446,454: return TYPE_BOAT;

case 441,464,594,465,501,564: return TYPE_RC;

default: return TYPE_CAR;

}

}

return -1;

}

 

public IsPlayerInSphere(playerid,Float:x,Float:y,Float:z,radius)

{

if(GetPlayerDistanceToPointEx(playerid,x,y,z) < radius){

return 1;

}

return 0;

}

 

public GetDistanceBetweenPlayers(playerid,playerid2){

new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;

new Float:tmpdis;

GetPlayerPos(playerid,x1,y1,z1);

GetPlayerPos(playerid2,x2,y2,z2);

tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));

return floatround(tmpdis);

}

 

public GetPlayerDistanceToPointEx(playerid,Float:x,Float:y,Float:z)

{

new Float:x1,Float:y1,Float:z1;

new Float:tmpdis;

GetPlayerPos(playerid,x1,y1,z1);

tmpdis = floatsqroot(floatpower(floatabs(floatsub(x,x1)),2)+floatpower(floatabs(floatsub(y,y1)),2)+floatpower(floatabs(floatsub(z,z1)),2));

return floatround(tmpdis);

}

//============================================================================//

 

Link to comment
Share on other sites

  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...