Urmatorul script face nitro-ul din San Andreas sa se comporte la fel cu cel din NFS. Partea proasta este ca e facut pentru Multi Player si mie imi trebuie pentru Single Player. Va rog daca puteti sa il transformati intr-un script pentru SP si eventual sa imi spuneti unde il pun. #include <a_samp>
new Text:td_show[MAX_PLAYERS];
new Text:g_ntw;
new VehNitro[MAX_VEHICLES],isInMode[MAX_PLAYERS];
new valid_vehicles[] = {
568,424,579,400,422,500,556,470,412,482,489,505,495,416,438,490,528,598,597,582,
420,536,575,534,413,567,535,566,576,543,605,459,552,478,554,480,533,439,555,602,
429,496,402,541,415,589,587,565,494,502,503,411,559,603,475,506,451,558,477,418,
404,479,458,561,483,434,545,588,423,442,428,409,525,445,504,401,518,527,542,507,
562,585,419,526,604,466,492,474,546,517,410,551,516,467,600,426,436,547,405,580,
560,550,549,540,491,529,421};
forward DoUpdateNtwo();
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" NitroFS By BlackFoX_UD_");
print("--------------------------------------\n");
g_ntw = TextDrawCreate(51.000000,311.000000,"N20");
TextDrawAlignment(g_ntw,0);
TextDrawBackgroundColor(g_ntw,0x000000ff);
TextDrawFont(g_ntw,1);
TextDrawLetterSize(g_ntw,0.599999,1.000000);
TextDrawColor(g_ntw,0x0000ffcc);
TextDrawSetProportional(g_ntw,1);
TextDrawSetShadow(g_ntw,1);
SetTimer("DoUpdateNtwo",500,1);
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid) && getValidModel(GetPlayerVehicleID(playerid)))
{
if(newkeys & KEY_FIRE)
{
isInMode[playerid] = 1;
if(VehNitro[GetPlayerVehicleID(playerid)]>0)AddVehicleComponent(GetPlayerVehicleID(playerid),1010);
}
else if(oldkeys & KEY_FIRE)
{
if(VehNitro[GetPlayerVehicleID(playerid)]>0)AddVehicleComponent(GetPlayerVehicleID(playerid),1010);
isInMode[playerid] = 0;
}
}
return 1;
}
public DoUpdateNtwo()
{
for(new i = 0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || !IsPlayerInAnyVehicle(i))continue;
if(VehNitro[GetPlayerVehicleID(i)]<1 || !getValidModel(GetPlayerVehicleID(i)))
{
RemoveVehicleComponent(GetPlayerVehicleID(i),1008);
RemoveVehicleComponent(GetPlayerVehicleID(i),1009);
RemoveVehicleComponent(GetPlayerVehicleID(i),1010);
}
if(!isInMode[i])continue;
new doitin[20];
VehNitro[GetPlayerVehicleID(i)]--;
format(doitin,sizeof doitin,"%s",getNitroState(VehNitro[GetPlayerVehicleID(i)]));
TextDrawSetString(td_show[i],doitin);
}
return 1;
}
public OnPlayerConnect(playerid)
{
td_show[playerid] = TextDrawCreate(51.000000,321.000000,"@@@@@@@@@");
TextDrawUseBox(td_show[playerid],1);
TextDrawBoxColor(td_show[playerid],0x000000cc);
TextDrawTextSize(td_show[playerid],149.000000,0.000000);
TextDrawAlignment(td_show[playerid],0);
TextDrawBackgroundColor(td_show[playerid],0x000000ff);
TextDrawFont(td_show[playerid],3);
TextDrawLetterSize(td_show[playerid],1.000000,1.000000);
TextDrawColor(td_show[playerid],0xffffffff);
TextDrawSetOutline(td_show[playerid],1);
TextDrawSetProportional(td_show[playerid],1);
TextDrawSetShadow(td_show[playerid],1);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
TextDrawDestroy(td_show[playerid]);
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == 2){TextDrawShowForPlayer(playerid,td_show[playerid]);TextDrawShowForPlayer(playerid,g_ntw);}
else {TextDrawHideForPlayer(playerid,td_show[playerid]);TextDrawHideForPlayer(playerid,g_ntw);}
return 1;
}
getNitroState(const value)
{
new nState[12];
if(value > 0 && value < (11*2))nState = "@";
else if(value >= (11*2) && value < (11*3))nState = "@@";
else if(value >= (11*3) && value < (11*4))nState = "@@@";
else if(value >= (11*4) && value < (11*5))nState = "@@@@";
else if(value >= (11*5) && value < (11*6))nState = "@@@@@";
else if(value >= (11*6) && value < (11*7))nState = "@@@@@@";
else if(value >= (11*7) && value < (11*8))nState = "@@@@@@@";
else if(value >= (11*8) && value < (11*9))nState = "@@@@@@@@";
else if(value >= (11*9) && value < (11*10))nState = "@@@@@@@@@";
else nState = "LEER";
return nState;
}
getValidModel(vehicleid)
{
new modelx = GetVehicleModel(vehicleid),bool:found = false;
for(new i = 0;i<sizeof(valid_vehicles);i++){
if(valid_vehicles[i] == modelx){found = true;break;}
}
return found;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
switch(componentid)
{
case 1008:VehNitro[vehicleid] = 70;
case 1009:VehNitro[vehicleid] = 40;
case 1010:VehNitro[vehicleid] = 100;
}
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
if(VehNitro[vehicleid]>0)
{
VehNitro[vehicleid] = 0;
RemoveVehicleComponent(vehicleid,1008);
RemoveVehicleComponent(vehicleid,1009);
RemoveVehicleComponent(vehicleid,1010);
}
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(isInMode[playerid])AddVehicleComponent(vehicleid,GetVehicleComponentInSlot(vehicleid,5));
return 1;
}