Skocz do zawartości

Rekomendowane odpowiedzi

Komendy /lock i /zaparkuj do sa:mp 0.3

Opiszę jak zrobić te dwie komendy do sa:mp,

/LOCK

na górze mapy:

new lock[MAX_VEHICLES][2];
zmienna do której będziemy przypisywać 1 lub 0 by sprawdzić czy pojazd jest zamknięty komenda /lock (taka trochę na szybko)
if (strcmp(cmdtext, "/lock", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
lock[GetPlayerVehicleID(playerid)][0]=1;
lock[GetPlayerVehicleID(playerid)][1]=playerid;
SendClientMessage(playerid, Fioletowy, "Zamknąłeś swój pojazd");
}
return 1;
}
chyba wszystko wiadomo, standardowy początek komendy, potem sprawdzanie czy gracz jest w jakimkolwiek pojeździe, jeśli tak to do zmiennej lock a dokładniej do numeru tablicy o id pojazdu przypisujemy jeden i wysyłamy tekst do gracza, komenda /unlock wygląda identycznie tylko zamiast:
lock[GetPlayerVehicleID(playerid)][0]=1;
lock[GetPlayerVehicleID(playerid)][1]=playerid;
dajemy:
lock[GetPlayerVehicleID(playerid)][0]=0;
lock[GetPlayerVehicleID(playerid)][1]=-1
By w ogóle komenda nam zadziałała to przechodzimy do public'ka OnVehicleStreamIn i wklejamy tam:
if(lock[vehicleid][0]==1 && lock[vehicleid][1]!=forplayerid)
{
SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
}
Teraz by gracze którzy widzieli nasz pojazd w momencie wpisania komendy /lock też nie mogli do niego wejść potrzebujemy kodu w public'ku OnPlayerEnterVehicle
if(lock[vehicleid][0]==1 && lock[vehicleid][1]!=playerid)
{
SetVehicleParamsForPlayer(vehicleid, playerid, 0, 1);
}
Uwaga!: jeśli ktoś będzie chciał nam wtedy ukraść pojazd prawdopodobnie za pierwszym razem wyrzuci nas z pojazdu ale mimo tego że niby na chwilę wejdzie do pojazdu to u niego odtworzy się animacja szarpania za klamkę Końcowe udoskonalenia: Jeśli pojazd po wybuchu/respawnie ma już nie być otwarty to dajemy tak w public OnVehicleSpawn:
lock[vehicleid][0]=0;
lock[vehicleid][1]=-1;
Jeśli pojazd po wyjściu gracza który go zamknął ma stać się otwarty to przechodzimy do public'ka OnPlayerDisconnect i dajemy tam:
for(new i=0; i<MAX_VEHICLES; i++)
{
if(lock[i][1]==playerid)
{
lock[i][0]=0;
lock[i][1]=-1;
}
}
Uwaga może nieco obciążyć serwer, niestety :/ Ostatnia rzecz którą należy wykonać na wszelki wypadek to w publick'u OnGameModeInit lub OnGameModeInit dajemy taki kod:
for(new i=0; i<MAX_VEHICLES; i++)
{
lock[i][1]=-1;
}
DOWNLOAD(.pwn ps. zapomniałem w komendzie /unlock zmienić tekst) wqdW.jpg /ZAPARKUJ Uwaga: często na serwerach po zaparkowaniu zamyka się pojazd więc opiszę jak zrobić by tylko kierowca mógł wsiadać do zaparkowanego wozu. Na górze mapy robimy nową zmienną z tablicą
new zaparkowany[MAX_VEHICLES][2];
oraz 4 zmienne z tablicami do których przypisywać będziemy współrzędne
new Float:saveX[MAX_VEHICLES], Float:saveY[MAX_VEHICLES], Float:saveZ[MAX_VEHICLES], Float:saveA[MAX_VEHICLES];
Komenda:
if (strcmp(cmdtext, "/zaparkuj", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new veh=GetPlayerVehicleID(playerid);
zaparkowany[veh][0]=1;
zaparkowany[veh][1]=playerid;
GetVehiclePos(veh, saveX[veh], saveY[veh], saveZ[veh]);
GetVehicleZAngle(veh, saveA[veh]);
SendClientMessage(playerid, Fioletowy, "Zaparkowałeś swój pojazd");
}
return 1;
}
komenda odparowująca powinna być taka sama, bez linijek GetVehiclePos i GetVehicleZAngle a z kodem:
zaparkowany[veh][0]=0;
zaparkowany[veh][1]=-1;
Teraz przechodzimy do public'ka OnVehicleSpawn:
if(zaparkowany[vehicleid][0]==1)
{
SetVehiclePos(vehicleid, saveX[vehicleid], saveY[vehicleid], saveZ[vehicleid]);
SetVehicleZAngle(vehicleid, saveA[vehicleid]);
}
Teraz jeśli pojazd po wybuchu ma się już nie pojawiać w miejscu gdzie zaparkowano pojazd przechodzimy do public'ka OnVehicleDeath:
zaparkowany[vehicleid][0]=0;
zaparkowany[vehicleid][1]=-1;
po nim odtworzy sie OnVehicleSpawn ale że pojazd w tablicy [0] ma wartość zero pojawi się on w miejscu gdzie został stworzony Kod by inni gracze nie mogli wsiadać do pojazdu zaparkowanego przez kogoś innego: (kod prawei taki sam jak w komendzie /lock) public OnVehicleStreamIn:
if(zaparkowany[vehicleid][0]==1 && zaparkowany[vehicleid][1]!=forplayerid)
{
SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
}
oraz OnPlayerEnterVehicle:
if(zaparkowany[vehicleid][0]==1 && zaparkowany[vehicleid][1]!=playerid)
{
SetVehicleParamsForPlayer(vehicleid, playerid, 0, 1);
}
By po wyjściu gracza z serwera jego pojazd spawnował się z powrotem tam gdzie go utworzono: public OnPlayerDisconnect
for(new i=0; i<MAX_VEHICLES; i++)
{
if(zaparkowany[i][1]==playerid)
{
zaparkowany[i][0]=0;
zaparkowany[i][1]=-1;
}
}
Uwaga może nieco obciążyć serwer, niestety :/ I dla bezpieczeństwa w OnGameModeInit lub OnFilterScriptInit
for(new i=0; i<MAX_VEHICLES; i++)
{
zaparkowany[i][1]=-1;
}

