Break Опубликовано 21 ноября, 2013 Жалоба Поделиться Опубликовано 21 ноября, 2013 Подскажите как реализовать подпись вещей именем гильдии?Используя поиск, нашёл лишь вот это: http://www.eathena.ws/board/index.php?showtopic=187391 Ссылка на комментарий Поделиться на другие сайты Поделиться
Ki1ime Опубликовано 21 ноября, 2013 Жалоба Поделиться Опубликовано 21 ноября, 2013 Скрипт раритетный, чей он был не знаю, думаю разберешься. prontera,160,185,5 script Именные вещи 878,{mes "Здраствуйте!";mes "Я могу дать вещи ваше имя";mes "Или имя Гильдии!";mes "Это стоит 1,000,000 zeny";switch(select("Дать моё имя вещи!","Дать имя моей Гильдии!","Уйти")){case 1:if (Zeny < 1000000) goto noz;mes "Хорошо, теперь оденьте вещь";mes "И напишите его ID";input @id;if(getequipid(1)==@id) callfunc "getitem",@id;if(getequipid(2)==@id) callfunc "getitem",@id;if(getequipid(3)==@id) callfunc "getitem",@id;if(getequipid(4)==@id) callfunc "getitem",@id;if(getequipid(5)==@id) callfunc "getitem",@id;if(getequipid(6)==@id) callfunc "getitem",@id;if(getequipid(7)==@id) callfunc "getitem",@id;if(getequipid(8)==@id) callfunc "getitem",@id;if(getequipid(9)==@id) callfunc "getitem",@id;if(getequipid(10)==@id) callfunc "getitem",@id;mes "Не найдено одетой вещи!";close;break;case 2:mes "Хорошо, теперь оденьте вещь";mes "И напишите его ID";if (Zeny < 1000000) goto noz;input @id;if (strcharinfo(2)=="") goto nog;if(getequipid(1)==@id) callfunc "getitem2",@id;if(getequipid(2)==@id) callfunc "getitem2",@id;if(getequipid(3)==@id) callfunc "getitem2",@id;if(getequipid(4)==@id) callfunc "getitem2",@id;if(getequipid(5)==@id) callfunc "getitem2",@id;if(getequipid(6)==@id) callfunc "getitem2",@id;if(getequipid(7)==@id) callfunc "getitem2",@id;if(getequipid(8)==@id) callfunc "getitem2",@id;if(getequipid(9)==@id) callfunc "getitem2",@id;if(getequipid(10)==@id) callfunc "getitem2",@id;mes "Не найдено одетой вещи!";close;break;case 3:close;break;}noz:mes "Не хватает зени.";close;nog:mes "Вы не в Гильдии";close;}function script getitem {set @id, getarg(0);getnameditem @id,strcharinfo(0);delitem @id,1;set Zeny, Zeny-1000000;close;end;}function script getitem2 {set @id, getarg(0);getnameditem @id,strcharinfo(2);delitem @id,1;set Zeny, Zeny-1000000;close;end;}} Ссылка на комментарий Поделиться на другие сайты Поделиться
ph1047 Опубликовано 21 ноября, 2013 Жалоба Поделиться Опубликовано 21 ноября, 2013 (изменено) Читай описание getnameditem: You may not inscribe items with arbitrary strings, only with names of characters that actually exist.этот скрипт не будет работать ни при каких условиях.По теме - теория такая. Подпись осуществляется путем забивки 2 слотов карт по 16 бит одного 32-битного значения - а именно char id, остальные биты идут на что-то еще, это все есть в доках. Когда клиент получает такую вещь, он видит, что каких-то там старших бит в одном из слотов недостает, и он короче понимает, что это char id, а не id карт. Далее он делает асинхронный запрос на сервер типа - как зовут чара с id = тому что лежит в картах, и получает коллбэк вида "чара с id = 12345 зовут Нагибатор228", и в этот момент у вещи появляется подпись.Таким образом, что тут можно придумать. Резервируешь допустим числа от 800000 до 900000 - под id гильдий, и подписываешь вещи номером id гильдии + 800000. Когда клиент делает запрос на имя чара например 800228 мы видим, что в этом диапазоне лежат гильдии. вычитаем 800000 и получается id гильдии 228. Отсылаем клиенту ответ - персонажа 800228 зовут ГильдияБатек, думаю понятно, что произойдет. Изменено 21 ноября, 2013 пользователем ph1047 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 21 ноября, 2013 Автор Жалоба Поделиться Опубликовано 21 ноября, 2013 Понял. Спасибо за ответ. Пока не буду заморачиваться) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения