Problem range command.
#1

Hello sa-mp.com! So order has a problem, if we id 0 and given / unfreeze area 100 and works only to go, but other player does not work .. may be the loop, I have a command / healall in using loop and give life using only the command ...
Excuse my English!
PHP код:
CMD:area(playeridparams[]) {
    if(
PlayerLogat[playerid] == 0) return 1; new item[20], range;
    if(
PlayerInfo[playerid][pAdmin] < && PlayerInfo[playerid][pLanguage] == 1) return SendClientMessage(playeridCOLOR_GENERAL"Nu esti autorizat sa folosesti aceasta comanda.");
    else if(
PlayerInfo[playerid][pAdmin] < && PlayerInfo[playerid][pLanguage] == 2) return SendClientMessage(playeridCOLOR_GENERAL"You are not authorized to use this command.");
    if(
sscanf(params"s[20]i"itemrange)) return SendClientMessage(playeridCOLOR_GREY"Use: {FFFFFF}/area <name> <range>");
    
GetPlayerName(playeridsendernamesizeof(sendername));
    for(new 
0MAX_PLAYERS++ && IsPlayerConnected(i)) {
        if(
strcmp(item"freeze"truestrlen(item)) == 0) {
            if(
IsPlayerInRangeOfPoint(irange*1000pXpYpZ)) {
                
TogglePlayerControllable(i0); PlayerFreezed[i] = 1;
                
SendClientMessage(iCOLOR_YELLOW"Admin %s ti-a dat freeze."sendername); return 1; } }
        else if(
strcmp(item"unfreeze"truestrlen(item)) == 0) {
            if(
IsPlayerInRangeOfPoint(irange*1000pXpYpZ)) {
                
TogglePlayerControllable(i1); PlayerFreezed[i] = 0;
                
SendClientMessage(iCOLOR_YELLOW"Admin %s ti-a dat unfreeze."sendername); return 1; } }
        else if(
strcmp(item"fixveh"truestrlen(item)) == 0) {
            if(
IsPlayerInRangeOfPoint(irange*1000pXpYpZ)) {
                
RepairVehicle(GetPlayerVehicleID(i)), SetVehicleHealth(GetPlayerVehicleID(i), 1000.0);
                
SendClientMessage(iCOLOR_YELLOW"Admin %s ti-a reparat masina."sendername); return 1; } }
        else if(
strcmp(item"disarm"truestrlen(item)) == 0) {
            if(
IsPlayerInRangeOfPoint(irange*1000pXpYpZ)) {
                
ResetPlayerWeapons(i);
                
SendClientMessage(iCOLOR_YELLOW"Admin %s ti-a confiscat armele."sendername); return 1; } } }
    return 
1; } 
Reply
#2

return 1 stops loop after id 0

pawn Код:
CMD:area(playerid, params[])
{
    if(PlayerLogat[playerid] == 0) return 0;

    new item[20], range;
    if(PlayerInfo[playerid][pAdmin] < 3 && PlayerInfo[playerid][pLanguage] == 1) SendClientMessage(playerid, COLOR_GENERAL, "Nu esti autorizat sa folosesti aceasta comanda.");
    else if(PlayerInfo[playerid][pAdmin] < 3 && PlayerInfo[playerid][pLanguage] == 2) SendClientMessage(playerid, COLOR_GENERAL, "You are not authorized to use this command.");
    else if(sscanf(params, "s[20]f", item, range)) SendClientMessage(playerid, COLOR_GREY, "Use: {FFFFFF}/area <name> <range>");
    else
    {
        new str[128],idx = -1;
        if(!strcmp(item, "freeze", true)) idx = 0;
        else if(!strcmp(item, "unfreeze", true)) idx = 1;
        else if(!strcmp(item, "fixveh", true)) idx = 2;
        else if(!strcmp(item, "disarm", true)) idx = 3;
        else{}

        if(idx < 0) SendClientMessage(playerid, COLOR_GREY, "Use: {FFFFFF}/area <name> <range>");
        else{
            GetPlayerName(playerid, sendername, sizeof(sendername));
            for(new i = 0; i < MAX_PLAYERS; i++)
                if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(i, range*1000.0, pX, pY, pZ))
                {
                    switch(idx)
                    {
                        case 0,1:
                        {
                            TogglePlayerControllable(i, idx);
                            PlayerFreezed[i] = !idx;
                            format(str,sizeof(str),"Admin %s ti-a dat %s.",sendername, !idx ? ("freeze") : ("unfreeze"));
                            SendClientMessage(i, COLOR_YELLOW, str);
                        }
                        case 2:
                        {
                            RepairVehicle(GetPlayerVehicleID(i));
                            //SetVehicleHealth(GetPlayerVehicleID(i), 1000.0);
                            format(str,sizeof(str),"Admin %s ti-a reparat masina.",sendername);
                            SendClientMessage(i, COLOR_YELLOW, , sendername);
                        }
                        case 3:
                        {
                            ResetPlayerWeapons(i);
                            format(str,sizeof(str),"Admin %s ti-a confiscat armele.",sendername);
                            SendClientMessage(i, COLOR_YELLOW, , sendername);
                        }
                    }
                }
        }
    }
    return 1;
}
Reply
#3

