SA-MP Forums Archive
Am I doing this right? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Am I doing this right? (/showthread.php?tid=430414)



Am I doing this right? - iBoX - 13.04.2013

So yeah I made a repair command and just want to know if im doing it right (works fine ingame) and how can i add a Timer so you only can do the command evey 1min or so


Код:
CMD:repair(playerid, params[])
{
	if(playerid) return SendClientMessage(playerid, 0xFFFFFFFF, "/repair to repair your vehicle!");
	else if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "You are not in a vehicle!");
	else if(!IsPlayerInRangeOfPoint(playerid, 7.0, 1564.8927, -1612.5355, 13.2718)) return SendClientMessage(playerid, 0xFF0000FF, "Your not at the repair point");
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, 0xFFFFFFFF, "Your vehicle has been successfully repaired!");
    return 1;
}



Re: Am I doing this right? - DaTa[X] - 13.04.2013

pawn Код:
new RepairSpam[MAX_PLAYERS];
pawn Код:
CMD:repair(playerid, params[])
{
        if(RepairSpam[playerid] == 1) return SendClientMessage(playerid,0xFFFFFFFF,"Please wait efore using this    command again");
    if(playerid) return SendClientMessage(playerid, 0xFFFFFFFF, "/repair to repair your vehicle!");
    else if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "You are not in a vehicle!");
    else if(!IsPlayerInRangeOfPoint(playerid, 7.0, 1564.8927, -1612.5355, 13.2718)) return SendClientMessage(playerid, 0xFF0000FF, "Your not at the repair point");
    RepairVehicle(GetPlayerVehicleID(playerid));
    RepairSpam[playerid] = 1;
    SetTimerEx("Repair",60000,0,"d",playerid);
    SendClientMessage(playerid, 0xFFFFFFFF, "Your vehicle has been successfully repaired!");
    return 1;
}
pawn Код:
forward Repair(playerid);
public Repair(playerid)
{
  RepairSpam[playerid] = 0;
}



Re: Am I doing this right? - shady001 - 13.04.2013

add a variable :
pawn Код:
//global
new RepairTime[MAX_PLAYERS];

CMD:repair(playerid, params[])
{
    //if(playerid) return SendClientMessage(playerid, 0xFFFFFFFF, "/repair to repair your vehicle!");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "You are not in a vehicle!");
    else if(!IsPlayerInRangeOfPoint(playerid, 7.0, 1564.8927, -1612.5355, 13.2718)) return SendClientMessage(playerid, 0xFF0000FF, "Your not at the repair point");
        else if(RepairTime[playerid] != 0) return SendClientMessage(playerid, 0xFF0000FF, "You need to wait 1 minute before use repair again");
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, 0xFFFFFFFF, "Your vehicle has been successfully repaired!");
    RepairTime[playerid] = 1;
    SetTimerEx("RepairCD",1000*60,0,"i",playerid);
    return 1;
}
forward RepairCD(playerid);
public RepairCD(playerid)
{
RepairTime[playerid] = 0;
return 1;
}

public OnPlayerConnect(playerid)
{
RepairTime[playerid] = 0;
}
public OnPlayerDisconnect(playerid)
{
RepairTime[playerid] = 0;
}



Re: Am I doing this right? - Isolated - 13.04.2013

pawn Код:
SetTimerEx("VehicleTime", 60000, false, "i", playerid);
Create the timer.

[pawn]
forward VehicleTime(playerid);
public VehicleTime(playerid)
{
SomeFunc[playerid] = false;
return 1;
}

Reset the function.

pawn Код:
// Under command
SomeFunc[playerid] = true;
Create a global variable named "SomeFunc[MAX_PLAYERS];"


Re: Am I doing this right? - Vince - 13.04.2013

This only 'works fine ingame' if you're ID 0. The first statement will always come true for any other player, rendering the command totally useless.


Re: Am I doing this right? - iBoX - 13.04.2013

Thanks guys