Skocz do zawartości
siny

Komenda nie działa

Rekomendowane odpowiedzi

Mam taki problem a mianowicie chce zrobić dla medyków komende /ulecz 

dcmd_ulecz(playerid, params[])
{
	if(gGracz[playerid][Frakcja] != 3)
	{
		new id;
		if(sscanf(params, "i",id))
			SendClientMessage(playerid, COLOR_WHITE,"UŻYJ:/ulecz [ID]");
		else if(!IsPlayerConnected(id))
		    SendClientMessage(playerid, COLOR_RED,"Gracz nie jest aktywny!");
		else
  		{
			new string[300];
			SetPlayerHealth(id, 100);
			format(string, sizeof(string),"Medyk %s ciebię uleczył!", PlayerName(playerid));
			SendClientMessage(id,COLOR_RED, string);
			format(string, sizeof(string), "Uleczyłeś gracza %s", PlayerName(id));
			SendClientMessage(playerid, COLOR_RED, string);
 		}
	}
	return 1;
}

i nie mogę używać tej komendy ale gdy dam tak

dcmd_ulecz(playerid, params[])
{
	if(gGracz[playerid][RangaAdmina] >= 3)
	{
		new id;
		if(sscanf(params, "i",id))
			SendClientMessage(playerid, COLOR_WHITE,"UŻYJ:/ulecz [ID]");
		else if(!IsPlayerConnected(id))
		    SendClientMessage(playerid, COLOR_RED,"Gracz nie jest aktywny!");
		else
  		{
			new string[300];
			SetPlayerHealth(id, 100);
			format(string, sizeof(string),"Medyk %s ciebię uleczył!", PlayerName(playerid));
			SendClientMessage(id,COLOR_RED, string);
			format(string, sizeof(string), "Uleczyłeś gracza %s", PlayerName(id));
			SendClientMessage(playerid, COLOR_RED, string);
 		}
	}
	return 1;
}

to wszystko działa mam tak samo dla innych komend proszę o pomoc 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
dcmd_ulecz(playerid, params[])
{
	if(gGracz[playerid][Frakcja] != 3)
	{
		new id;
		if(sscanf(params, "i",id))
			SendClientMessage(playerid, COLOR_WHITE,"UŻYJ:/ulecz [ID]");

		else if(!IsPlayerConnected(id))
		    SendClientMessage(playerid, COLOR_RED,"Gracz nie jest aktywny!");

		new string[300];
		SetPlayerHealth(id, 100);
		format(string, sizeof(string),"Medyk %s ciebię uleczył!", PlayerName(playerid));
		SendClientMessage(id,COLOR_RED, string);
		format(string, sizeof(string), "Uleczyłeś gracza %s", PlayerName(id));
		SendClientMessage(playerid, COLOR_RED, string);	
	}
 	else
	{
		SendClientMessage(playerid, -1, "Nie jesteś medykiem bo nie masz frakcji ustawionej na poziom 3");
	}
	return 1;
}

Sprawdź, plus dla jednego parametru nie musisz używać sscanfa. 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gdy wchodzę na skina medyka i chce uleczyć się to pisze mi "Nie jesteś medykiem bo nie masz frakcji ustawione na poziom 3"

 

//Frakcje
//0 = Gracz
//1 = Policja
//2 = Taxi
//3 = Medyk
//5 = Pomoc Drogowa

jak widać medyk jest 3 
 

 

Edytowane przez siny

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
dcmd_ulecz(playerid, params[])
{
	if(gGracz[playerid][Frakcja] == 3) // Gdy gracz jest w frakcji nr 3 (== - Znak równości)
	{
		new id;
		if(sscanf(params, "i",id))
			SendClientMessage(playerid, COLOR_WHITE,"UŻYJ:/ulecz [ID]");

		else if(!IsPlayerConnected(id))
		    SendClientMessage(playerid, COLOR_RED,"Gracz nie jest aktywny!");

		new string[300];
		SetPlayerHealth(id, 100);
		format(string, sizeof(string),"Medyk %s ciebię uleczył!", PlayerName(playerid));
		SendClientMessage(id,COLOR_RED, string);
		format(string, sizeof(string), "Uleczyłeś gracza %s", PlayerName(id));
		SendClientMessage(playerid, COLOR_RED, string);	
	}
 	else
	{
		SendClientMessage(playerid, -1, "Nie jesteś medykiem bo nie masz frakcji ustawionej na poziom 3");
	}
	return 1;
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie łatwiej zrobić ci

dcmd_ulecz(playerid, params[])
{
    if(gGracz[playerid][Frakcja] == 3) return SendClientMessage(playerid, -1, "*** Nie jesteś medykiem!");

    new pID;
    if(sscanf(cmdtext, "u", pID)) return SendClientMessage(playerid, -1, "*** Użyj: /ulecz [ID Gracza]");

    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, -1, "*** Tego gracza nie ma na serwerze!");

    SetPlayerHealth(pID, 100.0);

    new string2[256];
    format(string2, sizeof(string2), "*** Uleczyłeś gracza %s (%d).", PlayerName(pID), pID);
    SendClientMessage(playerid, 0x00FF00FF, string2);
    format(string2, sizeof(string2), "*** Medyk %s (%d) uleczył cie.", PlayerName(playerid), playerid);
    SendClientMessage(pID, -1, string2);
    return 1;
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
3 godziny temu, Daniel000192 napisał:

Nie łatwiej zrobić ci

dcmd_ulecz(playerid, params[])
{
    if(gGracz[playerid][Frakcja] == 3) return SendClientMessage(playerid, -1, "*** Nie jesteś medykiem!");

    new pID;
    if(sscanf(cmdtext, "u", pID)) return SendClientMessage(playerid, -1, "*** Użyj: /ulecz [ID Gracza]");

    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, -1, "*** Tego gracza nie ma na serwerze!");

    SetPlayerHealth(pID, 100.0);

    new string2[256];
    format(string2, sizeof(string2), "*** Uleczyłeś gracza %s (%d).", PlayerName(pID), pID);
    SendClientMessage(playerid, 0x00FF00FF, string2);
    format(string2, sizeof(string2), "*** Medyk %s (%d) uleczył cie.", PlayerName(playerid), playerid);
    SendClientMessage(pID, -1, string2);
    return 1;
}

 

Nie łatwiej, bo podałeś źle

if(gGracz[playerid][Frakcja] == 3) return SendClientMessage(playerid, -1, "*** Nie jesteś medykiem!");

if(gGracz[playerid][Frakcja] == 3) return SendClientMessage(playerid, -1, "*** Nie jesteś medykiem!");

tu musi być != bo w przypadku problemu użytkownika forum 3 to jest medyk czyli stosuijemy negację.

if(sscanf(cmdtext, "u", pID)) return SendClientMessage(playerid, -1, "*** Użyj: /ulecz [ID Gracza]");

skąd tyś tu wziął cmdtext? jak w argumencie komendy jest params?

 

Ma być tak

dcmd_ulecz(playerid, params[])
{
	if(gGracz[playerid][Frakcja] != 3)
		return SendClientMessage(playerid, -1, "Nie jesteś medykiem bo nie masz frakcji ustawionej na poziom 3");
	
	new id;
	if(sscanf(params, "d",id))
		return SendClientMessage(playerid, COLOR_WHITE,"UŻYJ:/ulecz [ID]");
	
	if(!IsPlayerConnected(id))
		return SendClientMessage(playerid, COLOR_RED,"Gracz nie jest aktywny!");
	
	SetPlayerHealth(id, 100);
		
	new string[144];		
	format(string, 144, "Zostałeś uleczony przez medyka %s!", PlayerName(playerid));
	SendClientMessage(id,COLOR_RED, string);
	format(string, 144, "Uleczyłeś gracza %s", PlayerName(id));
	SendClientMessage(playerid, COLOR_RED, string);	
	return 1;
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
31 minut temu, NikeKST napisał:

Nie łatwiej, bo podałeś źle

if(gGracz[playerid][Frakcja] == 3) return SendClientMessage(playerid, -1, "*** Nie jesteś medykiem!");


if(gGracz[playerid][Frakcja] == 3) return SendClientMessage(playerid, -1, "*** Nie jesteś medykiem!");

tu musi być != bo w przypadku problemu użytkownika forum 3 to jest medyk czyli stosuijemy negację.


if(sscanf(cmdtext, "u", pID)) return SendClientMessage(playerid, -1, "*** Użyj: /ulecz [ID Gracza]");

skąd tyś tu wziął cmdtext? jak w argumencie komendy jest params?

 

Ma być tak


dcmd_ulecz(playerid, params[])
{
	if(gGracz[playerid][Frakcja] != 3)
		return SendClientMessage(playerid, -1, "Nie jesteś medykiem bo nie masz frakcji ustawionej na poziom 3");
	
	new id;
	if(sscanf(params, "d",id))
		return SendClientMessage(playerid, COLOR_WHITE,"UŻYJ:/ulecz [ID]");
	
	if(!IsPlayerConnected(id))
		return SendClientMessage(playerid, COLOR_RED,"Gracz nie jest aktywny!");
	
	SetPlayerHealth(id, 100);
		
	new string[144];		
	format(string, 144, "Zostałeś uleczony przez medyka %s!", PlayerName(playerid));
	SendClientMessage(id,COLOR_RED, string);
	format(string, 144, "Uleczyłeś gracza %s", PlayerName(id));
	SendClientMessage(playerid, COLOR_RED, string);	
	return 1;
}

 

Kod przerobiłem pod dcmd tylko ze ja pisałem u siebie w gamemodzie pod zcmd :D i nie zauważyłem tego cmdtext xdd ale głównie polecam CMD: bo łatwiej.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×