DOWNLOAD (.pwn)

vqkT.jpg

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

/nitro

Góra

#include <a_samp>

#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0x990000AA
Komenda
if(strcmp(cmdtext, "/nitro", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid)) {
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
SendClientMessage(playerid, COLOR_GREEN,"---> Dostałeś nitro <---");
}
else {
SendClientMessage(playerid,COLOR_RED,"Musisz być w pojeździe!");
}
return 1;
}
/napraw Prosta komenda, która jest darmowa. Gracz może użyć jej tylko co 1 minutę. Pamiętajcie że naprawia silnik oraz karoserie. Góra:
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
new bool:UzylNapraw[MAX_PLAYERS];
W public OnPlayerCommandText(playerid, cmdtext[]):
if(!strcmp(cmdtext, "/napraw", true))
{
if(IsPlayerInAnyVehicle(playerid))
{
if(UzylNapraw[playerid])
{
SendClientMessage(playerid, COLOR_RED, "Możesz użyć tej komendy dopiero za 1 min.");
}
UzylNapraw[playerid] = true;
SetTimerEx("UnlockNapraw", 60000, false, "d", playerid);
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
RepairVehicle(GetPlayerVehicleID(playerid));
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Silnik został naprawiony.");
} else { SendClientMessage(playerid, COLOR_RED, "Nie jesteś w pojeździe."); }
return 1;
}
Na dole kodu dodajemy nowy public:
public UnlockNapraw(playerid)
{
UzylNapraw[playerid] = false;
return 1;
}

To by było na tyle :P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

