Jump to content
  • 0

Problema 'count' la comanda /areagun


Rayan

Question

Problema intalnita (descriere): Salut, am incercat sa pun 'count' comenzi /areagun (sa arate cati jucatori au primit arme), insa nu mi-a iesit, imi scrie de atatea ori pe chat-ul adminilor, cati jucatori au primit arme, nu stiu daca intelegeti. V-am lasat pozele mai jos
Ero(area / rile) / warning-(ul / urile): Niciuna.
Liniile de cod / sursa / script-ul(obligatoriu):  Comanda principala:

http://pastebin.com/87XKuf2L
Imagini / Video (optional): http://imgur.com/a/LGReP
Ati incercat sa rezolvati singur?: Da, insa cum am spus mai sus, mesajul care se trimite pe chat-ul adminilor, apare de atatea ori, cati jucatori primesc arme

Uitati ce am incercat eu , vreau doar ca mesajul care se trimite adminilor, sa arate cati jucatori au primit arme (count) - %d players

http://pastebin.com/er3m4fbX

Edited by Rayan
Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
36 minutes ago, Rayan said:

Problema intalnita (descriere): Salut, am incercat sa pun 'count' comenzi /areagun (sa arate cati jucatori au primit arme), insa nu mi-a iesit, imi scrie de atatea ori pe chat-ul adminilor, cati jucatori au primit arme, nu stiu daca intelegeti. V-am lasat pozele mai jos
Ero(area / rile) / warning-(ul / urile): Niciuna.
Liniile de cod / sursa / script-ul(obligatoriu):  Comanda principala:

http://pastebin.com/87XKuf2L
Imagini / Video (optional): http://imgur.com/a/LGReP
Ati incercat sa rezolvati singur?: Da, insa cum am spus mai sus, mesajul care se trimite pe chat-ul adminilor, apare de atatea ori, cati jucatori primesc arme

Uitati ce am incercat eu , vreau doar ca mesajul care se trimite adminilor, sa arate cati jucatori au primit arme (count) - %d players

http://pastebin.com/er3m4fbX

Când formatezi strungul pui "i" în loc de count, pentru că acel loop îți calculează toții playerii de pe server, si verifica care se află în coordonatele tale.

**********************************

Servicii Scripting de calitate:

*********************************

Future Project: ExpertGame

*********************************

Link to comment
Share on other sites

  • 0
Acum 3 ore, DaEdRiC-FoX a spus:

Când formatezi strungul pui "i" în loc de count, pentru că acel loop îți calculează toții playerii de pe server, si verifica care se află în coordonatele tale.

Nu, la prima vedere a pus bine, sunt pe tel si nu pot analiza in detaliu comanda sa iti spun ce nu merge, dar la prima vedere e bine.

Acel count creste odata cu fiecare jucator ce detine arma si e in jurul tau, pana verific eu codul in detaliu iti sugerez sa faci un debugg cu printf in care vezi cati jucatori se afla in raza ta, daca nu ma insel, vei fi si tu luat in considerare, asa ca poti pune i-1

Link to comment
Share on other sites

  • 0

incearca asa, stringul trebuie formatat sub linia cand variabila 'count' creste, altfel va lua mereu valoarea cu care e initiata.

CMD:areagun(playerid, params[]) // adaugat 'count'
{
    if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_RED2, "Nu poti folosi nicio comanda pentru ca nu esti logat.");
    if(PlayerInfo[playerid][pAdmin] >= 2)
{
new range,gun,ammo,string[256],sendername[25],count=0;
if(sscanf(params, "iii", range, gun, ammo)) return SCM(playerid,COLOR_WHITE,"Usage: /areagun [range] [weapon id] [ammo]");
{
   GetPlayerName(playerid, sendername, sizeof(sendername));
   if(gun < 1||gun > 46||gun==19||gun==20||gun==21||gun==45) return SCM(playerid,COLOR_WHITE,"Invalid weapond ID.");
   if(ammo <1||ammo > 1000) return SCM(playerid,COLOR_WHITE,"Invalid ammo (1-1000).");
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
if(ProxDetectorS(range, playerid, i))
{
GivePlayerWeaponEx(i, gun, ammo);
if(GetPlayerState(i) == PLAYER_STATE_PASSENGER)
{
        new gun2,tmp;
        GetPlayerWeaponData(i,5,gun2,tmp);
        #pragma unused tmp
        if(gun2)SetPlayerArmedWeapon(i,gun2);
        else SetPlayerArmedWeapon(i,0);
        count++;
}
}
}
}
format(string, sizeof(string), "AdmCmd: {FFFFFF}%s has given gun %d with %d bullets to all players on range %d. (%d players)", sendername,gun,ammo,range, count-1);
ABroadCast(COLOR_ADMCOMMANDS,string,1);
}
}
else return SendClientMessage(playerid, COLOR_ERROR, "You are not authorized to use this command.");
return 1;
}

Link to comment
Share on other sites

  • 0

Vezi asa:

CMD:areagun(playerid, params[]) // adaugat 'count'
{
    if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_RED2, "Nu poti folosi nicio comanda pentru ca nu esti logat.");
    if(PlayerInfo[playerid][pAdmin] >= 2)
	{
		new range,gun,ammo,string[256],sendername[25],count=0;
		if(sscanf(params, "iii", range, gun, ammo)) return SCM(playerid,COLOR_WHITE,"Usage: /areagun [range] [weapon id] [ammo]");
		
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(gun < 1||gun > 46||gun==19||gun==20||gun==21||gun==45) return SCM(playerid,COLOR_WHITE,"Invalid weapond ID.");
		if(ammo <1||ammo > 1000) return SCM(playerid,COLOR_WHITE,"Invalid ammo (1-1000).");
		format(string, sizeof(string), "AdmCmd: {FFFFFF}%s has given gun %d with %d bullets to all players on range %d.", sendername,gun,ammo,range);
		ABroadCast(COLOR_ADMCOMMANDS,string,1);
		foreach(Player,i)
		{
			if(IsPlayerConnected(i))
			{
				if(ProxDetectorS(range, playerid, i))
				{
					GivePlayerWeaponEx(i, gun, ammo);
					new gun2,tmp;
					GetPlayerWeaponData(i,5,gun2,tmp);
					#pragma unused tmp
					if(gun2)SetPlayerArmedWeapon(i,gun2);
					else SetPlayerArmedWeapon(i,0);
					count++;
				}
			}
		}
	}
	else return SendClientMessage(playerid, COLOR_ERROR, "You are not authorized to use this command.");
	return 1;
}

 

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.