 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Локальный чат
| |
| colderpilot | Дата: Воскресенье, 08.04.2012, 20:00 | Сообщение # 1 |
|
Группа:
Продвинутые
Сообщений: 720
Награды: 3
Город: Moscow
Репутация: 331
Замечания: 80%
Статус: 
| Собственно помогите сделать локальный чат на ДМ моде, обгуглился уже.
ваще найс гель
|
| |
|
|
| Eakwarp | Дата: Воскресенье, 08.04.2012, 21:20 | Сообщение # 2 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус: 
| Что тут гуглить то? При отправке сообщения цикл на всех игроков, проверка на радиус их нахождения от отправившего, если рядом - выводить мессагу.
More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.
Valakas Roleplay on Twitter
Платные консультации, разработка, в ICQ. Дорого.
|
| |
|
|
| colderpilot | Дата: Воскресенье, 08.04.2012, 22:06 | Сообщение # 3 |
|
Группа:
Продвинутые
Сообщений: 720
Награды: 3
Город: Moscow
Репутация: 331
Замечания: 80%
Статус: 
| Пытался через прокс, нифига не получается.
ваще найс гель
|
| |
|
|
| Latron | Дата: Воскресенье, 08.04.2012, 22:22 | Сообщение # 4 |
|
Группа:
I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус: 
| colderpilot, Ну и чё тут делать Code public OnPlayerText(playerid, text[]) { new string[ 128 ]; format( string, 128, "%s : %s" ,GetPlayerNameEx( playerid ), text ); ProxDetector( 15.0, GetPlayerVirtualWorld( playerid ), playerid, string, string, COLOR_FADE2, COLOR_FADE2, COLOR_FADE2, COLOR_FADE2, COLOR_FADE2 ); return false; }
Моё портфолио
Мои работы: [ Lesson ] Операторы в PAWN. [ Lesson ] Переменная. [ GM ] RegSys. ( Last update: 21.04.2012 )
Сообщение отредактировал Latron - Воскресенье, 08.04.2012, 22:35 |
| |
|
|
| colderpilot | Дата: Понедельник, 09.04.2012, 14:37 | Сообщение # 5 |
|
Группа:
Продвинутые
Сообщений: 720
Награды: 3
Город: Moscow
Репутация: 331
Замечания: 80%
Статус: 
| Почти получилось. В чат не доходит ник того кто пишет, хоть павно и понимает что такое sendername. Есть альтернатива sendername или дай функцию пожалуйста)Добавлено (09.04.2012, 14:37) --------------------------------------------- переделав решил проблему вырезкой Спасибо. Close.
ваще найс гель
|
| |
|
|
| Eakwarp | Дата: Понедельник, 09.04.2012, 14:48 | Сообщение # 6 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус: 
| Quote (colderpilot) В чат не доходит ник того кто пишет, хоть павно и понимает что такое sendername. Есть альтернатива sendername или дай функцию пожалуйста)
Например так:
GetNamePlayer(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name; }Quote (Latron) ProxDetector( 15.0, GetPlayerVirtualWorld( playerid ), playerid, string, string, COLOR_FADE2, COLOR_FADE2, COLOR_FADE2, COLOR_FADE2, COLOR_FADE2 ); Крайне плохая идея для осуществления поставленной задачи. И что то мне подсказывает, что у автора, данная функция имеет несколько другой вид.
More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.
Valakas Roleplay on Twitter
Платные консультации, разработка, в ICQ. Дорого.
|
| |
|
|
| Latron | Дата: Понедельник, 09.04.2012, 15:47 | Сообщение # 7 |
|
Группа:
I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус: 
| colderpilot, GetPlayerName( playerid, sendername, sizeof( sendername ) ); - решит проблему. Ну вот на всякий: Вот ProxDetector который я использовал: Code stock ProxDetector(Float:radius, WorldID, playerid, string[], string2[], col1, col2, col3, col4, col5) { new tempworld; new Float:posx, Float:posy, Float:posz; new Float:oldposx, Float:oldposy, Float:oldposz; new Float:tempposx, Float:tempposy, Float:tempposz; GetPlayerPos(playerid, oldposx, oldposy, oldposz); foreach(Player, p) { if( IsPlayerConnected( p ) ) { GetPlayerPos( p, posx, posy, posz ); tempworld = GetPlayerVirtualWorld( p ); tempposx = (oldposx -posx); tempposy = (oldposy -posy); tempposz = (oldposz -posz); if (((tempposx < radius/16) && (tempposx > -radius/16)) && ((tempposy < radius/16) && (tempposy > -radius/16)) && ((tempposz < radius/16) && (tempposz > -radius/16)) && tempworld == WorldID) { SendClientMessage( p, col1, string ); } else if (((tempposx < radius/8) && (tempposx > -radius/8)) && ((tempposy < radius/8) && (tempposy > -radius/8)) && ((tempposz < radius/8) && (tempposz > -radius/8)) && tempworld == WorldID) { SendClientMessage( p, col2, string ); } else if (((tempposx < radius/4) && (tempposx > -radius/4)) && ((tempposy < radius/4) && (tempposy > -radius/4)) && ((tempposz < radius/4) && (tempposz > -radius/4)) && tempworld == WorldID) { SendClientMessage( p, col3, string ); } else if (((tempposx < radius/2) && (tempposx > -radius/2)) && ((tempposy < radius/2) && (tempposy > -radius/2)) && ((tempposz < radius/2) && (tempposz > -radius/2)) && tempworld == WorldID) { SendClientMessage( p, col4, string ); } else if (((tempposx < radius) && (tempposx > -radius)) && ((tempposy < radius) && (tempposy > -radius)) && ((tempposz < radius) && (tempposz > -radius)) && tempworld == WorldID) { SendClientMessage( p, col5, string ); } else if (((tempposx < radius*3/2) && (tempposx > -radius*3/2)) && ((tempposy < radius*3/2) && (tempposy > -radius*3/2)) && ((tempposz < radius*3/2) && (tempposz > -radius*3/2)) && tempworld == WorldID) { SendClientMessage( p, COLOR_PURPLE, string2 ); } } } return 1; } А вот функция которая определяет имя игрока: Code stock GetPlayerNameEx( playerid ) { new pname[ MAX_PLAYER_NAME ]; GetPlayerName( playerid, pname, sizeof( pname ) ); return pname; }
Моё портфолио
Мои работы: [ Lesson ] Операторы в PAWN. [ Lesson ] Переменная. [ GM ] RegSys. ( Last update: 21.04.2012 )
Сообщение отредактировал Latron - Понедельник, 09.04.2012, 15:51 |
| |
|
|
| Eakwarp | Дата: Понедельник, 09.04.2012, 16:02 | Сообщение # 8 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус: 
| Quote (Latron) Вот ProxDetector который я использовал: Крайне медленно, а главное зачем? Всем игрокам нужно вывести сообщение одного цвета, зачем тогда вообще использовать проксдетектор?
More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.
Valakas Roleplay on Twitter
Платные консультации, разработка, в ICQ. Дорого.
|
| |
|
|
| colderpilot | Дата: Понедельник, 09.04.2012, 16:53 | Сообщение # 9 |
|
Группа:
Продвинутые
Сообщений: 720
Награды: 3
Город: Moscow
Репутация: 331
Замечания: 80%
Статус: 
| Мне нужен был проксдетектор чтобы создать так называемый "рп" чат. ------------------------------------------------------------------------------------- Вот как получилось, вырезал из ГФ. Quote public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5) { if(IsPlayerConnected(playerid)) { new Float:posx, Float:posy, Float:posz; new Float:oldposx, Float:oldposy, Float:oldposz; new Float:tempposx, Float:tempposy, Float:tempposz; GetPlayerPos(playerid, oldposx, oldposy, oldposz); //radi = 2.0; //Trigger Radius for(new i = 0; i < GetMaxPlayers(); i++) { if(IsPlayerConnected(i)) { if(!BigEar[i]) { GetPlayerPos(i, posx, posy, posz); tempposx = (oldposx -posx); tempposy = (oldposy -posy); tempposz = (oldposz -posz); //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz); if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) { SendClientMessage(i, col1, string); } else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) { SendClientMessage(i, col2, string); } else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) { SendClientMessage(i, col3, string); } else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) { SendClientMessage(i, col4, string); } else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) { SendClientMessage(i, col5, string); } } else { SendClientMessage(i, col1, string); } } } }//not connected return 1; }
Заодно запили для админов /bigear. Там только цвета Fade и так далее нужно поставить чтобы блекли.Добавлено (09.04.2012, 16:44) --------------------------------------------- Вот мой варик: Quote public OnPlayerText(playerid, text[]) { new string[256]; new sendername[MAX_PLAYER_NAME]; GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "%s: %s", sendername, text); SetPlayerChatBubble(playerid, text, 0x6495EDFF, 20.0, 10000); ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4); } Добавлено (09.04.2012, 16:51) --------------------------------------------- Дабы не плодить лишних тем прошу помочь с ClearAnim. Какую лучше анимку использовать чтобы очистить анимацию? (Делаю анимку при базаре) Добавлено (09.04.2012, 16:52) --------------------------------------------- Очередной вопрос решен в несколько секунд  Добавлено (09.04.2012, 16:53) --------------------------------------------- Последний вопрос. Работают ли worldbounds в интерьерах? Или желательно при входе в интерьер снимать с игрока ограничения?
ваще найс гель
|
| |
|
|
| AirKite | Дата: Понедельник, 09.04.2012, 16:59 | Сообщение # 10 |
|
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус: 
| http://wiki.sa-mp.com/wiki/LimitGlobalChatRadius
[1337GAMES] Easy RP (SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)
Jabber: airkite@qip.ru [Addon] QuickBinder [FS] Online Players Record
|
| |
|
|
| Latron | Дата: Понедельник, 09.04.2012, 17:02 | Сообщение # 11 |
|
Группа:
I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус: 
| Quote (Eakwarp) Крайне медленно, а главное зачем? Всем игрокам нужно вывести сообщение одного цвета, зачем тогда вообще использовать проксдетектор? Дак он же сказал рп )
Моё портфолио
Мои работы: [ Lesson ] Операторы в PAWN. [ Lesson ] Переменная. [ GM ] RegSys. ( Last update: 21.04.2012 )
|
| |
|
|
| colderpilot | Дата: Понедельник, 09.04.2012, 17:23 | Сообщение # 12 |
|
Группа:
Продвинутые
Сообщений: 720
Награды: 3
Город: Moscow
Репутация: 331
Замечания: 80%
Статус: 
| Quote (AirKite) http://wiki.sa-mp.com/wiki/LimitGlobalChatRadius Спасибо! Полезно но мне не понадобится, требуется чтобы цвет чата угасал в зависимости от расстояния.
ваще найс гель
|
| |
|
|
| Latron | Дата: Понедельник, 09.04.2012, 21:35 | Сообщение # 13 |
|
Группа:
I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус: 
| colderpilot, Вариант с ProxDetector хоть и медленный но подойдет.
Моё портфолио
Мои работы: [ Lesson ] Операторы в PAWN. [ Lesson ] Переменная. [ GM ] RegSys. ( Last update: 21.04.2012 )
|
| |
|
|
|
 |
|
 | |
| |
|