"/Napraw" - komenda na naprawianie pojazdu, bez timera blokująca na 60s, wyświetlająca dokładny czas "zakazu"

		if(!strcmp(cmdtext, "/napraw", true))
		{
		    if(!IsPlayerInAnyVehicle(playerid))
				return SendClientMessage(playerid, COLOR_RED, "Nie jesteś w pojeździe.");

		    if(GetPVarInt(playerid, "LastNapraw") != 0 && (GetTickCount() - GetPVarInt(playerid, "LastSpawn")) < 60000)
		    {
				new str_msg[128];
				format(str_msg, sizeof(str_msg), "Musisz poczekać jeszcze %d sekund aby naprawić pojazd!", (GetPVarInt(playerid, "LastNapraw") - GetTickCount()) / 1000 + 60);
				return SendClientMessageToAll(COLOR_RED, str_msg);
			}

			SetPVarInt(playerid, "LastNapraw", GetTickCount());
	        RepairVehicle(GetPlayerVehicleID(playerid));
			return 1;
		}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

/zw & /jj

if(strcmp(cmdtext, "/zw", true) == 0){
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "%s zaraz wraca. ",name, playerid);
SendClientMessageToAll(0xFFFFFFFF,string);
return 1;}
if(strcmp(cmdtext, "/jj", true) == 0){
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "%s już jest. ",name, playerid);
SendClientMessageToAll(0xFFFFFFFF,string);
return 1;}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

/flip - odwraca pojazd

if (strcmp(cmdtext, "/flip", true)==0)
{
new VehicleID, Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID, X, Y, Z);
SetVehicleZAngle(VehicleID, 0);
return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak jak w nazwie tematu, wklejamy komendy które uważamy za przydatne do skryptów/map.

Komenda na uzdrowienie /100hp za 5000$

Z informacją dla wszystkich na czacie kto wpisał komendę.

if(!strcmp("/100hp", cmdtext, true))
{
	if (GetPlayerMoney(playerid) >= 5000)
	{
		new name[MAX_PLAYER_NAME], string[64];
		SetPlayerHealth(playerid, 100);
		GivePlayerMoney(playerid, -5000);
		GetPlayerName(playerid, name, sizeof(name));
		format(string, sizeof(string), "%s uzdrowił się za 5000$ (/100hp)", name);
		SendClientMessageToAll(0xFFFF00AA, string);
	}
	else
	{
		SendClientMessage(playerid, 0xFFFFFFAA, "Nie masz tyle kasy! (5000$)");
	}
	return 1;
}

Na razie jedna, później dodam coś więcej ;)

Pozdrawiam PaSsO.

(proszę o przyklejenie tematu)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

/pm [id] [tresc]

dcmd_pm(playerid, cmdtext[]) {
	new dir[256],idx,giveplayerid;
	new tmp[256];
	dir = strtok(cmdtext, idx);

	strmid(tmp, cmdtext, 2, strlen(cmdtext));
	if(!strlen(dir))
	{
		SendClientMessage(playerid, COLOR_WHITE, "USAGE: /pm [id] [tresc]");
		return 1;
	}
	giveplayerid = strval(dir);
	dir = strtok(cmdtext, idx);
	if (IsPlayerConnected(giveplayerid))
	{
		new str[256];
		new string[256];
		format(string, sizeof(string), "PW do [%s] --> %s", Player(giveplayerid), tmp);
		SendClientMessage(playerid, ZIELONY, string);
		format(str, sizeof(str), "PW od [%s] --> %s", Player(playerid), tmp);
		SendClientMessage(giveplayerid, POMARANCZOWY, str);
		print(str);
		GameTextForPlayer(giveplayerid, "Dostales prywatna ~n~wiadomosc!", 3000, 3);
		SendClientMessageToAdmins(0xff0000ff, string);
	}
	return 1;
}
/ban [id] [powod]
dcmd_ban(playerid, cmdtext[]) {
	new dir[256],idx,giveplayerid;
	new tmp[256];
	dir = strtok(cmdtext, idx);

	strmid(tmp, cmdtext, 2, strlen(cmdtext));
	if(!strlen(dir))
	{
		SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ban [playerid] [reason]");
		return 1;
	}
	giveplayerid = strval(dir);
	dir = strtok(cmdtext, idx);
	if (IsPlayerConnected(giveplayerid))
	{
	    SendClientMessage(giveplayerid, 0xff0000ff, "Zostałeś zbanowany.");
		BanEx(giveplayerid, tmp);
	}
	return 1;
}
/report [tresc]
dcmd_report(playerid, cmdtext[]) {
    new tmp[256],idx;
    new string[256];
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)) {
		SendClientMessage(playerid, COLOR_WHITE,"WPISZ: /report [text]");
		return 1;
	}
    format(string, sizeof(string), "Raport od %s:%s", PlayerName(playerid), tmp);
	SendClientMessageToAdmins(COLOR_ORANGE,string);
	SendClientMessage(playerid, COLOR_YELLOW,"Twój raport został wysłany do adminów.");
	return 1;
}
/dajkase [id] [kwota]
	if(strcmp(cmd, "/dajkase", true) == 0) {
new playermoney;
new moneys;
new tmp[256];
new giveplayerid;
new giveplayer[256];
new sendername[256];
new string[256];
tmp = strtok(cmdtext, idx);

if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "*Wpisz: /dajkase [ID gracza] [ilosc]");
return 1;
}
giveplayerid = strval(tmp);

tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "*Wpisz: /dajkase [ID gracza] [ilosc]");
return 1;
}
moneys = strval(tmp);

//printf("givecash: %d %d",giveplayerid,moneys);


if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys) {
GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), "Dałeś kase graczowi %s(player: %d), $%d.", giveplayer,giveplayerid, moneys);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "Dostałeś $%d od %s(player: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
printf("%s(id:%d) przesłał %d $ do %s(id:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
}
else {
SendClientMessage(playerid, COLOR_YELLOW, "Błąd: Zła ilość.");
}
}
else {
format(string, sizeof(string), "Błąd: %d nie jest aktywny.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
/v [nazwa pojazdu]
dcmd_v(playerid, params[]) {
	new idx, iString[256];
	iString = strtok(params, idx);

	if (!strlen(iString)) {
	    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /v MODELID/NAME");
	    return true;
	}

	idx = GetVehicleModelIDFromName(params[1]);

	if(idx == -1) {
		idx = strval(iString);

		if (idx < MIN_VEHI_ID || idx > MAX_VEHI_ID) {
	    	SendClientMessage(playerid, COLOR_RED, " * Invalid MODELID/NAME");
	    	return true;
		}
	}

	new Float:x, Float:y, Float:z, Float:a;

	GetPlayerPos(playerid, x, y, z);
	GetXYInFrontOfPlayer(playerid, x, y, VEHI_DIS);
	GetPlayerFacingAngle(playerid, a);

	curPlayerVehM[playerid] = idx;

	curPlayerVehI[playerid] = CreateVehicle(idx, x, y, z + 2.0, a + 90.0, -1, -1, 5000);
	LinkVehicleToInterior(curPlayerVehI[playerid], GetPlayerInterior(playerid));

 	curServerVehP[curPlayerVehI[playerid]][spawn] 	= true;
	curServerVehP[curPlayerVehI[playerid]][vmodel]	= idx;
	curServerVehP[curPlayerVehI[playerid]][vInt]    = GetPlayerInterior(playerid);

	format(iString, 128, "* You spawned vehicle \"%s\" (MODELID: %d, VEHICLEID: %d)", VehicleNames[idx - MIN_VEHI_ID], idx, curPlayerVehI[playerid]);

	SendClientMessage(playerid, COLOR_GREEN, iString);

	return true;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

/Admins

Na górze dodajemy

#include <a_samp>
#define COLOR_YELLOW 0xFFFF00AA
Komenda
if(strcmp(cmdtext, "/admini", true) == 0 || strcmp(cmdtext, "/admins", true) == 0)
{
	new count = 0;
	new PlayerNamee[24];
	SendClientMessage(playerid, 0xFFFF00AA, "Administratorzy Online:");
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i) && IsPlayerAdmin(i))
		{
			GetPlayerName(i,PlayerNamee,24);
			format(string,sizeof(string),"%s.", PlayerNamee);
			SendClientMessage(playerid, 0xFFFF00AA, string);
			count++;
		}
	}
	if(count == 0)
	{
		SendClientMessage(playerid,0xFFFF00AA, "Nie ma teraz żadnego admina na serwerze.");
	}
	return 1;
}

