Advertisement
Splav

Untitled

Jun 7th, 2012
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.19 KB | None | 0 0
  1. new CreateTextObject[MAX_PLAYERS][10];
  2.  
  3. public OnPlayerDisconnect(playerid, reason)
  4. {
  5.     for(new i; i<10; i++)
  6.     {
  7.         if(CreateTextObject[playerid][i])
  8.         {
  9.             DestroyDynamicObject(CreateTextObject[playerid][i]);
  10.                 CreateTextObject[playerid][i] = 0;
  11.         }
  12.     }
  13.     return 1;
  14. }
  15.  
  16. public OnPlayerCommandText(playerid, cmdtext[])
  17. {
  18.     new cmd[36], params[128];
  19.     sscanf(cmdtext, "s[36]s[156]", cmd, params);
  20.  
  21.     if(!strcmp(cmd, "/write", true))
  22.     {
  23.         if(PlayerInfo[playerid][pAdmin] < 9) return SendClientMessage(playerid, 0xAFAFAFAA, "* Вам недоступно");
  24.        
  25.         new Float:pos[3], slot, obID, style[10], size, b, align, textcolor[10], color, text[50], texturesize;
  26.  
  27.         GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  28.         if(sscanf(params, "dds[10]dddds[10]ds[50]", slot, obID, style, size, texturesize, b, align, textcolor, color, text)) return SendClientMessage(playerid, 0xAFAFAFAA, "* /write [ID слота (0-9)][ID объекта][Шрифт][Размер (1-300)][Текстура (10-140)][Жирность (0-1)][Выравнивание (1-3)][Цвет текста][Цвет фона][Текст]");
  29.  
  30.         if(CreateTextObject[playerid][slot]) return SendClientMessage(playerid, 0xAFAFAFAA, "Данный слот занят. Выберите другой слот или очистите текущий - /unwrite");
  31.         if(!strcmp(style, "Arial", true) || !strcmp(style, "Calibri", true) || !strcmp(style, "Tahoma", true) || !strcmp(style, "Verdana", true))
  32.         {
  33.             if(slot < 0 || slot > 9) return SendClientMessage(playerid, 0xAFAFAFAA, "Допустимые слоты: от 0 до 9!");
  34.             if(obID < 19475 || obID > 19483) return SendClientMessage(playerid, 0xAFAFAFAA, "Допустимые ID объектов: от 19475 до 19483!");
  35.             if(size < 1 || size > 300) return SendClientMessage(playerid, 0xAFAFAFAA, "Размер должен быть от 1 до 300!");
  36.             if(texturesize < 10 || texturesize > 140) return SendClientMessage(playerid, 0xAFAFAFAA, "Размер текстуры должен быть от 10 до 140!");
  37.             if(b < 0 || b > 1) return SendClientMessage(playerid, 0xAFAFAFAA, "Жирность должна быть 0 (нет) или 1 (есть)!");
  38.             if(align < 0 || align > 2) return SendClientMessage(playerid, 0xAFAFAFAA, "Выравнивания: 0 [лево], 1 [центр], 2 [право]!");
  39.             if(strlen(text) > 50) return SendClientMessage(playerid, 0xAFAFAFAA, "Текст не более 50 символов!");
  40.  
  41.             new str[65];
  42.             format(str, sizeof(str), "{%s}%s", textcolor, text);
  43.             CreateTextObject[playerid][slot] = CreateDynamicObject(obID, pos[0], pos[1]+2, pos[2], 0.0, 0.0, 0.0);
  44.             SetDynamicObjectMaterialText(CreateTextObject[playerid][slot], 0, str, texturesize,\
  45.                 style, size, b, 0xFFFFFFFF, color, align);
  46.         }
  47.         else return SendClientMessage(playerid, 0xAFAFAFAA, "Доступные шрифты: Arial, Calibri, Tahoma, Verdana");
  48.         return 1;
  49.     }
  50.    
  51.     if(!strcmp(cmd, "/editwrite", true))
  52.     {
  53.         if(PlayerInfo[playerid][pAdmin] < 9) return SendClientMessage(playerid, 0xAFAFAFAA, "* Вам недоступно");
  54.        
  55.         new slot;
  56.  
  57.         tmp = strtok(cmdtext, idx);
  58.         if(!strlen(tmp)) return SendClientMessage(playerid, 0xAFAFAFAA, "Используйте: /editwhite [Слот (0-9)]");
  59.         slot = strval(tmp);
  60.         if(slot < 0 || slot > 9) return SendClientMessage(playerid, 0xAFAFAFAA, "Допустимые слоты: от 0 до 9!");
  61.  
  62.         if(CreateTextObject[playerid][slot])
  63.             EditDynamicObject(playerid, CreateTextObject[playerid][slot]);
  64.         return 1;
  65.     }
  66.    
  67.     if(!strcmp(cmd, "/unwrite", true))
  68.     {
  69.         if(PlayerInfo[playerid][pAdmin] < 9) return SendClientMessage(playerid, 0xAFAFAFAA, "* Вам недоступно");
  70.  
  71.         new slot;
  72.  
  73.         tmp = strtok(cmdtext, idx);
  74.         if(!strlen(tmp)) return SendClientMessage(playerid, 0xAFAFAFAA, "Используйте: /unwrite [Слот (0-9)]");
  75.         slot = strval(tmp);
  76.         if(slot < 0 || slot > 9) return SendClientMessage(playerid, 0xAFAFAFAA, "Допустимые слоты: от 0 до 9!");
  77.         if(CreateTextObject[playerid][slot])
  78.         {
  79.             DestroyDynamicObject(CreateTextObject[playerid][slot]);
  80.             CreateTextObject[playerid][slot] = 0;
  81.         }
  82.         return 1;
  83.     }
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement