CMD:gate(playerid, params[]) { // Gates new done; for(new idx=1; idx<MAX_GATES; idx++) { new Float:cur[3]; if(GateInfo[idx][gModel]) { GetDynamicObjectPos(GateInfo[idx][gGate], cur[0], cur[1], cur[2]); if(IsPlayerInRangeOfPoint(playerid, 8, cur[0], cur[1], cur[2]) || IsPlayerInRangeOfPoint(playerid, 8, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ]) || IsPlayerInRangeOfPoint(playerid, 8, GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ])) { if(strlen(GateInfo[idx][gPassword])) { if(sscanf(params, "s[256]", params)) return SendClientMessage(playerid, 0xFFFFFF00, "USAGE: /gate [password]"); if(strcmp(params, GateInfo[idx][gPassword])) return SendClientMessage(playerid, -1, "Invalid gate password."); if(!GateInfo[idx][gStatus]) { GateInfo[idx][gStatus] = 1; MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ], GateInfo[idx][gSpeed], GateInfo[idx][gORX], GateInfo[idx][gORY], GateInfo[idx][gORZ]); done=1; break; } else { GateInfo[idx][gStatus] = 0; MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gSpeed], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]); done=1; break; } } else { if(!GateInfo[idx][gStatus]) { GateInfo[idx][gStatus] = 1; MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ], GateInfo[idx][gSpeed], GateInfo[idx][gORX], GateInfo[idx][gORY], GateInfo[idx][gORZ]); done=1; break; } else { GateInfo[idx][gStatus] = 0; MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gSpeed], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]); done=1; break; } } } } } if(!done) SendClientMessage(playerid, -1, "You aren't near a gate you can open."); return 1; }
CMD:gate(playerid, params[])
if(strcmp(cmdtext, "/gate", true, 5) == 0)
if(strcmp(cmdtext, "/gate", true, 5) == 0)
{
// Gates
new done;
for(new idx = 1; idx < MAX_GATES; idx++)
{
new Float:cur[3];
if(GateInfo[idx][gModel])
{
GetDynamicObjectPos(GateInfo[idx][gGate], cur[0], cur[1], cur[2]);
if(IsPlayerInRangeOfPoint(playerid, 8, cur[0], cur[1], cur[2]) || IsPlayerInRangeOfPoint(playerid, 8, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ]) || IsPlayerInRangeOfPoint(playerid, 8, GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ]))
{
if(GateInfo[idx][gPassword][0] != EOS)
{
if(strlen(cmdtext) < 7) return SendClientMessage(playerid, 0xFFFFFF00, "USAGE: /gate [password]");
if(strcmp(cmdtext[7], GateInfo[idx][gPassword])) return SendClientMessage(playerid, -1, "Invalid gate password.");
}
if(!GateInfo[idx][gStatus]) MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ], GateInfo[idx][gSpeed], GateInfo[idx][gORX], GateInfo[idx][gORY], GateInfo[idx][gORZ]);
else MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gSpeed], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
GateInfo[idx][gStatus] = !GateInfo[idx][gStatus];
done = 1;
break;
}
}
}
if(!done) SendClientMessage(playerid, -1, "You aren't near a gate you can open.");
return 1;
}
With the replacement function in pawno (CTRL + H), it's pretty easy to replace them all. All you have to do after that is just worry about commands with parameters, but I'd be looking at trying to use ZCMD instead of Strcmp.
Then again, I'm not the one to tell you how to run your server, no matter how inefficient the methods are. Obviously the first step in converting from ZCMD to Strcmp is to change 'CMD:' to 'strcmp' and relocate the command itself. PHP код:
PHP код:
PHP код:
EDIT: And why does 'idx' start at 1 by the way? |