 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Какая нужна функция и как использовать...
| |
| Brain_Tolmach | Дата: Четверг, 23.02.2012, 00:52 | Сообщение # 1 |
|
Новенький
Группа:
Продвинутые
Сообщений: 55
Награды: 2
Город: Лениногорск
Репутация: 36
Замечания: 0%
Статус: 
| Здраствуйте,столкнулся с таким вопросом при создании команды /me все написал правильно но еще нужна такая функция или что...что бы текст был виден на определенное растояние допустим 10 метров,а не всем игрокам или только самому себе...подскажите
Code if(strcmp(cmdtext,"/me",true,3)==0) { if(!cmdtext[3])return SendClientMessage(playerid,-1,"Подсказка: [/me] [Текст]"); new string[170]; GetPlayerName(playerid,string,sizeof(string)); format(string,sizeof(string)," %s %s",string,cmdtext[3]); SendClientMessageToAll(-1,string); return 1; }
|
| |
|
|
| Latron | Дата: Четверг, 23.02.2012, 01:02 | Сообщение # 2 |
|
Группа:
I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус: 
| Brain_Tolmach, ProxDetector( 30.0, playerid, string, 0xC2A2DAAA, 0xC2A2DAAA, 0xC2A2DAAA, 0xC2A2DAAA, 0xC2A2DAAA );
Моё портфолио
Мои работы: [ Lesson ] Операторы в PAWN. [ Lesson ] Переменная. [ GM ] RegSys. ( Last update: 21.04.2012 )
|
| |
|
|
| cracker | Дата: Четверг, 23.02.2012, 09:09 | Сообщение # 3 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 198
Награды: 5
Город: Красноярск
Репутация: 74
Замечания: 60%
Статус: 
| Code if(strcmp(cmdtext,"/me",true,3)==0) { if(!cmdtext[3])return SendClientMessage(playerid,-1,"Подсказка: [/me] [Текст]"); new string[170]; GetPlayerName(playerid,string,sizeof(string)); format(string,sizeof(string)," %s %s",string,cmdtext[3]); ProxDetector( 30.0, playerid, string, 0xC2A2DAAA, 0xC2A2DAAA, 0xC2A2DAAA, 0xC2A2DAAA, 0xC2A2DAAA ); return 1; }
|
| |
|
|
| Fus1 | Дата: Четверг, 23.02.2012, 09:21 | Сообщение # 4 |
|
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус: 
| Quote (Latron) ProxDetector( 30.0, playerid, string, 0xC2A2DAAA, 0xC2A2DAAA, 0xC2A2DAAA, 0xC2A2DAAA, 0xC2A2DAAA ); Ужас. И тем более , если у него нет это функции ?
Code stock MeAction(playerid,string[],Float:radius) { new p = GetMaxPlayers(); for(new i; i < p; i++) { if(IsPlayerNearPlayer(playerid,i,radius)) SendClientMessage(i,COLOR_PURPLE,string); } return 1; }
Code stock IsPlayerNearPlayer(playerid,id,Float:range) { new Float:x,Float:y,Float:z; GetPlayerPos(id,x,y,z); if(IsPlayerInRangeOfPoint(playerid,range,x,y,z)) return 1; return 0; }
И используем,
Code MeAction(playerid,string,15);
Где у нас string это то , что мы будем выводить, а '15', это дистанция.
Сообщение отредактировал Fus1 - Четверг, 23.02.2012, 11:06 |
| |
|
|
| __Jester | Дата: Четверг, 23.02.2012, 09:34 | Сообщение # 5 |
|
Новенький
Группа:
Пользователи
Сообщений: 48
Награды: 0
Город: Волгоград
Репутация: 22
Замечания: 0%
Статус: 
| Fus1, а что вот эти у него есть? Code if(IsPlayerNearPlayer(playerid,i,radius)) SendClientMessageEx(i,COLOR_PURPLE,string);
Code new Float:x, Float:y, Float:z; GetPlayerPos( playerid, x, y ,z ); for( new id=0; id<MAX_PLAYERS; id++ ) { if ( IsPlayerInRangeOfPoint( i, 30.0, x, y, z ) ) SendClientMessage(i, COLOR_PURPLE, string);
}
|
| |
|
|
| Eakwarp | Дата: Четверг, 23.02.2012, 10:16 | Сообщение # 6 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус: 
| Quote (Fus1) если у него нет это функции ? Quote (Fus1) if(IsPlayerNearPlayer(playerid,i,radius)) Quote (Fus1) SendClientMessageEx facepalm.
Ты бездарь.
А так, достаточно воспользоваться простым алгоритмом.
1. Узнаем текущие координаты игрока 2. Цикл на всех игроков.(рекомендую уже использовать foreach, 2012й год на дворе). 3. Если игрок в радиусе от координат игрока - вывод ему сообщения.Добавлено (23.02.2012, 10:16) --------------------------------------------- Upd. Ну или воспользоваться кодом __Jester, поставленную задачу выполняет.
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 | Дата: Четверг, 23.02.2012, 11:03 | Сообщение # 7 |
|
Группа:
I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус: 
| Fus1, да ужас, но 70% что у него обычный ГФ, где везде используется функция ProxDetector.
Quote (Eakwarp) А так, достаточно воспользоваться простым алгоритмом.
1. Узнаем текущие координаты игрока 2. Цикл на всех игроков.(рекомендую уже использовать foreach, 2012й год на дворе). 3. Если игрок в радиусе от координат игрока - вывод ему сообщения.
Ага,жаль только он этого сделать не сможет.
Моё портфолио
Мои работы: [ Lesson ] Операторы в PAWN. [ Lesson ] Переменная. [ GM ] RegSys. ( Last update: 21.04.2012 )
Сообщение отредактировал Latron - Четверг, 23.02.2012, 11:10 |
| |
|
|
| Brain_Tolmach | Дата: Четверг, 23.02.2012, 11:10 | Сообщение # 8 |
|
Новенький
Группа:
Продвинутые
Сообщений: 55
Награды: 2
Город: Лениногорск
Репутация: 36
Замечания: 0%
Статус: 
| Мод с 0 пишу только 3 функции есть проверка игрока в зоне Code stock IsPlayerInArea(playerid,Float:miny,Float:maxx,Float:maxy)//Использование-if(IsPlayerInArea(playerid,x min,y min,X max,Y max)) { new Float:x,Float:y,Float:z;//Это проверкка игрока в зоне GetPlayerPos(playerid,X,Y,Z); if(X >= minx && y >= miny && Y<= maxy) { return 1; } } Проверка игрока в кубе Code stock IsPlayerInCube(playerid,Float:xmin,Float:ymin,Float:zmin,Float:xmax,Float:ymax,Float:zmax) { new Float:x,Float:y,Float:z;// if(IsPlayerInCube(playerid,xmin,ymin,zmin,xmax,ymax,zmax)) GetPlayerPos(playerid(x,y,z);//Проверка игррока в кубе if(x > xmin && y > ymin && z > zmin && x < xmax && y < ymax && z < zmax)return 1; return 0; } И проверка игрока в радиусе Code stock PlayerToPoint(Float:radi,playerid,Float:x,Float:y,Float:z)//Проверка игрока в радиусе { if(IsPlayerConnected(playerid))//if(playerToPoint(3.0,playerd,xyz)) { new Float:oldposx,Float:oldposy,Floatoldposz; new Float:tempposx,Float:tempposy,Float:tempposz; GetPlayerPos(playerid,oldposx,oldposy,oldposz); tempposx = (oldposx -x); tempposy = (oldpos -y); tempposz = (oldpos -z); if(((tempposx < radi)&&(tempposx > -radi))&&((tempposy < radi)&&(temppos > -radi))&&((tempposz < radi)&&(tempposz > -radi))) { return 1; } } return 0; } А так всем спасибо, сейчас попытаюсь с функцией джестера сделать
|
| |
|
|
| Latron | Дата: Четверг, 23.02.2012, 11:12 | Сообщение # 9 |
|
Группа:
I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус: 
| Brain_Tolmach, PlayerToPoint(Float:radi,playerid,Float:x,Float:y,Float:z)//Проверка игрока в радиусе Это удалите, это прошлый век,сейчас есть уже IsPlayerInRangeOfPoint - стандартная. И используйте способ фаса, касательно /me.
Моё портфолио
Мои работы: [ Lesson ] Операторы в PAWN. [ Lesson ] Переменная. [ GM ] RegSys. ( Last update: 21.04.2012 )
Сообщение отредактировал Latron - Четверг, 23.02.2012, 11:12 |
| |
|
|
| EmiGrant | Дата: Четверг, 23.02.2012, 11:12 | Сообщение # 10 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1362
Награды: 34
Город: Пятигорск
Репутация: 1653
Замечания: 40%
Статус: 
| Quote (Brain_Tolmach) И проверка игрока в радиусе
stock PlayerToPoint(Float:radi,playerid,Float:x,Float:y,Float:z)//Проверка игрока в радиусе { if(IsPlayerConnected(playerid))//if(playerToPoint(3.0,playerd,xyz)) { new Float:oldposx,Float:oldposy,Floatoldposz; new Float:tempposx,Float:tempposy,Float:tempposz; GetPlayerPos(playerid,oldposx,oldposy,oldposz); tempposx = (oldposx -x); tempposy = (oldpos -y); tempposz = (oldpos -z); if(((tempposx < radi)&&(tempposx > -radi))&&((tempposy < radi)&&(temppos > -radi))&&((tempposz < radi)&&(tempposz > -radi))) { return 1; } }
Нахрена?
Если человек несет бред, то здесь 2 варианта: либо он очень умный либо очень тупой © EmiGrant
|
| |
|
|
| Brain_Tolmach | Дата: Четверг, 23.02.2012, 11:15 | Сообщение # 11 |
|
Новенький
Группа:
Продвинутые
Сообщений: 55
Награды: 2
Город: Лениногорск
Репутация: 36
Замечания: 0%
Статус: 
| Latron, Спасибо понел,сейчас удалю и воспользуюсь функцией фобоса.. Добавлено (23.02.2012, 11:15) --------------------------------------------- EmiGrant, Я начинающий скриптер мало знаю стандартных функций.
|
| |
|
|
| Latron | Дата: Четверг, 23.02.2012, 11:19 | Сообщение # 12 |
|
Группа:
I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус: 
| [off]Quote (Brain_Tolmach) Latron, Спасибо понел,сейчас удалю и воспользуюсь функцией фобоса.. Фобос это новая кликуха фаса? [/off] Quote (Brain_Tolmach) EmiGrant, Я начинающий скриптер мало знаю стандартных функций. http://wiki.sa-mp.com/
Моё портфолио
Мои работы: [ Lesson ] Операторы в PAWN. [ Lesson ] Переменная. [ GM ] RegSys. ( Last update: 21.04.2012 )
|
| |
|
|
| Brain_Tolmach | Дата: Четверг, 23.02.2012, 11:23 | Сообщение # 13 |
|
Новенький
Группа:
Продвинутые
Сообщений: 55
Награды: 2
Город: Лениногорск
Репутация: 36
Замечания: 0%
Статус: 
| Quote (Latron) ОффтопикQuote (Brain_Tolmach)Latron, Спасибо понел,сейчас удалю и воспользуюсь функцией фобоса.. Фобос это новая кликуха фаса? перепутал чуток) просто знакомый есть,фобос)
|
| |
|
|
|
 |
|
 | |
| |
|