Перейти к содержанию
Авторизация  
Trateus

Контактные данные (by Trateus)

Рекомендуемые сообщения

Trateus

Приветствую пользователей!

Вот нечего было делать ,взял и написал скрипт!

Для правильной работы скрипта если у вас нету инклуда : utils ,скачайте его http://rghost.ru/46775263!

 

Описание :

Команды полностью на диалогах!

Команды :

/my - мои контакты
/conntacts - узнать контакты!

Вот screenshot's :

001.jpg 002.jpg

 

Сохранение уже сами сделаете! Может я потом сделаю!

 

Итак приступим к установки :

 

Добавляем #define

#define MAX_CONNACT 5000
#define CONNTAC_ID 480

Добавляем массив (enum) :

enum pConntact
{
pSkype[64],
};
new PlayerConn[MAX_CONNACT][pConntact];

Добавляем диалоги (public OnDialogResponse) :

if(dialogid == CONNTAC_ID+1 && response)
{
new playa,name[MAX_PLAYER_NAME];
playa = ReturnUser(inputtext);
GetPlayerName(playa,name,sizeof(name));
if(IsPlayerConnected(playa))
{
format(string,sizeof(string),"{ffffff}
Имя : %sn
Skype : %s",name,PlayerConn[playa][pSkype]);
SPD(playerid, 0000, DIALOG_STYLE_MSGBOX, "Контактные данные", string,"Понял","Выйти");
}
else SendClientMessage(playerid,-1,"Игрок не в сети!");
}
//------------------------------------------------------------------------------
if(dialogid == CONNTAC_ID && response)
{
if(listitem == 0) ShowPlayerDialog(playerid,CONNTAC_ID+2,DIALOG_STYLE_INPUT,"{ffffff}Добавить конаткт","{FFFFFF}Введите контактные данные вашего skype!","Добавить","Отмена");
}
//------------------------------------------------------------------------------
if(dialogid == CONNTAC_ID+2 && response)
{
strmid(PlayerConn[playerid][pSkype], inputtext, 0, strlen(inputtext), 64);
}

Далее ,добавляем команды(public OnPlayerCommandText) :

 

 

Узнаём контакты :

if(strcmp(cmd, "/conntacts", true) == 0) ShowPlayerDialog(playerid,CONNTAC_ID+1,DIALOG_STYLE_INPUT,"{ffffff}Найти конаткт","{FFFFFF}Введите id игрока и узнайте его контактные данные!","Узнать","Отмена");

 

Свои контакты :

if(strcmp(cmd, "/my", true) == 0)
{
format(string,sizeof(string),"
Skype |%s|",PlayerConn[playerid][pSkype]);
ShowPlayerDialog(playerid, CONNTAC_ID, DIALOG_STYLE_LIST, "{ffffff}Контакты", string, "Выбрать", "Отмена");
}

Автор : Trateus(Я)

Изменено пользователем Trateus 
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

Хорошо, только уровень детского сада, давай что то серьезнее)

enum в данном случае не нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus

Хорошо, только уровень детского сада, давай что то серьезнее)

enum в данном случае не нужен.

 

enum - какраз нужен ,для сохранения ,но мне потом стало лень доделывать! Потом доделаю!

А про уровень детского сада ,ну сделай что-нибудь подобного сам!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

Хорошо напишу прям в этой теме тоже что и у тебя)

И кстати, не будет знать что такое SPD(..);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus

Хорошо напишу прям в этой теме тоже что и у тебя)

И кстати, не будет знать что такое SPD(..);

 

Зачем такой-же ,я тоже могу взять скопировать и вставить!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

 

Хорошо напишу прям в этой теме тоже что и у тебя)

И кстати, не будет знать что такое SPD(..);

 

Зачем такой-же ,я тоже могу взять скопировать и вставить!

 

Ну то что у тебя написано, вставив в -> new.pwn не будет работать. Ты не написал что и какие инклюды, переменные нужны. Так что твой скрипт не актуальный.

По поводу что-то моего, задай тему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus
К моему скрипту прелагается только один инклуд! И тут мало кто с 0 пишут мод! А насчёт того чтобы ты что-то сделал ,это не принципиально!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

Хорошо, допустим enum

pSkype у нас строка, значит pSkype[64] будет правильней. (где 64, кол-во символов, то есть кол-во символов в логине скайпа)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus
pSkype[64] - размер в битах!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

