Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Префикс над администратором - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ All ]
Префикс над администратором
Оценка: -----

#1
Пользователь офлайн   nazarcukmisa1 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Здравствуйте, пользователи Pawn-Wiki!
Хотел бы продемонстрировать систему, написанную за 5 минут.
Для кого-то она может быть полезна, от критики и + не откажусь.

Перейдем же к самой системе.

Ко всем new:
new Text3D:Admin3D[MAX_PLAYERS char];  


• Создаем переменную Admin3D[MAX_PLAYERS сhar] и присваиваем значение char (то есть вместо 1000 ячеек мы будет использовать 255)

В OnPlayerConnect (или в OnPlayerRequestClass)

if(PlayerInfo[playerid][pAdmin] == 1) Admin3D{playerid} = Create3DTextLabel("Администратор Pawn-Wiki",0xFFFFFF,0.0,0.0,0.0,50.0,0,1);
        if(PlayerInfo[playerid][pAdmin] == 2) Admin3D{playerid} = Create3DTextLabel("Администратор Pawn-Wiki",0xFFFFFF,0.0,0.0,0.0,50.0,0,1);
        if(PlayerInfo[playerid][pAdmin] == 3) Admin3D{playerid} = Create3DTextLabel("Администратор Pawn-Wiki",0xFFFFFF,0.0,0.0,0.0,50.0,0,1);
        if(PlayerInfo[playerid][pAdmin] == 4) Admin3D{playerid} = Create3DTextLabel("Администратор Pawn-Wiki",0xFFFFFF,0.0,0.0,0.0,50.0,0,1);
        if(PlayerInfo[playerid][pAdmin] == 5) Admin3D{playerid} = Create3DTextLabel("Администратор Pawn-Wiki",0xFFFFFF,0.0,0.0,0.0,50.0,0,1);
        if(PlayerInfo[playerid][pAdmin] == 6) Admin3D{playerid} = Create3DTextLabel("Администратор Pawn-Wiki",0xFFFFFF,0.0,0.0,0.0,50.0,0,1);
        if(PlayerInfo[playerid][pAdmin] == 7) Admin3D{playerid} = Create3DTextLabel("Администратор Pawn-Wiki",0xFFFFFF,0.0,0.0,0.0,50.0,0,1);
        if(PlayerInfo[playerid][pAdmin] == 8) Admin3D{playerid} = Create3DTextLabel("Администратор Pawn-Wiki",0xFFFFFF,0.0,0.0,0.0,50.0,0,1);
        if(PlayerInfo[playerid][pAdmin] == 9) Admin3D{playerid} = Create3DTextLabel("Администратор Pawn-Wiki",0xFFFFFF,0.0,0.0,0.0,50.0,0,1);


• Admin3D{playerid} - Это наша созданная переменная, PlayerInfo[playerid][pAdmin] - Это переменная Администратора. Меняй на свою проверку!
• 0xFFFFFF - это цвет. Create3DTextLabel - создает 3D текст и названием Админ и т.д

Дальше в OnPlayerDisconnect

Delete3DTextLabel(Admin3D{playerid}); 


• Delete3DTextLabel - фун-ия удаляет 3D текст с данной переменной Admin3D{playerid} - об этой переменной говорил выше.

И в OnPlayerSpawn

if(PlayerInfo[playerid][pAdmin] >= 1) Attach3DTextLabelToPlayer(Admin3D{playerid},playerid,0.0,0.0,0.5);


Ну вот и всё, осталось переделать под свой мод :happy:
-1

#2
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
В твоём текущем коде, что в OnPlayerConnect, даже если игрок первого уровня админки, оставшиеся 8 проверок всё равно будут проверяться по одной.
Чтоб этого не было, есть такой замечательный оператор, как "else if". Снабжаешь им все условия, кроме первого, и описанной ситуации происходить не будет.

Хотя в данном случае лучше использовать switch, чтоб избавиться ещё и от постоянного обращения к "PlayerInfo[playerid][pAdmin]" при проверке каждого из условий.

Ну и да, систему лучше сразу писать под стример, ибо такой системой можно скушать приличное количество доступных слотов для 3d текста. Для стримера как раз и код будет попроще, ибо крепление текста к игроку происходит прямо в функции создания 3d текста.

Сообщение отредактировал DeimoS: 10 Август 2019 - 22:13

0

#3
Пользователь офлайн   Crazy_ 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Сразу выдает ? или нужно самому выдать?
0

#4
Пользователь офлайн   nazarcukmisa1 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияCrazy_ (11 Август 2019 - 18:55) писал:

Сразу выдает ? или нужно самому выдать?

Сразу
0

#5
Пользователь офлайн   Crazy_ 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
делал как написано но префикс не показывает
0

#6
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
Из-за "char" и записи ID не в ячейку, а в бит, скорее всего (ID 3d текста переваливает за 255 и уже в переменную он не запишется). Вообще код крайне странный у автора темы, о чём я уже писал, но что он решил проигнорировать.

Вот то же самое, только на стримере и pVar

new pVarName__Admin3dTextID[] = "pVarName__Admin3dTextID";

// При загрузке аккаунта (после выгрузки данных об админке)
switch(/*переменная с уровнем админки*/)
{
	case 1:
	{
		SetPVarInt(playerid, pVarName__Admin3dTextID,
			_:CreateDynamic3DTextLabel("Администратор 1 уровня", 0xFFFFFFFF, 0.0, 0.0, 0.0, 50.0, playerid, .testlos = 1));
	}
	case 2:
	{
		SetPVarInt(playerid, pVarName__Admin3dTextID,
			_:CreateDynamic3DTextLabel("Администратор 2 уровня", 0xFFFFFFFF, 0.0, 0.0, 0.0, 50.0, playerid, .testlos = 1));
	}
	//...
}

//OnPlayerDisconnect
if(GetPVarType(playerid, pVarName__Admin3dTextID))
{
	DestroyDynamic3DTextLabel(STREAMER_TAG_3D_TEXT_LABEL:GetPVarInt(playerid, pVarName__Admin3dTextID));
}

Сообщение отредактировал DeimoS: 13 Август 2019 - 09:19

1

#7
Пользователь офлайн   Crazy_ 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Я это нашел в другом портале
0

#8
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
А, так автор у нас ещё балабол и воришка. Понятно :no:
0

#9
Пользователь офлайн   nazarcukmisa1 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияCrazy_ (13 Август 2019 - 10:09) писал:

Я это нашел в другом портале

Если ты про P-I я 2 месяца назад тоже там выложил данную систему :evil:
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика