Compiler
Компетентный
]
Здраствуйте, ув.пользыватели!
автор: Den_Bellik
Хочу вам представить сис-му граффити! , Мануал не мой но очень понравился , вот хочу поделится с вами.
Перейдём к коду.
Ко всем new добавим
Ко всем #define
Далее ниже new у вас должны быть enum к ним вставляем
В public OnPlayerCommandText(playerid, cmdtext[]) добавим
Создадим паблик
Если паблик уже есть создавать не нужно!
В паблик OnDialogResponse добавим диалог нашей системы
Ну и самы скриншоты!
автор: 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];
PHP:
#define MAX_GRAFFS 100
#define DIALOG_SPRAY 100
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];
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;
}
}
}
}
}
}
}
Ну и самы скриншоты!
Последнее редактирование модератором:
