Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Система графити

Статус
В этой теме нельзя размещать новые ответы.

Compiler

Компетентный
]
Здраствуйте, ув.пользыватели!
автор: Den_Bellik
Хочу вам представить сис-му граффити! , Мануал не мой но очень понравился , вот хочу поделится с вами.
Перейдём к коду.
Ко всем new добавим
PHP:
new GraffText[MAX_PLAYERS][128];
new GraffColor[MAX_PLAYERS];
new GraffBold[MAX_PLAYERS];
new GraffSize[MAX_PLAYERS];
new Spraying[MAX_PLAYERS];
Ко всем #define
PHP:
#define MAX_GRAFFS 100
#define DIALOG_SPRAY 100
Далее ниже new у вас должны быть enum к ним вставляем
PHP:
enum GraffSystem
{
	gSQLID,
	Object,
	gText[256],
	Token,
	Float:X,
	Float:Y,
	Float:Z,
	Float:RotX,
	Float:RotY,
	Float:RotZ,
	gFont[256],
	gColor,
	gSize,
};
new Graff[MAX_GRAFFS][GraffSystem];
В public OnPlayerCommandText(playerid, cmdtext[]) добавим
PHP:
	if(!strcmp(cmdtext, "/graffiti", true))
	{
    	if(IsPlayerConnected(playerid))
		{
			ShowPlayerDialog(playerid, DIALOG_SPRAY, DIALOG_STYLE_INPUT, "{FF00FF}Система графити", "Введите текст:", "Ok", "Close");
		}
	}
Создадим паблик
PHP:
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
    if(response == EDIT_RESPONSE_FINAL)
	{
    	if(Spraying[playerid] > 0)
	    {
	    	new g = Spraying[playerid];
	        MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
	        Graff[g][X] = fX;
	        Graff[g][Y] = fY;
	        Graff[g][Z] = fZ;
	        Graff[g][RotX] = fRotX;
	        Graff[g][RotY] = fRotY;
	        Graff[g][RotZ] = fRotZ;
	        Spraying[playerid] = 0;
	    }
 	}
 	return 1;
}
Если паблик уже есть создавать не нужно!
В паблик OnDialogResponse добавим диалог нашей системы
PHP:
	    case DIALOG_SPRAY:
	    {
	        if(response)
	    	{
	        	if(strlen(inputtext) > 60)
	        	{
	            	ShowPlayerDialog(playerid, DIALOG_SPRAY, DIALOG_STYLE_INPUT, "{FF00FF}Система графити", "Слишком длиный текс\nВведите текст:", "Ok", "Close");
	            	return 1;
	        	}
	        	strmid(GraffText[playerid], inputtext, 0, strlen(inputtext), 255);
				ShowPlayerDialog(playerid, DIALOG_SPRAY+1, DIALOG_STYLE_LIST, "{FF00FF}Система графити", "Red\nBlue\nWhite\nGreen\nPink\nYellow\nBlack", "Ok", "Close");
	    	}
	    }
	    case DIALOG_SPRAY+1:
	    {
	        if(response)
	    	{
	        	GraffColor[playerid] = listitem;
	        	ShowPlayerDialog(playerid, DIALOG_SPRAY+2, DIALOG_STYLE_LIST, "{FF00FF}Система графити", "Простой\nBolded", "Ok", "Close");
	    	}
	    }
	    case DIALOG_SPRAY+2:
	    {
	        if(response)
	    	{
				GraffBold[playerid] = listitem;
				ShowPlayerDialog(playerid, DIALOG_SPRAY+3, DIALOG_STYLE_INPUT, "{FF00FF}Система графити", "Введите размер текста:", "Ok", "Close");
	    	}
	    }
	    case DIALOG_SPRAY+3:
	    {
	        if(response)
	    	{
	        	GraffSize[playerid] = strval(inputtext);
	        	ShowPlayerDialog(playerid, DIALOG_SPRAY+4, DIALOG_STYLE_INPUT, "{FF00FF}Система графити", "Введите стиль", "Ok", "Close");
	    	}
	    }
	    case DIALOG_SPRAY+4:
	    {
	    
	        if(response)
	    	{
				new Float:gpx,Float:gpy,Float:gpz;
				GetPlayerPos(playerid, gpx, gpy, gpz);
				SetPlayerPos(playerid, gpx, gpy, gpz+1.0);
	        	switch(GraffColor[playerid])
				{
			    	case 0:
			    	{
			        	for(new i = 1; i < MAX_GRAFFS; i++)
						{
			    			if(Graff[i][Token] == 0)
			    			{
			        			new Float:angle;
			        			Graff[i][Token] = 1;
			        			GetPlayerPos(playerid, Graff[i][X],Graff[i][Y],Graff[i][Z]);
			        			GetPlayerFacingAngle(playerid, angle);
			        			Graff[i][Object] = CreateObject(19353, Graff[i][X], Graff[i][Y], Graff[i][Z], 0.0, 0.0, angle-90.0);
			       				SetObjectMaterial(Graff[i][Object], 0, 0, "none", "none", 0);
			        			SetObjectMaterialText(Graff[i][Object], GraffText[playerid], 0, OBJECT_MATERIAL_SIZE_256x128,\
								inputtext, GraffSize[playerid], GraffBold[playerid], 0xFFFF0000, 0x00000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
                            	strmid(Graff[i][gText], GraffText[playerid], 0, strlen(GraffText[playerid]), 255);
                            	strmid(Graff[i][gFont], inputtext, 0, strlen(inputtext), 255);
                            	Graff[i][gSize] = GraffSize[playerid];
                            	Graff[i][gColor] = GraffColor[playerid];
								Spraying[playerid] = i;
								EditObject(playerid, Graff[i][Object]);
			        			return 1;
       						}
						}
			    	}
			    	case 1:
			    	{
			        	for(new i = 1; i < MAX_GRAFFS; i++)
						{
			    			if(Graff[i][Token] == 0)
			    			{
			        			new Float:angle;
			        			Graff[i][Token] = 1;
			        			GetPlayerPos(playerid, Graff[i][X],Graff[i][Y],Graff[i][Z]);
			        			GetPlayerFacingAngle(playerid, angle);
			        			Graff[i][Object] = CreateObject(19353, Graff[i][X], Graff[i][Y], Graff[i][Z], 0.0, 0.0, angle-90.0);
			       				SetObjectMaterial(Graff[i][Object], 0, 0, "none", "none", 0);
			        			SetObjectMaterialText(Graff[i][Object], GraffText[playerid], 0, OBJECT_MATERIAL_SIZE_256x128,\
								inputtext, GraffSize[playerid], GraffBold[playerid], 0xFF0088FF, 0x00000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
                            	strmid(Graff[i][gText], GraffText[playerid], 0, strlen(GraffText[playerid]), 255);
                            	strmid(Graff[i][gFont], inputtext, 0, strlen(inputtext), 255);
                            	Graff[i][gSize] = GraffSize[playerid];
                            	Graff[i][gColor] = GraffColor[playerid];
								Spraying[playerid] = i;
								EditObject(playerid, Graff[i][Object]);
			        			return 1;
       						}
						}
			    	}
			    	case 2:
			    	{
			        	for(new i = 1; i < MAX_GRAFFS; i++)
						{
			    			if(Graff[i][Token] == 0)
			    			{
			        			new Float:angle;
			        			Graff[i][Token] = 1;
			        			GetPlayerPos(playerid, Graff[i][X],Graff[i][Y],Graff[i][Z]);
			        			GetPlayerFacingAngle(playerid, angle);
			        			Graff[i][Object] = CreateObject(19353, Graff[i][X], Graff[i][Y], Graff[i][Z], 0.0, 0.0, angle-90.0);
			       				SetObjectMaterial(Graff[i][Object], 0, 0, "none", "none", 0);
			        			SetObjectMaterialText(Graff[i][Object], GraffText[playerid], 0, OBJECT_MATERIAL_SIZE_256x128,\
								inputtext, GraffSize[playerid], GraffBold[playerid], 0xFFFFFFFF, 0x00000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
                            	strmid(Graff[i][gText], GraffText[playerid], 0, strlen(GraffText[playerid]), 255);
                            	strmid(Graff[i][gFont], inputtext, 0, strlen(inputtext), 255);
                            	Graff[i][gSize] = GraffSize[playerid];
                            	Graff[i][gColor] = GraffColor[playerid];
								Spraying[playerid] = i;
								EditObject(playerid, Graff[i][Object]);
			        			return 1;
       						}
						}
			    	}
			    	case 3:
			    	{
			        	for(new i = 1; i < MAX_GRAFFS; i++)
						{
			    			if(Graff[i][Token] == 0)
			    			{
			        			new Float:angle;
			        			Graff[i][Token] = 1;
			        			GetPlayerPos(playerid, Graff[i][X],Graff[i][Y],Graff[i][Z]);
			        			GetPlayerFacingAngle(playerid, angle);
			        			Graff[i][Object] = CreateObject(19353, Graff[i][X], Graff[i][Y], Graff[i][Z], 0.0, 0.0, angle-90.0);
			       				SetObjectMaterial(Graff[i][Object], 0, 0, "none", "none", 0);
			        			SetObjectMaterialText(Graff[i][Object], GraffText[playerid], 0, OBJECT_MATERIAL_SIZE_256x128,\
								inputtext, GraffSize[playerid], GraffBold[playerid], 0xFF09AD00, 0x00000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
                            	strmid(Graff[i][gText], GraffText[playerid], 0, strlen(GraffText[playerid]), 255);
                            	strmid(Graff[i][gFont], inputtext, 0, strlen(inputtext), 255);
                            	Graff[i][gSize] = GraffSize[playerid];
                            	Graff[i][gColor] = GraffColor[playerid];
								Spraying[playerid] = i;
								EditObject(playerid, Graff[i][Object]);
			        			return 1;
       						}
						}
			    	}
			    	case 4:
			    	{
			        	for(new i = 1; i < MAX_GRAFFS; i++)
						{
			    			if(Graff[i][Token] == 0)
			    			{
			        			new Float:angle;
			        			Graff[i][Token] = 1;
			        			GetPlayerPos(playerid, Graff[i][X],Graff[i][Y],Graff[i][Z]);
			        			GetPlayerFacingAngle(playerid, angle);
			        			Graff[i][Object] = CreateObject(19353, Graff[i][X], Graff[i][Y], Graff[i][Z], 0.0, 0.0, angle-90.0);
			       				SetObjectMaterial(Graff[i][Object], 0, 0, "none", "none", 0);
			        			SetObjectMaterialText(Graff[i][Object], GraffText[playerid], 0, OBJECT_MATERIAL_SIZE_256x128,\
								inputtext, GraffSize[playerid], GraffBold[playerid], 0xFFC200DB, 0x00000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
                            	strmid(Graff[i][gText], GraffText[playerid], 0, strlen(GraffText[playerid]), 255);
                            	strmid(Graff[i][gFont], inputtext, 0, strlen(inputtext), 255);
                            	Graff[i][gSize] = GraffSize[playerid];
                            	Graff[i][gColor] = GraffColor[playerid];
								Spraying[playerid] = i;
								EditObject(playerid, Graff[i][Object]);
			        			return 1;
       						}
						}
			    	}
			    	case 5:
			    	{
			        	for(new i = 1; i < MAX_GRAFFS; i++)
						{
			    			if(Graff[i][Token] == 0)
			    			{
			        			new Float:angle;
			        			Graff[i][Token] = 1;
			        			GetPlayerPos(playerid, Graff[i][X],Graff[i][Y],Graff[i][Z]);
			        			GetPlayerFacingAngle(playerid, angle);
			        			Graff[i][Object] = CreateObject(19353, Graff[i][X], Graff[i][Y], Graff[i][Z], 0.0, 0.0, angle-90.0);
			       				SetObjectMaterial(Graff[i][Object], 0, 0, "none", "none", 0);
			        			SetObjectMaterialText(Graff[i][Object], GraffText[playerid], 0, OBJECT_MATERIAL_SIZE_256x128,\
								inputtext, GraffSize[playerid], GraffBold[playerid], 0xFFFFFB00, 0x00000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
                            	strmid(Graff[i][gText], GraffText[playerid], 0, strlen(GraffText[playerid]), 255);
                            	strmid(Graff[i][gFont], inputtext, 0, strlen(inputtext), 255);
                            	Graff[i][gSize] = GraffSize[playerid];
                            	Graff[i][gColor] = GraffColor[playerid];
								Spraying[playerid] = i;
								EditObject(playerid, Graff[i][Object]);
			        			return 1;
       						}
						}
			    	}
			    	case 6:
			    	{
			        	for(new i = 1; i < MAX_GRAFFS; i++)
						{
			    			if(Graff[i][Token] == 0)
			    			{
			        			new Float:angle;
			        			Graff[i][Token] = 1;
			        			GetPlayerPos(playerid, Graff[i][X],Graff[i][Y],Graff[i][Z]);
			        			GetPlayerFacingAngle(playerid, angle);
			        			Graff[i][Object] = CreateObject(19353, Graff[i][X], Graff[i][Y], Graff[i][Z], 0.0, 0.0, angle-90.0);
			       				SetObjectMaterial(Graff[i][Object], 0, 0, "none", "none", 0);
			        			SetObjectMaterialText(Graff[i][Object], GraffText[playerid], 0, OBJECT_MATERIAL_SIZE_256x128,\
								inputtext, GraffSize[playerid], GraffBold[playerid], 0xFF000000, 0x00000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
                            	strmid(Graff[i][gText], GraffText[playerid], 0, strlen(GraffText[playerid]), 255);
                            	strmid(Graff[i][gFont], inputtext, 0, strlen(inputtext), 255);
                            	Graff[i][gSize] = GraffSize[playerid];
                            	Graff[i][gColor] = GraffColor[playerid];
								Spraying[playerid] = i;
								EditObject(playerid, Graff[i][Object]);
			        			return 1;
       						}
						}
			    	}
			    	default:
			    	{
			    	    for(new i = 1; i < MAX_GRAFFS; i++)
						{
			    			if(Graff[i][Token] == 0)
			    			{
			        			new Float:angle;
			        			Graff[i][Token] = 1;
			        			GetPlayerPos(playerid, Graff[i][X],Graff[i][Y],Graff[i][Z]);
			        			GetPlayerFacingAngle(playerid, angle);
			        			Graff[i][Object] = CreateObject(19353, Graff[i][X], Graff[i][Y], Graff[i][Z], 0.0, 0.0, angle-90.0);
			       				SetObjectMaterial(Graff[i][Object], 0, 0, "none", "none", 0);
			        			SetObjectMaterialText(Graff[i][Object], GraffText[playerid], 0, OBJECT_MATERIAL_SIZE_256x128,\
								inputtext, GraffSize[playerid], GraffBold[playerid], 0xFF000000, 0x00000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
                            	strmid(Graff[i][gText], GraffText[playerid], 0, strlen(GraffText[playerid]), 255);
                            	strmid(Graff[i][gFont], inputtext, 0, strlen(inputtext), 255);
                            	Graff[i][gSize] = GraffSize[playerid];
                            	Graff[i][gColor] = GraffColor[playerid];
								Spraying[playerid] = i;
								EditObject(playerid, Graff[i][Object]);
			        			return 1;
       						}
						}
			    	}
	    		}
	    	}
		}
	}


Ну и самы скриншоты!
​
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу