Jump to content
  • 0

O problema complicata ...


bgtheodor

Question

Problemă întâlnită (descriere): Mda , deci pentru inceput vreau sa zic ca nu cred ca voi gasi pe cineva care sa-si petreaca destul timpe pe gratis incercand sa-mi rezolve problema , am postat asta pentru orice eventualitate ca mai sunt si oameni buni care fac lucruri moca :). Buun , deci nu stiu ce are dar nu-mi merg unele lucruri la PD / FBI / NG comanda /gov (am scos-o) , era buguita din cap pana in picioare , am facut vreo doua posturi pe care nimeni nu le-a putut rezolva cum trebuie, eu ca si cop n-aveam acces la comanda /gov indiferent ca eram pd/fbi/ng dar ciudat este faptul ca aveau acces toate celelalte factiuni =)) Am cautat in comanda si pMember ; pLeader erau setate bine la 1 , 2 , 3. Totodata mai am eroare la comanda /uncuff care atunci cand incerc sa o dau (/cuff merge) zice din nou ca nu sunt PD / FBI / NG ! Si ultima eroare este la comanda /arrest care imi zice ca Player-ul (chiar daca e cuffed) trebuie sa aiba cel putin Wanted 1 ! Am dat in probe si w1 , w2 , w3+ si degeaba...
Ero(area / rile) / warning-(ul / urile): -
Liniile de cod / sursa / script-ul: [pawn] if(strcmp(cmd, "/uncuff", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] + PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] + PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] + PlayerInfo[playerid][pLeader] == 3)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "{D580FE}Syntax:{FFFFFF} /uncuff [Playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "You cannot Uncuff yourself!"); return 1; }
if(PlayerCuffed[giveplayerid])
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* You were Uncuffed by %s.", sendername);
SendClientMessage(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), "* You Uncuffed %s.", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
GameTextForPlayer(giveplayerid, "~g~Uncuffed", 2500, 3);
TogglePlayerControllable(giveplayerid, 1);
PlayerCuffed[giveplayerid] = 0;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Acel player nu este legat !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Acel player nu este aproape de tine !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Acest jucator nu este conectat !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Nu esti Cop / FBI / NG !");
}
}//not connected
return 1;
}[/pawn]

 

 

Comanda /arrest 

