23:02
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
Локальный чат
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, Ну и чё тут делать wall
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)
---------------------------------------------
Очередной вопрос решен в несколько секунд crazy

Добавлено (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 )


  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua