Skocz do zawartości

Rekomendowane odpowiedzi

To i ja coś dam od siebie ;) Możliwe, że ktoś już wstawił:

 

NAPRAW pod '2' po czasie 20sek.

 

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if((newkeys & KEY_SUBMISSION) && GetPlayerState(playerid) == 2)
{
 
if (gettime() - GetPVarInt(playerid, "UzylesCMDnaNAPRAW") < 0)
{
new string[100];
format(string, sizeof(string),"{FFFFFF}›› {FFBE00}Musisz odczekać  {FFFFFF}%d {FFBE00}sek by naprawić pojazd!", GetPVarInt(playerid, "UzylesCMDnaNAPRAW") - gettime());
SendClientMessage(playerid, COLOR_ORANGE, string);
return false;
}
new vid=GetPlayerVehicleID(playerid);
if(!vid || vid == INVALID_VEHICLE_ID) return 1;
SetVehicleHealth(vid, 1000.0);
RepairVehicle(vid);
SendClientMessage(playerid, COLOR_GREEN, "{FFFFFF}›› {FFBE00}Naprawiłeś pojazd !");
SetPVarInt(playerid, "UzylesCMDnaNAPRAW", gettime()+20);
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
}
return 1;
} 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie wiem czy było - jeżeli tak to wybaczcie oraz proszę o poprawienie kodu jeżeli jest mało wydajny.

/SLAP

CMD:slap(playerid, params[])
{
    if(!IsPlayerAdmin(playerid))
        return SendClientMessage(playerid, 0xFF0000AA, "Nie masz uprawnień do tej komendy!");

    new msgFP[156],
        msgFM[128],
        reason[64],
        give_playerid,
        Float:x, Float:y, Float:z;

    if(sscanf(params, "dS(Brak powodu)[64]", give_playerid, reason))
        return SendClientMessage(playerid, 0xB0B0B0AA, "[Pomoc] /slap [id gracza] [powód]");


    if(!IsPlayerConnected(give_playerid))
        return SendClientMessage(playerid, 0xB0B0B0AA, "Gracz o takim ID nie istnieje!");

    
    if(give_playerid==playerid)
    {
        GetPlayerPos(playerid, Float:x, Float:y, Float:z);
        SetPlayerPos(playerid, Float:x, Float:y, Float:z+6);
        SendClientMessage(playerid, 0xB0B0B0AA, "Klepnąłeś sam siebie, zboczeńcu :)");
        return 1;
    }
    else
    {
        GetPlayerPos(give_playerid, Float:x, Float:y, Float:z);
        SetPlayerPos(give_playerid, Float:x, Float:y, Float:z+6);
        format(msgFP, sizeof(msgFP), "Dostałeś klapsa od: {CC8080}%s{AFAFAF}, powód {CC8080}%s", NameWithoutUnderscore(playerid), reason);
        SendClientMessage(give_playerid, 0xB0B0B0AA, msgFP);
        format(msgFM, sizeof(msgFM), "Dałeś klapsa dla: {80CC80}%s[ID: %d]{AFAFAF}, jako powód dając:{CC8080} %s", NameWithoutUnderscore(give_playerid), give_playerid, reason);
        SendClientMessage(playerid, 0xB0B0B0AA, msgFM);
        return 1;
    }
}

Żeby kod działał trzeba dodać ten stock.

stock NameWithoutUnderscore(playerid)
{
	new plname[MAX_PLAYER_NAME];
	GetPlayerName(playerid, plname, sizeof(plname));
	for(new i; plname[i] != 0; i++)
		if(plname[i] == '_')
			plname[i] = ' ';


	return plname;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

/Givescore [id] [ilość] (Wymagany sscanf)

 

CMD:givescore(playerid, params[])
{
new giveplayer, score;
if(!IsPlayerAdmin(playerid))
{
SendClientMessage(playerid, -1, "Tej komendy może użyć tylko administrator");
return 1;
}
if(sscanf(params, "dd", giveplayer, score))
{
SendClientMessage(playerid, -1, "Użyj tego wzoru:/givescore [id] [ilość]");
        return 1;
}
if(!IsPlayerConnected(giveplayer))
{
new string[32];
        format(string, sizeof(string), "Nie ma gracza o id:%d", giveplayer);
        SendClientMessage(playerid, -1, string);
return 1;
}
    new name[24], name2[24], string[62];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(giveplayer, name2, sizeof(name2));
SetPlayerScore(giveplayer, GetPlayerScore(giveplayer) + score);
format(string, sizeof(string), "Otrzymałeś %d respektu od administratora:%s(%d)", score, name, playerid);
SendClientMessage(giveplayer, -1, string);
format(string, sizeof(string), "Gracz %s(%d) otrzymał od ciebie %d respektu", name2, giveplayer, score);
SendClientMessage(playerid, -1, string);
return 1;
}

 

jest to komenda tylko dla administratora, dzięki której możemy nadać graczowi o wybranym przez nas id również wybraną ilość score (respektu).

(Gdyby ktoś (zaawansowany) mógł ocenić ową komendę i napisać mi na PW nad czym jeszcze muszę popracować byłbym wdzięczny :) )

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Można ją wykonać o wiele krócej:

CMD:givescore(playerid, params[]){
    new id, score;
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Nie masz uprawnień!");
    if(sscanf(params, "dd", id, score)) return SendClientMessage(playerid, -1, "Użyj: /givescore [id gracza] [ilosc]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Nie znaleziono gracza o podanym ID.");
    SetPlayerScore(id, GetPlayerScore(id) + score);

    //formatowanie i wysylanie tekstu...
    return SendClientMessage(playerid, -1, "Daleś [...] score graczowi [...]);
}
Edytowane przez Drakon

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
            ♣♣♣ Komenda /kamizelka (chyba każdy wie o co chodzi) ♣♣♣
if (strcmp("/kamizelka", cmdtext, true, 10) == 0)
{
   if(GetPlayerMoney(playerid) >= 15000) // sprawdza czy gracz ma 15000$
   {
SetPlayerArmour(playerid,100); // daje kamizelke graczowi
SendClientMessage(playerid,0x33AA33FF,"Kupiłeś kamizelke za 15000$ :)");
new nazwa[MAX_PLAYER_NAME];
new string[256];
GetPlayerName(playerid,string,sizeof(nazwa));
format(string,sizeof(string),"Gracz %s kupił kamizelke --> /kamizelka <--",nazwa); // wysyła wszystkim wiadomość
SendClientMessageToAll(0x33AA33FF,string);
GivePlayerMoney(playerid,-15000);
}
else
{
SendClientMessage(playerid,0xAA3333AA,"Nie posiadasz tyle kasy na kamizelke! (15000$)"); // jeżeli gracz nie ma 15000$ to wysyłamy mu wiadomość..
}
 
return 1;
}
Edytowane przez konradowski02

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@up Polecam [.code][./code] - Tylko bez kropek.

Komenda na /aogloszenie:

CMD:aogloszenie(playerid, params[])
{
    new tekst[70],namea[MAX_PLAYER_NAME];
    GetPlayerName(playerid, namea, sizeof(namea)); //Pobiera nick administratora
    if(!IsPlayerAdmin(playerid)) //Gdy gracz nie jest zalogowany rcon, to nie może używać tej komendy
        return 0;
    if(isnull(params)) //Gdy nic nie było wpisane w komendzie: /aogloszenie [tekst]
            return SendClientMessage(playerid, -1, "Użyj: /AOGLOSZENIE [Tekst ogłoszenia]"); //Wysyłamy wiadomość o nie wpisanym tekście
    format(tekst,sizeof(tekst),"Ogłoszenie od administratora: %s (ID: %d) >>> %s",namea,playerid,tekst); //Formatujemy wiadomość jaką ma wysłać do każdego gracza.
    SendClientMessageToAll(0xFF9900FF,tekst); // Wysyłamy do każdego wiadomość. 
    return 1;
}

(( Może to być źle, ponieważ pisałem z telefonu :P ))

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

if(!strcmd("/zestaw", cmdtext, true)
{
    if (GetPlayerMoney(playerid) >= 15000)
   {
GivePlayerWeapon(playerid, 3 , 50);
GivePlayerWeapon(playerid, 13 , 3);
GivePlayerWeapon(playerid, 25 , 99);
SendClientMessage(playerid, KOLOR,"Zakupiłeś/aś zestaw gracza (15000)");
GivePlayerMoney(playerid, -15000);
}
else
{
SendClientMessage(playerid, KOLOR,"Nie stać cię na zestaw gracza! (15000)");
}
return 1;
}
Komenda dająca zestaw gracza który kosztuje 15000$
Przepraszam za złe ułożenie kodu ale jestem na telefonie.
w GivePlayerWeapon dałem byle jakie id broni (to ty ustalasz jaką broń ma dostać gracz)
if (strcmp("/azestaw", cmdtext, true, 10) == 0)
{
if(isplayeradmin(playerid))
{
GivePlayerWeapon(playerid, 1 , 1);
GivePlayerWeapon(playerid, 24 , 64);
GivePlayerWeapon(playerid, 34 , 49);
GivePlayerWeapon(playerid, 47 , 78);
SendClientMessage(playerid, KOLOR,"Dostałeś darmowy zestaw admina");
}
return 1;
}
Edytowane przez konradowski02

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Komenda /niewidzialnosc dla gracza za 2000$

Definicje:

#define COLOR_GREEN 0x33AA33FF
#define COLOR_RED 0xAA3333AA
#define COLOR_GRACZA_BIALY 0xFFFFFF00

Komenda:

if (strcmp("/niewidzialnosc", cmdtext, true, 10) == 0)
{
if (GetPlayerMoney(playerid)>=2000)
{
SetPlayerColor(playerid, 0xFFFFFF00);
GivePlayerMoney(playerid, -2000);
SendClientMessage(playerid, 0x33AA33FF,"Zostałeś/aś niewidzialny/a! koszt: 2000$");
}
else
{
SendClientMessage(playerid, 0xAA3333AA,"Nie posiadasz tyle kasy na niewidzialność! (2000$)");
}
return 1;
}
Edytowane przez konradowski02

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

if(strcmd("dzień", cmdtext, True, 10) == 0)
{
if (GetPlayerMoney(playerid)>=500)
SetPlayerTime(playerid, 11:00);
GivePlayerMoney(playerid, -500);
SendClientMessage(playerid, KOLOR,"ustawiłeś u siebie dzień za 500$");
}
else
{
SendClientMessage(playerid, KOLOR,"Nie stać cię na ustawienie dnia! (500$)");
return 1;
}

Siedzę na telefonie więc proszę o poukładanie tego kodu :) Edytowane przez konradowski02

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie wiem czy komuś się to przyda, ale co mi szkodzi to udostępnić.
Jedyne co potrzebne to zcmd i sscanf.

/chilliad

CMD:chilliad(playerid)
{
	new veh;
	if(IsPlayerInAnyVehicle(playerid))
	{
		veh = GetPlayerVehicleID(playerid);
		SetVehiclePos(veh, -2343.1118,-1612.8585,483.6777);
		PutPlayerInVehicle(playerid, veh, 0);
	}
	else
	{
		SetPlayerPos(playerid, -2343.1118,-1612.8585,483.6777);
	}
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie wiem, czy było, ale proszę....

if(strcmp(cmdtext,"/l",true)==0)
{
    new text[144];
    new playername[MAX_PLAYER_NAME];
    new Float:X,Float:Y,Float:Z;
    text = strtok(cmdtext,idx);
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerName(playerid, playername, sizeof(imiegracza));
    format(text, sizeof(string), "[local chat] %s (ID %d) %s", playername, playerid, text); 
    for(new i, m=GetMaxPlayers(); i < m; i++)
            if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(i,50.0,X,Y,Z))
                   SendClientMessage(i,COLOR_GREEN,text);
    return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Komenda pm + podgląd pm.

Na początku dodajemy:
 

new bool:Podglad[MAX_PLAYERS];

potem funkcje / stocka:
 

stock PlayerName(playerid)
{
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    return pname;
}

/pm:
 

CMD:pm(playerid, params[])
{
    new player, tekst[120], pm[120];
    if(sscanf(params, "is[120]", player, tekst)) return SendClientMessage(playerid, 0xFFFFFFF, "/pm [ID] [Tekst]");
    if(!IsPlayerConnected(player)) return SendClientMessage(playerid, 0xFFFFFFFF, "Nie ma takiego gracza!");
    format(pm, sizeof(pm), "[PM] %s >> %s: %s", PlayerName(playerid), PlayerName(player), tekst);
    SendClientMessage(playerid, 0xFFFFFF, pm);
    format(pm, sizeof(pm), "[PM] %s << %s: %s", PlayerName(player), PlayerName(playerid), tekst);
    SendClientMessage(playerid, 0xFFFFFF, pm);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
       if(IsPlayerAdmin(i) && Podglad[i] == true)
       {
            format(pm, sizeof(pm), "[PODGLĄD PM] %s >> %s: %s", PlayerName(playerid), PlayerName(player), tekst);
            SendClientMessage(i, 0xFFFFFF, pm);
        }
    }
    return 1;
}

/podgladpm
 

CMD:podgladpm(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return 0;

    if(Podglad[playerid] == true)
    {
        Podglad[playerid] == false;
        SendClientMessage(playerid, 0xFFFFFF, "Podgląd PM został wyłączony");
    }
    if(Podglad[playerid] == false)
    {
        Podglad[playerid] == true;
        SendClientMessage(playerid, 0xFFFFFF, "Podgląd PM został włączony");
    }
Edytowane przez Vortex

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

new bool:Podglad;
Czyli jeden administrator może każdemu reszcie administracji włączać i wyłączać ten podgląd?

Użyj

new bool:Podglad[MAX_PLAYERS];
tak, aby każdy sobie sam ustalał czy chce podglądać PW czy nie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Część, nie wiem czy to było, ale proszę o to komenda na zw oraz jj z zastosowaniem 3DText w strcmp (dla początkujących)!

PS. Sorry, jak by wystąpiły błędy, ale to na szybko było robione - pod tym postem umieszczajcie swoje uwagi!

new Text3D:ZW[MAX_PLAYERS];
new text[128];

public OnPlayerCommandText(playerid, cmdtext[])
{
     if(strcmp(cmdtext, "/zw", true))
     {
         if(!GetPVarInt(playerid, "ZarWrac"))
         {    
             Attach3DTextLabelToPlayer(ZW[playerid],playerid,0,0,2);
             SetPVarInt(playerid, "ZarWrac", 1);
             GetPlayerName(playerid, pName, sizeof(pName));
             format(text, sizeof(text), "Gracz %s (ID %d) zaraz wraca!", pName, playerid);
             SendClientMessageToAll(COLOR_GREEN, text);
             TogglePlayerControllable(playerid,0);
         }         
         else if(GetPVarInt(playerid, "ZarWrac"))
         {
         SendClientMessage(playerid, COLOR_RED, "Przecież Cię nie ma!");
         }
       return 1;
    }
    if(strcmp(cmdtext, "/jj", true))
    {
          if(GetPVarInt(playerid, "ZarWrac"))
          {     
              Delete3DTextLabel(Text3D:ZW[playerid]);
              TogglePlayerControllable(playerid,1); 
              GetPlayerName(playerid, pName, sizeof(pName));
              format(text, sizeof(text), "Gracz %s (ID %d) już jest!", pName, playerid);
              SendClientMessageToAll(COLOR_PINK, text);
              SetPVarInt(playerid, "ZarWrac", 0);
          }
          else if(!GetPVarInt(playerid, "ZarWrac"))
          {
              SendClientMessage(playerid, -1, "Tak wiemy, że jesteś!!!");
          }
       return 1;
    }
  return 0;
}
public OnPlayerConnect(playerid)
{        
    ZW[playerid] = CreatePlayer3DTextLabel(playerid, "[Zaraz wracam!]", COLOR_GREEN, 0.0,  0.0, 0.0, 100.0,  0, 0);
    return 1;
}  
stock  pName(playerid)
{
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
    return playername;
}

@down

 

Takie pytanie, gdzie ma być te: "ZW[playerid]" niby?

Edytowane przez KDK ZamDragon

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
new bool:Podglad;
Czyli jeden administrator może każdemu reszcie administracji włączać i wyłączać ten podgląd?

Użyj

new bool:Podglad[MAX_PLAYERS];
tak, aby każdy sobie sam ustalał czy chce podglądać PW czy nie

Poprawione, ale może ktoś chce ustawiać dla całej administracji podgląd :)

 

@up

ZW[playerid]

w OnGameModeInit? Śmieszne :DDD

Edytowane przez Vortex

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ę.

×