Jump to content
  • 0

Problema minora.


InSide*

Question

Problema intalnita (descriere): Am incercat sa mut sistemul lui n0bel de barbut din params pe strcmp
Ero(area / rile) / warning-(ul / urile): Nu sunt erori, doar ca nu functioneaza comanda cum trebuie.

Ex: /dice <playerid> <suma> ii oferi cererea de barbut, iar cand respectivul trebuie sa accepte prin comanda /accept dice <playerid> zice ca jucatorul X nu ti-a oferit o cerere de barbut, chiar daca tu ai facut asta.
Liniile de cod / sursa / script-ul(obligatoriu):

Comanda /dice:

 if(strcmp(cmd, "/dice", true) == 0)
	{
    if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to login first.");
    if(IsPlayerConnected(playerid))
    {
                //if(!IsPlayerInRangeOfPoint(playerid, 100, 2016.2699,1017.7790,996.8750)) return SendClientMessage(playerid, COLOR_WHITE,"{FFB870}Nu te afli in casino!");
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp)) return SCM(playerid,COLOR_WHITE,"Syntax: /dice <name/playerid> <Money>");
                new targetid = ReturnUser(tmp);
				tmp = strtok(cmdtext, idx);
				if(!strlen(tmp)) return SCM(playerid,COLOR_WHITE,"Syntax: /dice <name/playerid> <Money>");
				new price = strval(tmp);
                if(price < 1 || price > 1000000) return SCM(playerid,COLOR_WHITE,"{F05E6C}Limita de bani este de $1,000,000.");
                if(IsPlayerConnected(targetid))
                {
                    if(GetPlayerMoney(playerid) < price) return SCM(playerid,COLOR_WHITE,"{FFB870}Nu ai destui bani.");
                    if(GetPlayerMoney(targetid) < price) return SCM(playerid,COLOR_WHITE,"{FFB870}Acel jucator nu are destui bani.");
                    if(targetid == playerid) return SendClientMessage(playerid, COLOR_WHITE, "{FFB870}Nu poti juca.");
                    if(ProxDetectorS(10.0, playerid, targetid))
                    {
                            GetPlayerName(targetid, giveplayer, sizeof(giveplayer));
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            SendClientMessage(playerid, COLOR_WHITE, "{F05E6C}Cerere de barbut trimisa");
                            format(string, sizeof(string), "{F05E6C}%s te-a invitat sa joci barbut cu el pe %s$. Scrie /accept dice %d pentru a juca.",sendername,Bani(price),playerid);
                            SendClientMessage(targetid, COLOR_WHITE, string);
                            Diceid[targetid] = playerid;
                            Dicem[targetid] = price;
                     }
                     else return SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Acel jucator nu este langa tine.");
                }
    }
        return 1;
}