[pawn] if(strcmp(cmd, "/arrest", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gTeam[playerid] == 2 || IsACop(playerid))
{
if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " Nu esti on Duty !");
return 1;
}
if(!PlayerToPoint(6.0, playerid, 1527.9849,-1664.6001,6.2188))// || PlayerToPoint(6.0, playerid, -1566.4946,755.7339,-4.9063))
{// Jail spot
SendClientMessage(playerid, COLOR_GREY, " You are not near the Jail, can't Arrest !");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "{D580FE}Syntax:{FFFFFF} /arrest [price] [time (minutes)] [bail (0=no 1=yes)] [bailprice]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1 || moneys > 100000) { SendClientMessage(playerid, COLOR_GREY, " Jail Price nu poate fi sub $1 sau peste $100.000 !"); return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "{D580FE}Syntax:{FFFFFF} /arrest [price] [time (minutes)] [bail (0=no 1=yes)] [bailprice]");
return 1;
}
new time = strval(tmp);
if(time < 1 || time > 20) { SendClientMessage(playerid, COLOR_GREY, " Jail Time Minutes nu poate fi sub 1 sau peste 20 !"); return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "{D580FE}Syntax:{FFFFFF} /arrest [price] [time (minutes)] [bail (0=no 1=yes)] [bailprice]");
return 1;
}
new bail = strval(tmp);
if(bail < 0 || bail > 1) { SendClientMessage(playerid, COLOR_GREY, " Jail Bailing can't be below 0 or above 1 !"); return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "{D580FE}Syntax:{FFFFFF} /arrest [price] [time (minutes)] [bail (0=no 1=yes)] [bailprice]");
return 1;
}
new bailprice = strval(tmp);
if(bailprice < 0 || bailprice > 3000000) { SendClientMessage(playerid, COLOR_GREY, " Jail Bailing nu poate fi sub $0 sau peste $300.0000 !"); return 1; }
new suspect = GetClosestPlayer(playerid);
if(IsPlayerConnected(suspect))
{
if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
{
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(PlayerInfo[suspect][pWantedLevel] < 1)
{
SendClientMessage(playerid, COLOR_GREY, " Playerul trebuie sa aiba cel putin Wanted Level 1 !");
return 1;
}
format(string, sizeof(string), "* L-ai arestat pe %s !", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
GivePlayerMoney(suspect, -moneys);
format(string, sizeof(string), "Arestat de catre %s ~n~ pentru $%d", sendername, moneys);
GameTextForPlayer(suspect, string, 5000, 5);
ResetPlayerWeapons(suspect);
if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)
{
format(string, sizeof(string), "<< Officerul %s l-a arestat pe %s >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
{
format(string, sizeof(string), "<< FBI Agent %s l-a arestat pe %s >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3)
{
format(string, sizeof(string), "<< Soldier %s l-a arestat pe %s >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
SetPlayerInterior(suspect, 10);
SetPlayerPos(suspect,223.2281,114.4777,999.0156);
PlayerInfo[suspect][pJailTime] = time * 60;
if(bail == 1)
{
JailPrice[suspect] = bailprice;
format(string, sizeof(string), "Esti inchis pentru %d secunde. Cautiune: $%d", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
}
else
{
JailPrice[suspect] = 0;
format(string, sizeof(string), "Esti inchis pentru %d secunde. Cautiune: -", PlayerInfo[suspect][pJailTime]);
SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
}
PlayerInfo[suspect][pJailed] = 1;
PlayerInfo[suspect][pArrested] += 1;
SetPlayerFree(suspect,playerid, "Got Arrested");
TextDrawShowForPlayer(suspect, Textdraw1[suspect]);
WantedPoints[suspect] = 0;
WantedLevel[suspect] = 0;
WantLawyer[suspect] = 1;
}//distance
}//not connected
else
{
SendClientMessage(playerid, COLOR_GREY, "Nimeni destul de aproape pentru arestare.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Nu esti Cop / FBI / NG !");
return 1;
}
}//not connected
return 1;
}[/pawn]

 

IsACop

[pawn]public IsACop(playerid)
{
if(IsPlayerConnected(playerid))
{
new leader = PlayerInfo[playerid][pLeader];
new member = PlayerInfo[playerid][pMember];
if(member==1 || member==2 || member==3)
{
return 1;
}
else if(leader==1 || leader==2 || leader==3)
{
return 1;
}
}
return 0;
}[/pawn]
Imagini / Video (optional):
Aţi încercat să rezolvaţi singur?: Da.

Edited by bgtheodor

Fara reclama in semnatura !

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

Pentru comanda /uncuff.

 

[pawn]if(PlayerInfo[playerid][pMember] + PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] + PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] + PlayerInfo[playerid][pLeader] == 3)[/pawn]

 

asta nu trebuie sa arate asa. Tu aici faci o verificare, daca pMember + pLeader sunt egale cu 1? Ele nu cred ca o sa fie pentru ca in majoritatea gamemode-urilor ele sunt pMember si pLeader = id-ul factiunii.

 

Deci aici tu trebuie sa ai asa

 

[pawn]if(PlayerInfo[playerid][pMember] = 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] = 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] = 3 || PlayerInfo[playerid][pLeader] == 3)[/pawn]

 

Iar la /arrest. Aceasta functie GetClosestPlayer, ce face? Adica dupa numele ei imi dau seama, dar condul din interior vreau sa-l vad.

Link to comment
Share on other sites

Buna seara stimate.

Va prezint mai jos codurile functionale ale comenzilor dumneavoastra:

 

 

epzs4amqcto1ym5ip3tzk3ug.png

 


    {
    if(IsPlayerConnected(playerid))
    {
    if(IsACop(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "{D580FE}Syntax:{FFFFFF} /uncuff [Playerid/PartOfName]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "You cannot Uncuff yourself!"); return 1; }
    if(PlayerCuffed[giveplayerid])
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* You were Uncuffed by %s.", sendername);
    SendClientMessage(giveplayerid, COLOR_WHITE, string);
    format(string, sizeof(string), "* You Uncuffed %s.", giveplayer);
    SendClientMessage(playerid, COLOR_WHITE, string);
    GameTextForPlayer(giveplayerid, "~g~Uncuffed", 2500, 3);
    TogglePlayerControllable(giveplayerid, 1);
    PlayerCuffed[giveplayerid] = 0;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Acel player nu este legat !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Acel player nu este aproape de tine !");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Acest jucator nu este conectat !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Nu esti Cop / FBI / NG !");
    }
    }//not connected
    return 1;
    }
  if(strcmp(cmd, "/uncuff", true) == 0)

 

 

epzs4amqcto1ym5bqj3gkh5w.png

 


    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
    {
    if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, " Nu esti on Duty !");
    return 1;
    }
    if(!PlayerToPoint(6.0, playerid, 1527.9849,-1664.6001,6.2188))// || PlayerToPoint(6.0, playerid, -1566.4946,755.7339,-4.9063))
    {// Jail spot
    SendClientMessage(playerid, COLOR_GREY, " You are not near the Jail, can't Arrest !");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "{D580FE}Syntax:{FFFFFF} /arrest [price] [time (minutes)] [bail (0=no 1=yes)] [bailprice]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 1 || moneys > 100000) { SendClientMessage(playerid, COLOR_GREY, " Jail Price nu poate fi sub $1 sau peste $100.000 !"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "{D580FE}Syntax:{FFFFFF} /arrest [price] [time (minutes)] [bail (0=no 1=yes)] [bailprice]");
    return 1;
    }
    new time = strval(tmp);
    if(time < 1 || time > 20) { SendClientMessage(playerid, COLOR_GREY, " Jail Time Minutes nu poate fi sub 1 sau peste 20 !"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "{D580FE}Syntax:{FFFFFF} /arrest [price] [time (minutes)] [bail (0=no 1=yes)] [bailprice]");
    return 1;
    }
    new bail = strval(tmp);
    if(bail < 0 || bail > 1) { SendClientMessage(playerid, COLOR_GREY, " Jail Bailing can't be below 0 or above 1 !"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "{D580FE}Syntax:{FFFFFF} /arrest [price] [time (minutes)] [bail (0=no 1=yes)] [bailprice]");
    return 1;
    }
    new bailprice = strval(tmp);
    if(bailprice < 0 || bailprice > 3000000) { SendClientMessage(playerid, COLOR_GREY, " Jail Bailing nu poate fi sub $0 sau peste $300.0000 !"); return 1; }
    new suspect = GetClosestPlayer(playerid);
    if(IsPlayerConnected(suspect))
    {
    if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
    {
    GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(PlayerInfo[suspect][pWantedLevel] < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, " Playerul trebuie sa aiba cel putin Wanted Level 1 !");
    return 1;
    }
    format(string, sizeof(string), "* L-ai arestat pe %s !", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    GivePlayerMoney(suspect, -moneys);
    format(string, sizeof(string), "Arestat de catre %s ~n~ pentru $%d", sendername, moneys);
    GameTextForPlayer(suspect, string, 5000, 5);
    ResetPlayerWeapons(suspect);
    if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)
    {
    format(string, sizeof(string), "<< Officerul %s l-a arestat pe %s >>", sendername, giveplayer);
    OOCNews(COLOR_LIGHTRED, string);
    }
    else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
    {
    format(string, sizeof(string), "<< FBI Agent %s l-a arestat pe %s >>", sendername, giveplayer);
    OOCNews(COLOR_LIGHTRED, string);
    }
    else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3)
    {
    format(string, sizeof(string), "<< Soldier %s l-a arestat pe %s >>", sendername, giveplayer);
    OOCNews(COLOR_LIGHTRED, string);
    }
    SetPlayerInterior(suspect, 10);
    SetPlayerPos(suspect,223.2281,114.4777,999.0156);
    PlayerInfo[suspect][pJailTime] = time * 60;
    if(bail == 1)
    {
    JailPrice[suspect] = bailprice;
    format(string, sizeof(string), "Esti inchis pentru %d secunde. Cautiune: $%d", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    }
    else
    {
    JailPrice[suspect] = 0;
    format(string, sizeof(string), "Esti inchis pentru %d secunde. Cautiune: -", PlayerInfo[suspect][pJailTime]);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    }
    PlayerInfo[suspect][pJailed] = 1;
    PlayerInfo[suspect][pArrested] += 1;
    SetPlayerFree(suspect,playerid, "Got Arrested");
    TextDrawShowForPlayer(suspect, Textdraw1[suspect]);
    WantedPoints[suspect] = 0;
    WantedLevel[suspect] = 0;
    WantLawyer[suspect] = 1;
    }//distance
    }//not connected
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Nimeni destul de aproape pentru arestare.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Nu esti Cop / FBI / NG !");
    return 1;
    }
    }//not connected
    return 1;
    }

    if(strcmp(cmd, "/arrest", true) == 0)

 

ep41yhufqpagka5wfoornw1wjfjie.png

Edited by ARTIST

ep41yhufqpagka5wfoornw1wjfjie.png

HTjr_G.png
12975.png
 
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.