Thanks a lot, I had this problem before.
I deleted only return 1 and works perfectly.
Thanks again.
Reply
#4

I have a problem if we pLanguage on one work and if I give pLanguage 2 restart the server. I checked the console and give [b] Console input: GMX [/ b]
pawn Код:
CMD:area(playerid, params[]) {
    if(PlayerLogat[playerid] == 0) return 0; new item[20], range; if(PlayerInfo[playerid][pAdmin] < 3) return NotAdmin(playerid);
    if(sscanf(params, "s[20]i", item, range)) return SendClientMessage(playerid, COLOR_GREY, "Use: {FFFFFF}/area <name> <range>");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    for(new i = 0; i < MAX_PLAYERS; i++) {
        if(strcmp(item, "freeze", true, strlen(item)) == 0) {
            if(IsPlayerInRangeOfPoint(i, range*1000, pX, pY, pZ)) {
                TogglePlayerControllable(i, 0); PlayerFreezed[i] = 1;
                if(PlayerInfo[i][pLanguage] == 1) { SendClientMessage(i, COLOR_YELLOW, "(( Admin %s ti-a dat freeze. ))", sendername); }
                else if(PlayerInfo[i][pLanguage] == 2) { SendClientMessage(i, COLOR_YELLOW, "(( Admin %s gave you freeze. ))"); } } }
        else if(strcmp(item, "unfreeze", true, strlen(item)) == 0) {
            if(IsPlayerInRangeOfPoint(i, range*1000, pX, pY, pZ)) {
                TogglePlayerControllable(i, 1); PlayerFreezed[i] = 0;
                if(PlayerInfo[i][pLanguage] == 1) { SendClientMessage(i, COLOR_YELLOW, "(( Admin %s ti-a dat unfreeze. ))", sendername); }
                else if(PlayerInfo[i][pLanguage] == 2) { SendClientMessage(i, COLOR_YELLOW, "(( Admin %s gave you unfreeze. ))"); } } }
        else if(strcmp(item, "heal", true, strlen(item)) == 0) {
            if(IsPlayerInRangeOfPoint(i, range*1000, pX, pY, pZ)) {
                SetPlayerHealth(i, 100);
                if(PlayerInfo[i][pLanguage] == 1) { SendClientMessage(i, COLOR_YELLOW, "(( Admin %s ti-a dat viata. ))", sendername); }
                else if(PlayerInfo[i][pLanguage] == 2) { SendClientMessage(i, COLOR_YELLOW, "(( Admin %s gave you health. ))"); } } }
        else if(strcmp(item, "fixveh", true, strlen(item)) == 0) {
            if(IsPlayerInRangeOfPoint(i, range*1000, pX, pY, pZ)) { RepairVehicle(GetPlayerVehicleID(i)), SetVehicleHealth(GetPlayerVehicleID(i), 1000.0); } }
        else if(strcmp(item, "disarm", true, strlen(item)) == 0) {
            if(IsPlayerInRangeOfPoint(i, range*1000, pX, pY, pZ)) {
                ResetPlayerWeapons(i);
                if(PlayerInfo[i][pLanguage] == 1) { SendClientMessage(i, COLOR_YELLOW, "(( Admin %s ti-a confiscat armele. ))", sendername); }
                else if(PlayerInfo[i][pLanguage] == 2) { SendClientMessage(i, COLOR_YELLOW, "(( Admin %s your weapons confiscated. ))"); } } } }
    return 1; }
Reply
#5

uppp
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)