Ps. Wycięte z mapy  ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@janoomenos lepiej nie wycinaj nic więcej,

#include <a_samp> jest w każdej mapie/skrypcie

#define COLOR_YELLOW 0xFFFF00AA po co jak nigdzie w kodzie nie jest użyte

for(new i=0; i<MAX_PLAYERS; i++) największy błąd jak można zrobić, nigdy w pętli nie używaj MAX_PLAYERS, od tego jest GetMaxPlayers();

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Lista Administratorów w GUI.

#define foreach(%1,%2) for (new %2 = 0; %2 < GetMaxPlayers(); %2++) if (IsPlayerConnected(%2))

if(strcmp(cmdtext, "/admini", true) == 0 || strcmp(cmdtext, "/admins", true) == 0)
{
	new IloscAdministratorow;
	new Admini[256];

	foreach(AdministratorzyOnline, i)
	{
		if(IsPlayerAdmin(i))
		{
			format(Admini, sizeof(Admini), "%s\n%s (ID: %d)", Admini, PlayerName(i), i);
			IloscAdministratorow++;
		}
	}
	if(IloscAdministratorow == 0)
	{
	    ShowPlayerDialog(playerid, 99999, DIALOG_STYLE_MSGBOX, "Administratorzy", "Brak Administratorów na służbie.", "", "Wyjdź");
	}
	else
	{
		ShowPlayerDialog(playerid, 99998, DIALOG_STYLE_LIST, "Administratorzy", Admini, "", "Wyjdź");
		IloscAdministratorow=0;
	}
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Kamizelka za 5000

if(!strcmp(cmd, "/kamizelka",true))
{
if (GetPlayerMoney(playerid) >= 5000) {
SetPlayerArmour(playerid, 100);
GivePlayerMoney(playerid, -5000);
SendClientMessage(playerid, 0xFFFF00AA ,"Kupiłeś Kamizelkę za 5000$!");
}
else
{
SendClientMessage(playerid, 0x33AA33AA, "* Nie masz tyle pieniedzy!");
}
return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Coś mu nie wyszło..

if(!strcmp(cmd, "/kamizelka",true))
{
if (GetPlayerMoney(playerid) >= 5000) {
SetPlayerArmour(playerid, 100);
GivePlayerMoney(playerid, -5000);
SendClientMessage(playerid, 0xFFFF00AA ,"Kupiłeś Kamizelkę za 5000$!");
}
else
{
SendClientMessage(playerid, 0x33AA33AA, "* Nie masz tyle pieniedzy!");
}
return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Lista Administratorów w GUI.

#define foreach(%1,%2) for (new %2 = 0; %2 < GetMaxPlayers(); %2++) if (IsPlayerConnected(%2))

if(strcmp(cmdtext, "/admini", true) == 0 || strcmp(cmdtext, "/admins", true) == 0)
{
	new IloscAdministratorow;
	new Admini[256];

	foreach(AdministratorzyOnline, i)
	{
		if(IsPlayerAdmin(i))
		{
			format(Admini, sizeof(Admini), "%s\n%s (ID: %d)", Admini, PlayerName(i), i);
			IloscAdministratorow++;
		}
	}
	if(IloscAdministratorow == 0)
	{
	    ShowPlayerDialog(playerid, 99999, DIALOG_STYLE_MSGBOX, "Administratorzy", "Brak Administratorów na służbie.", "", "Wyjdź");
	}
	else
	{
		ShowPlayerDialog(playerid, 99998, DIALOG_STYLE_LIST, "Administratorzy", Admini, "", "Wyjdź");
		IloscAdministratorow=0;
	}
	return 1;
}
mam 1 errora ale to chyba brak jednej funkcji :/
D:\Documents and Settings\Maciek.XP-SPECIAL\Pulpit\dasc.pwn(117) : error 017: undefined symbol "PlayerName"
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dokładnie. Dodaj sobie gdzieś funkcję:

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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Widzialny "kwadracik" na mapie i niewidzialny "kwadracik".

if(strcmp(cmd, "/widoczny", true) ==0) {
if(IsPlayerAdmin(playerid)){ //tylko dla admina, usun to jesli ma byc dla wszystkich graczy.
SetPlayerColor(playerid, playerColors[playerid]);
SendClientMessage(playerid, COLOR_ORANGE, "Twój kwadracik na mapie jest widoczny.");
}else{
SendClientMessage(playerid, COLOR_RED, "Musisz być adminem, by użyć tej komendy!");
}
return 1;
}

if(strcmp(cmdtext, "/niewidoczny", true) == 0) {
if(IsPlayerAdmin(playerid)){ //tylko dla admina, usun to jesli ma byc dla wszystkich graczy.
SetPlayerColor(playerid, 0xFFFFFF00);
SendClientMessage(playerid, COLOR_ORANGE, "Twój kwadracik na mapie został ukryty.");
}else{
SendClientMessage(playerid, COLOR_RED, "Musisz być adminem, by użyć tej komendy!");
}
return 1;
}
Gracz nie może znaleść nas na mapie ;) //EDIT: Tak, zapomniałem  :P Tablica playerColors:
new playerColors[] = {
0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEE82EEFF,0xFFD720FF,
0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,
0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,
0x275222FF,0xF09F5BFF,0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,0x4B8987FF,
0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,
0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,
0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,
0x9F945CFF,0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
0x3FE65CFF
};

Sto losowych kolorów.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

KOMENDA GIVECASH

if(strcmp(cmd, "/givecash", true) == 0) {
//new tmp[256];
tmp = strtok(cmdtext, idx);

if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /givecash [idgracza] [kwota]");
return 1;
}
giveplayerid = strval(tmp);

tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /givecash [idgracza] [kwota]");
return 1;
}
moneys = strval(tmp);


if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys) {
GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), "%s oddałeś graczowi (id: %d), $%d pieniędzy.", giveplayer,giveplayerid, moneys);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "Otrzymałeś $%d pieniędzy od gracza %s (id: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
}
else {
SendClientMessage(playerid, COLOR_YELLOW, "Nieprawidłowa kwota transakcji.");
}
}
else {
format(string, sizeof(string), "%d nie ma takiego gracza!", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@up, co to [...] jest?!

Bad ..

	if(!strcmp("/pozyczka", cmdtext, true))
	{
		SendClientMessage(playerid, 0xFFFF00AA, "Dostałeś Niewielka Pozyczke");
		GivePlayerMoney(playerid, 500);
		return 1;
	}
	if(!strcmp("/dzien", cmdtext, true) && IsPlayerAdmin(playerid))
	{
		SetPlayerTime(playerid, 11, 0);
		SendClientMessage(playerid, 0xFF99AADD, "Dałeś dzień");
		return 1;
	}
	if(!strcmp("/noc", cmdtext, true) && IsPlayerAdmin(playerid))
	{
		SetPlayerTime(playerid, 0, 0);
		SendClientMessage(playerid, 0x46BBAA00, "Dałeś noc");
		return 1;
	}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

może byś napisał jaki masz system komend ? p.s to nie temat z prośbami ale:

if(!strcmp(cmd,"/tp-to",true)&&IsPlayerAdmin(playerid))
{
	new id=-1,Float:pos[3],str[65];
	id=strval(strtok(cmdtext,idx));
	if(!IsPlayerConnected(id))return SendClientMessage(playerid,0xFFFFFFAA,"Złe id! Użyj /tp-to [id gracza]");
	GetPlayerPos(id,pos[0],pos[1],pos[2]);
	if(IsPlayerInAnyVehicle(playerid)&&!GetPlayerVehicleSeat(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid),pos[0],pos[1],pos[2]+1.5);
	else SetPlayerPos(playerid,pos[0],pos[1],pos[2]+1.0);
	format(str,sizeof(str),"Teleportowałeś się do %s (id: %d)",PlayerName(id),id);
	SendClientMessage(playerid,0x00CC00AA,str);
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@bartek93-17 poprawione

if(!strcmp(cmd,"/tp-here",true)&&IsPlayerAdmin(playerid))
{
	new id=-1,Float:pos[3],str[65];
	id=strval(strtok(cmdtext,idx));
	if(!IsPlayerConnected(id))return SendClientMessage(playerid,0xFFFFFFAA,"Złe id! Użyj /tp-to [id gracza]");
	GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
	if(IsPlayerInAnyVehicle(id)&&!GetPlayerVehicleSeat(id)) SetVehiclePos(GetPlayerVehicleID(id),pos[0],pos[1],pos[2]+1.5);
	else SetPlayerPos(id,pos[0],pos[1],pos[2]+1.0);
	format(str,sizeof(str),"Teleportowałeś do siebie %s (id: %d)",PlayerName(id),id);
	SendClientMessage(playerid,0x00CC00AA,str);
	format(str,sizeof(str),"Admin %s teleportował cię do siebie!",PlayerName(playerid));
	SendClientMessage(id,0x00CC00AA,str);
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
cmd(aktualizacja, playerid, params[])
{
	new opis[50],
		str[80];
	if(IsPlayerAdnim(playerid))
	{
		if(sscanf(params, "s", opis))
			return SendClientMessage(playerid, COLOR, "Użyj: /aktualizacja [Usuń/Nazwa]");
		else if(strcmp(opis, "usuń", true, strlen(opis)) == 0)
		{
			SendRconCommand("hostname Nazwa serwera");
			SendClientMessage(playerid, COLOR,"Nazwa serwera usunięta.");
			return 1;
		}

		format(str, sizeof (str), "hostname Nazwa serwera %s", opis);
		SendRconCommand(str);
		SendClientMessage(playerid, COLOR,"Nazwa serwera zmieniona:");
		SendClientMessage(playerid, COLOR, opis);
	}
	return 1;
}

Zmienia nazwę mapy InGame.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

cmd(aktualizacja, playerid, params[])
{
	new opis[50],
		str[80];
	if(IsPlayerAdnim(playerid))
	{
		if(sscanf(params, "s", opis))
			return SendClientMessage(playerid, COLOR, "Użyj: /aktualizacja [Usuń/Nazwa]");
		else if(strcmp(opis, "usuń", true, strlen(opis)) == 0)
		{
			SendRconCommand("hostname Nazwa serwera");
			SendClientMessage(playerid, COLOR,"Nazwa serwera usunięta.");
			return 1;
		}

		format(str, sizeof (str), "hostname Nazwa serwera %s", opis);
		SendRconCommand(str);
		SendClientMessage(playerid, COLOR,"Nazwa serwera zmieniona:");
		SendClientMessage(playerid, COLOR, opis);
	}
	return 1;
}
Zmienia nazwę mapy InGame.
Zamiast tak
format(str, sizeof (str), "hostname Nazwa serwera %s", opis);
SendRconCommand(str);
Powinno być tak:
format(str, sizeof (str), "hostname %s", opis);
SendRconCommand(str);

Gdyż twoim sposobem by wyszła taka nazwa serwera: Nazwa Serwera (i tu nazwa)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Komenda na czyszczenie czatu :)

Pętla wysyła pustą wiadomość 15 razy, tak więc czat będzie czysty :D

if(strcmp(cmdtext,"/czysc",true)==0) // ;P
{
for(new i = 0 ; i <= 15 ; i++)
{
    SendClientMessage(playerid, 0x00CC00AA, " ");
    }
    return 1;
}

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

×