PDA

View Full Version : if is a EMS?


AustinWeerdGuy
18/03/2014, 02:29 PM
Hello guys. I am working on to fix like, if no EMS is on duty /accept death will work. If EMS is on duty /accept death wont work. I think you understand. Anyways, because I am new and very noob in PAWN I will need some help.. To start off, how to create a code that checks for EMS?

its like if(EMSOnline, playerid) SendClientMessage ("You cant accept death when EMS is available");

Anyways, I think you understand me... How can help me? It would make me very happy :)

Sascha
18/03/2014, 02:42 PM
what is your variable to say whether some EMS is on duty?...
I'll just use "EMS[playerid] = 1" for "on duty" now, you might need to change it later, or tell me what the actual variable is (or if you don't know, show me the command that makes a player go "on duty").

you can use a function like that:

stock EMSOnline()
{
new dutycount = 0;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerOnline(i))
{
if(EMS[i] == 1)
{
dutycount++;
}
}
}
if(dutycount > 0)
{
return 1;
}
return 0;
}

at on your command

if(EMSOnline) SendClientMessage ("You cant accept death when EMS is available");

AustinWeerdGuy
18/03/2014, 02:49 PM
what is your variable to say whether some EMS is on duty?...
I'll just use "EMS[playerid] = 1" for "on duty" now, you might need to change it later, or tell me what the actual variable is (or if you don't know, show me the command that makes a player go "on duty").

you can use a function like that:

stock EMSOnline()
{
new dutycount = 0;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerOnline(i))
{
if(EMS[i] == 1)
{
dutycount++;
}
}
}
if(dutycount > 0)
{
return 1;
}
return 0;
}

at on your command

if(EMSOnline) SendClientMessage ("You cant accept death when EMS is available");


Thanks for fast respons. anyways. For a EMS member to go on duty he uses /badge OR /lsfmd and --> Duty..
I will try your code :)

AustinWeerdGuy
18/03/2014, 03:04 PM
what is your variable to say whether some EMS is on duty?...
I'll just use "EMS[playerid] = 1" for "on duty" now, you might need to change it later, or tell me what the actual variable is (or if you don't know, show me the command that makes a player go "on duty").

you can use a function like that:

stock EMSOnline()
{
new dutycount = 0;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerOnline(i))
{
if(EMS[i] == 1)
{
dutycount++;
}
}
}
if(dutycount > 0)
{
return 1;
}
return 0;
}

at on your command

if(EMSOnline) SendClientMessage ("You cant accept death when EMS is available");


this is the command for all the factions
CMD:badge(playerid, params[]) {
if((IsACop(playerid) || PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12) && GetPVarInt(playerid, "IsInArena") < 0 && !GetPVarInt(playerid, "EventToken") && PlayerInfo[playerid][pJailed] == 0 || PlayerInfo[playerid][pMember] == 9 && PlayerInfo[playerid][pDivision] == 1) {
if(PlayerInfo[playerid][pDuty]) {
PlayerInfo[playerid][pDuty] = 0;
SetPlayerToTeamColor(playerid);
SendClientMessageEx(playerid, COLOR_WHITE, "You have hidden your badge, and will now be identified as being off-duty.");
}
else {
PlayerInfo[playerid][pDuty] = 1;
SetPlayerToTeamColor(playerid);
SendClientMessageEx(playerid, COLOR_WHITE, "You have shown your badge, and will now be identified as being on-duty.");
}
}
return 1;
}

Sascha
18/03/2014, 03:07 PM
then you have to change my code to this:

stock EMSOnline()
{
new dutycount = 0;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerOnline(i))
{
if(PlayerInfo[i][pDuty] == 1)
{
dutycount++;
}
}
}
if(dutycount > 0)
{
return 1;
}
return 0;
}

this way it should work with your variables ;)

AustinWeerdGuy
18/03/2014, 03:15 PM
Thanks bro

AustinWeerdGuy
18/03/2014, 03:37 PM
well that command with if(EMSOnline) dont work.. What should I do instead?

Sascha
18/03/2014, 03:40 PM
try it with "if(EMSOnline())"
oh and ofc change "IsPlayerOnline" to "IsPlayerConnected"


stock EMSOnline()
{
new dutycount = 0;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pDuty] == 1)
{
dutycount++;
}
}
}
if(dutycount > 0)
{
return 1;
}
return 0;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
if(EMSOnline()) return SendClientMessage(playerid, 0xFFFFFFAA, "Whatever");
return 1;
}
return 0;
}