forward Timer_Restart_WarnPlayers();
public Timer_Restart_WarnPlayers()
{
GameTextForAll("Reiniciando servidor em 1 minuto!", 5000, 3);
SendClientMessageToAll(0xA0A0A0, "[BVC] GMX em 1 minuto!");
SetTimer("Timer_Restart_Kick", 1000 * 60, false);
SendRconCommand("hostname Pending Restart");
SendRconCommand("password loaf");
return 1;
}
forward Timer_Restart_Kick();
public Timer_Restart_Kick()
{
GameTextForAll("Servidor reiniciando: Todos os players kickados!", 5000, 3);
for(new i; i < MAX_PLAYERS; i++)
Kick(i);
SetTimer("Timer_Restart_Reboot", 1000 * 5, false);
return 1;
}
forward Timer_Restart_Reboot();
public Timer_Restart_Reboot()
{
new HostCommand[128];
SendRconCommand("gmx");
format(HostCommand, 128, "hostname %s", GameModeName);
SendRconCommand(HostCommand);
SendRconCommand("password 0");
return 1;
}
forward Bank_IntrestTimer();
public Bank_IntrestTimer()
{
new IntrestAmount, Msg[128];
CurrentIntrestTime++;
IntrestTimeSave();
if (IntrestEnabled == true)
{
for (new playerid; playerid < MAX_PLAYERS; playerid++)
{
if (APlayerData[playerid][LoggedIn] == true)
{
if (APlayerData[playerid][BankMoney] > 0)
{
IntrestAmount = floatround(floatmul(APlayerData[playerid][BankMoney], BankIntrest), floatround_floor);
APlayerData[playerid][BankMoney] = APlayerData[playerid][BankMoney] + IntrestAmount;
APlayerData[playerid][LastIntrestTime] = CurrentIntrestTime;
BankFile_Save(playerid);
format(Msg, 128, "{00BBFF}Vocк recebeu {FFBB00}R$%i{00BBFF} na Sua Conta Bancaria.[Motivo:Lucro]", IntrestAmount);
SendClientMessage(playerid, 0xFFFFFFFF, Msg);
}
}
}
}
return 1;
}
forward VehicleToPlayer(playerid,vehicleid);
public VehicleToPlayer(playerid, vehicleid)
{
new Float:pX, Float:pY, Float:pZ, Float:cX, Float:cY, Float:cZ, Float:distance;
GetPlayerPos(playerid, pX, pY, pZ);
GetVehiclePos(vehicleid, cX, cY, cZ);
distance = floatsqroot(floatpower(floatabs(floatsub(cX, pX)), 2) + floatpower(floatabs(floatsub(cY, pY)), 2) + floatpower(floatabs(floatsub(cZ, pZ)), 2));
return floatround(distance);
}
forward GetClosestVehicle(playerid);
public GetClosestVehicle(playerid)
{
new Float:distance = 99999.000+1, Float:distance2, result = -1;
for(new i = 0; i < MAX_VEHICLES; i++)
{
if (GetPlayerVehicleID(playerid) != i)
{
distance2 = VehicleToPlayer(playerid, i);
if(distance2 < distance)
{
distance = distance2;
result = i;
}
}
}
return result;
}
forward Player_FreezeTimer(playerid);
public Player_FreezeTimer(playerid)
{
new Msg[128];
APlayerData[playerid][PlayerFrozen]--;
if (APlayerData[playerid][PlayerFrozen] > 0)
{
if (APlayerData[playerid][PlayerFrozen] >= 60)
format(Msg, 128, "Congelado por %i minutos", APlayerData[playerid][PlayerFrozen] / 60);
else
format(Msg, 128, "Congelado por %i segundos", APlayerData[playerid][PlayerFrozen]);
GameTextForPlayer(playerid, Msg, 1000, 4);
}
else
TogglePlayerControllable(playerid, 1);
}
forward Business_TransactionTimer();
public Business_TransactionTimer()
{
BusinessTransactionTime++;
BusinessTime_Save();
return 1;
}
forward Timer_TimedMessages();
public Timer_TimedMessages()
{
SendClientMessageToAll(0xFFFFFFFF, ATimedMessages[LastTimedMessage]);
LastTimedMessage++;
if (LastTimedMessage == sizeof(ATimedMessages))
LastTimedMessage = 0;
return 1;
}
forward CloseGate(TollGate);
public CloseGate(TollGate)
{
MoveObject(ATollGates[TollGate][GateID], ATollGates[TollGate][CloseX], ATollGates[TollGate][CloseY], ATollGates[TollGate][CloseZ], 3.0);
ATollGates[TollGate][GateStatus] = 0;
return 1;
}
forward House_ExitTimer(playerid, HouseID);
public House_ExitTimer(playerid, HouseID)
{
TogglePlayerControllable(playerid, 1);
for (new CarSlot; CarSlot < 10; CarSlot++)
if (AHouseData[HouseID][VehicleIDs][CarSlot] != 0)
SetVehicleToRespawn(AHouseData[HouseID][VehicleIDs][CarSlot]);
return 1;
}
forward GlobalTimer();
public GlobalTimer()
{
new OldVehicleID, NewVehicleID, OldTrailerID, NewTrailerID;
for (new playerid; playerid < MAX_PLAYERS; playerid++)
{
if (APlayerData[playerid][LoggedIn] == true)
{
OldVehicleID = APlayerData[playerid][VehicleID];
NewVehicleID = GetPlayerVehicleID(playerid);
OldTrailerID = APlayerData[playerid][TrailerID];
NewTrailerID = GetVehicleTrailer(GetPlayerVehicleID(playerid));
switch (APlayerData[playerid][PlayerClass])
{
case ClassTruckDriver:
{
if (APlayerData[playerid][JobStarted] == true)
{
if (APlayerData[playerid][VehicleTimerTime] != 0)
{
if ((OldVehicleID == NewVehicleID) && (OldTrailerID == NewTrailerID))
APlayerData[playerid][VehicleTimerTime] = Job_TimeToFailMission;
else
PlayerLeftVehicle(playerid);
}
else
FailJob(playerid);
}
}
case ClassBusDriver:
{
if (APlayerData[playerid][JobStarted] == true)
{
if (APlayerData[playerid][VehicleTimerTime] != 0)
{
if (OldVehicleID == NewVehicleID)
APlayerData[playerid][VehicleTimerTime] = Job_TimeToFailMission;
else
PlayerLeftVehicle(playerid);
}
else
FailJob(playerid);
}
}
case ClassMafia:
{
if (APlayerData[playerid][JobStarted] == true)
{
if (APlayerData[playerid][VehicleTimerTime] != 0)
{
if (OldVehicleID == NewVehicleID)
APlayerData[playerid][VehicleTimerTime] = Job_TimeToFailMission;
else
PlayerLeftVehicle(playerid);
}
else
FailJob(playerid);
}
}
case ClassCourier:
{
if (APlayerData[playerid][JobStarted] == true)
{
if (APlayerData[playerid][VehicleTimerTime] != 0)
{
if (OldVehicleID == NewVehicleID)
APlayerData[playerid][VehicleTimerTime] = Job_TimeToFailMission;
else
PlayerLeftVehicle(playerid);
}
else
FailJob(playerid);
}
}
case ClassRoadWorker:
{
if (APlayerData[playerid][JobStarted] == true)
{
if (APlayerData[playerid][VehicleTimerTime] != 0)
{
if ((OldVehicleID == NewVehicleID) && (OldTrailerID == NewTrailerID))
APlayerData[playerid][VehicleTimerTime] = Job_TimeToFailMission;
else
PlayerLeftVehicle(playerid);
}
else
FailJob(playerid);
}
}
}
}
}
return 1;
}
forward Assistance_CheckPlayers(playerid);
public Assistance_CheckPlayers(playerid)
{
for (new PlayerToCheck; PlayerToCheck < MAX_PLAYERS; PlayerToCheck++)
{
if (IsPlayerConnected(PlayerToCheck))
{
if (APlayerData[PlayerToCheck][AssistanceNeeded] == true)
SetPlayerMarkerForPlayer(playerid, PlayerToCheck, 0xFF0000FF); // Make that player red to the assistance-player
else
{
switch (APlayerData[PlayerToCheck][PlayerClass])
{
case ClassTruckDriver: SetPlayerMarkerForPlayer(playerid, PlayerToCheck, ColorClassTruckDriver);
case ClassBusDriver: SetPlayerMarkerForPlayer(playerid, PlayerToCheck, ColorClassBusDriver);
case ClassPilot: SetPlayerMarkerForPlayer(playerid, PlayerToCheck, ColorClassPilot);
case ClassPolice: SetPlayerMarkerForPlayer(playerid, PlayerToCheck, ColorClassPolice);
case ClassMafia: SetPlayerMarkerForPlayer(playerid, PlayerToCheck, ColorClassMafia);
case ClassCourier: SetPlayerMarkerForPlayer(playerid, PlayerToCheck, ColorClassCourier);
case ClassAssistance: SetPlayerMarkerForPlayer(playerid, PlayerToCheck, ColorClassAssistance);
}
}
}
return 1;
}
forward Timer_PoliceCanJailPlayer(playerid);
public Timer_PoliceCanJailPlayer(playerid)
{
new Msg[128];
format(Msg, 128, "{FF0000}Vocк tem %i segundos para encostar o veнculo e parar.", APlayerData[playerid][Value_PoliceCanJailMe]);
SendClientMessage(playerid, 0xFFFFFFFF, Msg);
if (APlayerData[playerid][Value_PoliceCanJailMe] == 0)
{
APlayerData[playerid][PoliceCanJailMe] = true;
KillTimer(APlayerData[playerid][Timer_PoliceCanJailMe]);
format(Msg, 128, "{FF0000}Se vocк nгo encostar e parar agora, a polнcia pode enviar-lhe imediatamente para a prisгo.");
SendClientMessage(playerid, 0xFFFFFFFF, Msg);
format(Msg, 128, "{FF0000}Suas multas serгo dobradas.");
SendClientMessage(playerid, 0xFFFFFFFF, Msg);
}
APlayerData[playerid][Value_PoliceCanJailMe] = APlayerData[playerid][Value_PoliceCanJailMe] - 5;
return 1;
}
forward CheckSpikeStrip(StripIndex);
public CheckSpikeStrip(StripIndex)
{
new vid, panels, doors, lights, tires;
ASpikeStrips[StripIndex][SpikeTime]--;
if (ASpikeStrips[StripIndex][SpikeTime] > 0)
{
for (new playerid; playerid < MAX_PLAYERS; playerid++)
{
if (APlayerData[playerid][LoggedIn] == true)
{
if (GetPlayerVehicleSeat(playerid) == 0)
{
vid = GetPlayerVehicleID(playerid);
if (IsPlayerInRangeOfPoint(playerid, 7.0, ASpikeStrips[StripIndex][SpikeX], ASpikeStrips[StripIndex][SpikeY], ASpikeStrips[StripIndex][SpikeZ]))
{
GetVehicleDamageStatus(vid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vid, panels, doors, lights, 15);
}
}
}
}
}
else
{
DestroyObject(ASpikeStrips[StripIndex][SpikeObject]);
KillTimer(ASpikeStrips[StripIndex][SpikeTimer]);
}
return 1;
}
forward ShowRandomBonusMission();
public ShowRandomBonusMission()
{
new bool:MissionSet = false, Msg1[128], Msg2[128], Msg3[128], lName[50], sName[50], eName[50], tName[100];
if ((RandomBonusMission[RandomLoad] == 0) || (RandomBonusMission[MissionFinished] == true))
{
while (MissionSet == false)
{
RandomBonusMission[RandomLoad] = random(sizeof(ALoads));
switch (RandomBonusMission[RandomLoad])
{
case 0: MissionSet = false;
default:
{
switch(ALoads[RandomBonusMission[RandomLoad]][PCV_Required])
{
case PCV_TruckerOreTrailer, PCV_TruckerFluidsTrailer, PCV_TruckerCargoTrailer, PCV_TruckerCementTruck, PCV_TruckerNoTrailer:
{
MissionSet = true;
}
default: MissionSet = false;
}
}
}
}
RandomBonusMission[RandomStartLoc] = Product_GetRandomStartLoc(RandomBonusMission[RandomLoad]);
RandomBonusMission[RandomEndLoc] = Product_GetRandomEndLoc(RandomBonusMission[RandomLoad]);
RandomBonusMission[MissionFinished] = false;
}
format(lName, 50, ALoads[RandomBonusMission[RandomLoad]][LoadName]);
format(sName, 50, ALocations[RandomBonusMission[RandomStartLoc]][LocationName]);
format(eName, 50, ALocations[RandomBonusMission[RandomEndLoc]][LocationName]);
switch(ALoads[RandomBonusMission[RandomLoad]][PCV_Required])
{
case PCV_TruckerOreTrailer: format(tName, 128, "Caminhгo {00BBFF}com {FFBB00}Trailer de Minйrio");
case PCV_TruckerFluidsTrailer: format(tName, 128, "Caminhгo {00BBFF}com {FFBB00}Trailer de Fluнdos");
case PCV_TruckerCargoTrailer: format(tName, 128, "Caminhгo {00BBFF}com {FFBB00}Trailer de Cargas Lisas");
case PCV_TruckerCementTruck: format(tName, 128, "Caminhгo de Cimento");
case PCV_TruckerNoTrailer: format(tName, 128, "Flatbed {00BBFF}ou {FFBB00}DFT-30");
}
format(Msg1, 128, "{00BBFF}Missгo Bonus: Transportar {FFBB00}%s", lName);
format(Msg2, 128, "{00BBFF}de {FFBB00}%s{00BBFF} para {FFBB00}%s", sName, eName);
format(Msg3, 128, "{00BBFF}Vocк precisa de um {FFBB00}%s{00BBFF} para completar esta missгo.", tName);
for (new playerid; playerid < MAX_PLAYERS; playerid++)
{
if (APlayerData[playerid][LoggedIn] == true)
{
if (APlayerData[playerid][PlayerClass] == ClassTruckDriver)
{
SendClientMessage(playerid, 0xFFFFFFFF, Msg1);
SendClientMessage(playerid, 0xFFFFFFFF, Msg2);
SendClientMessage(playerid, 0xFFFFFFFF, Msg3);
}
}
}
return 1;
}
forward Toll();
public Toll()
{
for(new playerid; playerid < MAX_PLAYERS; playerid++)
{
if(APlayerData[playerid][LoggedIn] == false) continue;
if (GetPlayerVehicleSeat(playerid) == 0)
{
for (new TollGate; TollGate < MAX_TOLLGATES; TollGate++)
{
if (ATollGates[TollGate][GateID] != 0)
{
if(IsPlayerInRangeOfPoint(playerid, 7.5, ATollGates[TollGate][CloseX], ATollGates[TollGate][CloseY], ATollGates[TollGate][CloseZ]))
{
if(ATollGates[TollGate][GateStatus] == 0)
{
MoveObject(ATollGates[TollGate][GateID], ATollGates[TollGate][OpenX], ATollGates[TollGate][OpenY], ATollGates[TollGate][OpenZ], 3.0);
ATollGates[TollGate][GateStatus] = 1;
RewardPlayer(playerid, -ATollGates[TollGate][TollPrice], 0);
new string[50];
format(string, sizeof(string), TXT_PlayerPaysToll, ATollGates[TollGate][TollPrice]);
GameTextForPlayer(playerid, string, 3000, 4);
SetTimerEx("CloseGate", 5000, false, "i", TollGate);
}
}
}
}
}
return 1;
}
}
Roadworker_EndJob(playerid)
{
if (APlayerData[playerid][JobStarted] == true)
{
APlayerData[playerid][JobStarted] = false;
APlayerData[playerid][JobStep] = 0;
APlayerData[playerid][JobID] = 0;
APlayerData[playerid][VehicleTimerTime] = 0;
APlayerData[playerid][VehicleID] = 0;
APlayerData[playerid][TrailerID] = 0;
APlayerData[playerid][JobLoc1] = 0;
APlayerData[playerid][JobLoc2] = 0;
if (APlayerData[playerid][LoadID] != 0)
{
DestroyVehicle(APlayerData[playerid][LoadID]);
APlayerData[playerid][LoadID] = 0;
}
DisablePlayerCheckpoint(playerid);
DisablePlayerRaceCheckpoint(playerid);
TextDrawSetString(APlayerData[playerid][MissionText], RoadWorker_NoJobText);
KillTimer(APlayerData[playerid][LoadingTimer]);
}
return 1;
}
eu uso o notepad ++ eu conto todos {} com ele e vejo o q falta dai completo no final soh para ficar marcado de vermelho dai eu procuro no gm o outro pela marca vermelha q o not faz. й bem complicado do meu jeito mas unico q eu sei.
|