Comanda /accept "dice":

	if(strcmp(cmd,"/accept",true)==0)
    {
        if(IsPlayerConnected(playerid))
	    {
			new x_job[128];
			x_job = strtok(cmdtext, idx);
			if(!strlen(x_job)) {
				SendClientMessage(playerid, COLOR_WHITE, "|__________________ Accept __________________|");
				SendClientMessage(playerid, COLOR_WHITE, "{D580FE}Foloseste:{FFFFFF} /accept [name]");
				SendClientMessage(playerid, COLOR_GREEN, "Poti folosi: Sex, Drugs, Materials, Pills, Repair, Lawyer, Dice, Job, Live, Refill");
				SendClientMessage(playerid, COLOR_GREEN, "Poti folosi: Car, Taxi, Bus, Boxing, Medic, Mechanic, Paper, Ticket");
				SendClientMessage(playerid, COLOR_WHITE, "|____________________________________________|");
				return 1;
			}
			if(strcmp(x_job,"dice",true) == 0)
                {
                        //if(!IsPlayerInRangeOfPoint(playerid, 100, 2016.2699,1017.7790,996.8750)) return SendClientMessage(playerid, COLOR_WHITE,"{FFB870}Nu te afli in casino!");
                        if(Diceid[playerid] == 999)
						return SCM(playerid,COLOR_WHITE,"{FFFFFF}Nu ai primit nici o cerere de barbut.");
                        if(Diceid[playerid] != idx)
						return SCM(playerid,COLOR_WHITE,"{FFFFFF}Acel jucator nu te-a invitat sa joci barbut cu el.");
                        if(GetPlayerMoney(playerid) < Dicem[playerid])
						return SCM(playerid,COLOR_WHITE,"{FFFFFF}Nu ai destui bani.");
                        if(GetPlayerMoney(idx) < Dicem[playerid])
						return SCM(playerid,COLOR_WHITE,"{FFB870}Acel jucator nu are destui bani.");
                        if(ProxDetectorS(10.0, playerid, Diceid[playerid]))
                        {
                                new dice1[MAX_PLAYERS],dice2[MAX_PLAYERS],dice3[MAX_PLAYERS],dice4[MAX_PLAYERS];
                                dice1[playerid] = random(6) + 1;
                                dice2[Diceid[playerid]] = random (6) + 1;
                                dice3[playerid] = random (6) + 1;
                                dice4[Diceid[playerid]] = random (6) + 1;
                                GetPlayerName(playerid,sendername,sizeof(sendername));
                                GetPlayerName(Diceid[playerid],giveplayer,sizeof(giveplayer));
                                if(dice1[playerid] + dice1[playerid] > dice2[Diceid[playerid]] + dice4[Diceid[playerid]])
                                {
                                        format(string,sizeof(string),"{CA99CE}%s rolls %d %d. %s rolls %d %d. %s won %s$.",sendername,dice1[playerid],dice3[playerid],giveplayer,dice2[Diceid[playerid]],dice4[Diceid[playerid]],sendername,Bani(Dicem[playerid]));
                                        ProxDetector(10.0,playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
                                        format(string, sizeof(string), "{048E24}(-) Ai pierdut $%s!",Bani(Dicem[playerid]));
                                        SendClientMessage(Diceid[playerid], COLOR_WHITE, string);
                                        format(string, sizeof(string), "{048E24}(+) Ai castigat $%s!",Bani(Dicem[playerid]));
                                        SendClientMessage(playerid, COLOR_WHITE, string);
                                        GivePlayerMoney(playerid,Dicem[playerid]);
                                        GivePlayerMoney(Diceid[playerid],-Dicem[playerid]);
                                }
                                if(dice2[Diceid[playerid]] + dice4[Diceid[playerid]] > dice1[playerid] + dice3[playerid])
                                {
                                        format(string,sizeof(string),"{CA99CE}%s rolls %d %d. %s rolls %d %d. %s won %s$.",giveplayer,dice2[Diceid[playerid]],dice2[Diceid[playerid]],sendername,dice1[playerid],dice3[playerid],giveplayer,Bani(Dicem[playerid]));
                                        ProxDetector(10.0,playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
                                        format(string, sizeof(string), "{048E24}(-) Ai pierdut $%s!",Bani(Dicem[playerid]));
                                        SendClientMessage(playerid, COLOR_WHITE, string);
                                        format(string, sizeof(string), "{048E24}(+) Ai castigat $%s!",Bani(Dicem[playerid]));
                                        SendClientMessage(Diceid[playerid], COLOR_WHITE, string);
                                        GivePlayerMoney(playerid,-Dicem[playerid]);
                                        GivePlayerMoney(Diceid[playerid],Dicem[playerid]);
                                }
                                if(dice2[Diceid[playerid]] + dice4[Diceid[playerid]] == dice1[playerid] + dice3[playerid])
                                {
                                        format(string,sizeof(string),"{CA99CE}%s rolls %d %d. %s rolls %d %d. No one won.",giveplayer,dice2[Diceid[playerid]],dice4[Diceid[playerid]],sendername,dice1[playerid],dice3[playerid]);
                                        ProxDetector(10.0,playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
                                }
                                Diceid[playerid] = 999;
                                Dicem[playerid] = 0;
                        }
                        else return SendClientMessage(playerid, COLOR_WHITE, "{FFB870}Player is not near you.");
                        return 1;
			}

Imagini / Video (optional):
Ati incercat sa rezolvati singur?: Da, am incercat mai multe metode.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Buna ziua stimate.

Avand in vedere caci nu e pusa conditia de accept dupa playerid ( /accept dice [playerid] ), urmatoarea conditie:

 

if(Diceid[playerid] == 999)  return SCM(playerid,COLOR_WHITE,"{FFFFFF}Nu ai primit nici o cerere de barbut.");

 

ar fi cea mai principala in codul dumneavoastra.

 

Conditia de mai jos e practic inutila si nu are nici o importanta:

 

if(Diceid[playerid] != idx) return SCM(playerid,COLOR_WHITE,"{FFFFFF}Acel jucator nu te-a invitat sa joci barbut cu el.");

 

Prin urmare necesita sa o stergeti din gamemode.

 

La fel si verificarea pe suma de bani a jucatorilor, care este la fel inutile,deoarece nu e comanda dupa playerid ci dupa accept [name]

 

if(GetPlayerMoney(playerid) < Dicem[playerid]) return SCM(playerid,COLOR_WHITE,"{FFFFFF}Nu ai destui bani.");

if(GetPlayerMoney(idx) < Dicem[playerid]) return SCM(playerid,COLOR_WHITE,"{FFB870}Acel jucator nu are destui bani.");

Edited by ARTIST
  • Upvote 1

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.