То есть в целочисленную переменную ты хочешь записать строку? ( :D )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus
Размер в битах подразумевает память!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

Я знаю, просто для тех кто будет читать, будет понятнее, а так Массив под который 1 символ выводиться 1 ячейка (начиная с 0, где последняя n)

 

Тоесть new Skype[8] = "just_on3";

или по другому

 

new Skype[8];

Skype[0] = "j", Skype[1] = "u", Skype[2] = "s", Skype[3] = "t", Skype[4] = "_", Skype[5] = "o", Skype[6] = "n", Skype[7] = "3";

 

а у тебя записана целочисленная переменная.

 

 

Твой пример на enum в правильной форме:

 

enum pConntact

{

pSkype[64],

};

new PlayerConn[MAX_CONNACT][pConntact];

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus

Я знаю, просто для тех кто будет читать, будет понятнее, а так Массив под который 1 символ выводиться 1 ячейка (начиная с 0, где последняя n)

 

Тоесть new Skype[8] = "just_on3";

или по другому

 

new Skype[8];

Skype[0] = "j", Skype[1] = "u", Skype[2] = "s", Skype[3] = "t", Skype[4] = "_", Skype[5] = "o", Skype[6] = "n", Skype[7] = "3";

 

а у тебя записана целочисленная переменная.

 

 

Твой пример на enum в правильной форме:

 

enum pConntact

{

pSkype[64],

};

new PlayerConn[MAX_CONNACT][pConntact];

 

Это всё для сохранки ,но сохранки пока нет! Позже буду модернезировать!

Или ты хочешь сказать чтобы я так сделал?

new Skype[9]="inputtext";

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus
Ну ,а как же тогда сделать проверку на игрока?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

Ты можешь перезаписать строку как и перезаписывал, strmid(PlayerConn[playerid][pSkype], inputtext, 0, strlen(inputtext), 24);

Только если в enum pSkype[64] будет равняться 64, то и в strmid будет в конце не 24 а 64.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus
Переписал!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

Если нужна будет помощь с сохранением или еще что то можешь чиркнуть в скайп, помогу как будет время. http://gsgames.ru/forum/public/style_emoticons/default/happy.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

Господи, плачу кровавыми слезами...

pSkype[64] - размер в битах!

 

64 - это размерность массива, а не "размер в битах". Если уж на то пошло - в байтах, ибо под каждый символ выделяется 1 байт памяти. Для массива дробных чисел типа float размерность массива не будет равна количеству выделяемой памяти.

То есть в целочисленную переменную ты хочешь записать строку? ( :D )

 

Вообще, "0" тоже будет являться строкой, и в целочисленную переменную спокойно влезет. А вообще, под char и int компилятор выделяет одинаковое количество памяти.

 

 

На кой черт здесь utils.inc, равно как и энумератор, я вообще не понял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

В таком массиве каждая ячейка имеет размерность в 4 байта вообще то и то это же можно изменить:

 

new y[5 char]; // теперь 1 ячейка имеет размер 1 байт (число от 0 до 255 в 1 ячейку)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Thomas

Cобрались умники)

Тратеус , не плохо .Но думаю для тебя это было не таким уж и сложным.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus

Господи, плачу кровавыми слезами...

 

pSkype[64] - размер в битах!

 

64 - это размерность массива, а не "размер в битах". Если уж на то пошло - в байтах, ибо под каждый символ выделяется 1 байт памяти. Для массива дробных чисел типа float размерность массива не будет равна количеству выделяемой памяти.

То есть в целочисленную переменную ты хочешь записать строку? ( :D )

 

Вообще, "0" тоже будет являться строкой, и в целочисленную переменную спокойно влезет. А вообще, под char и int компилятор выделяет одинаковое количество памяти.

 

 

На кой черт здесь utils.inc, равно как и энумератор, я вообще не понял.

 

utils - содержит : ReturnUser !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus
UP UP UP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
TrollFace

Смысла в том, что ты написал, не вижу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus

Смысла в том, что ты написал, не вижу.

 

Кому какая разница что ты видешь и что нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

ReturnUser в том виде, в котором она представлена в utils.inc - жутко неоптимизированная функция. А в таком, как здесь, случае - она еще и нахрен не нужна.

Смысловой нагрузки этот кусок кода не несет, тащемто, и гнуть пальцы можно было бы на порядок меньше.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.