Salfer Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 есть команда которая проверяет характеристики героя?такие str int dex vit..... и тд Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 *readparam(<parameter number>)This function will return the basic stats of an invoking character, referred to by the parameter number. Instead of a number, you can use a parameter name if it is defined in "db/const.txt". For reference, in there these things are defined: StatusPoint, BaseLevel, SkillPoint, Class, Upper, Zeny, Sex, Weight, MaxWeight, JobLevel, BaseExp, JobExp, NextBaseExp, NextJobExp, Hp, MaxHp, Sp, MaxSp, BaseJob, Karma, Manner, bVit, bDex, bAgi, bStr, bInt, bLuk All of these also behave as variables, but don't expect to be able to just 'set' all of them - some will not work for various internal reasons. // This would return how many status points you haven't spent yet readparam(9) Using this particular information as a function call is not required. Just putting StatusPoint will give you the same result, and some of these parameters work just like variables (i.e. you can 'set Zeny,100' to make the character have 100 Zeny, destroying whatever Zeny they had before, or 'set Zeny,Zeny+100' to give them 100 Zeny) You can also use this command to get stat values: readparam(bVit) if(readparam(bVit)<=77) goto L_End; mes "Only people with over 77 Vit are reading this"; L_End: close; Читаем документацию, окда? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Salfer Опубликовано 8 ноября, 2012 Автор Жалоба Поделиться Опубликовано 8 ноября, 2012 (изменено) спасибо за ответ, сейчас посмотримif(readparam(bVit)<=77) Я имел в виду команду по типу getmapxyкоторая может определить все характеристики игрока. Изменено 8 ноября, 2012 пользователем Salfer Ссылка на комментарий Поделиться на другие сайты Поделиться
Kubix! Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 спасибо за ответ, сейчас посмотримif(readparam(bVit)<=77) Я имел в виду команду по типу getmapxyкоторая может определить все характеристики игрока.getmapxy определяет на какой локации находится персонаж, но уж точно не характеристики. Ссылка на комментарий Поделиться на другие сайты Поделиться
Salfer Опубликовано 8 ноября, 2012 Автор Жалоба Поделиться Опубликовано 8 ноября, 2012 это пример , написано же команда по типу .... Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 спасибо за ответ, сейчас посмотрим if(readparam(bVit)<=77) Я имел в виду команду по типу getmapxy которая может определить все характеристики игрока. for (set .@i, 22; .@i < 28; set .@i, .@i + 1 ) { setarray .@char_stats[.@i - 22],readparam(.@i);} Например Тогда: .@char_stats[0] - Вит .@char_stats[1] - Декс .@char_stats[2] - Аги .@char_stats[3] - Стр .@char_stats[4] - Инт .@char_stats[5] - Лак Если часто нужно - можно вынести в отдельную функцию и вызывать через callfunc. Да много чего придумать можно, было бы желание ) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Salfer Опубликовано 8 ноября, 2012 Автор Жалоба Поделиться Опубликовано 8 ноября, 2012 ОООО это то что я искал большое спасибо!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 ОООО это то что я искал большое спасибо!!! Циклы спасут мир Ссылка на комментарий Поделиться на другие сайты Поделиться
Salfer Опубликовано 8 ноября, 2012 Автор Жалоба Поделиться Опубликовано 8 ноября, 2012 разведчика делаю, который за денежку говорит характеристики игроков Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 разведчика делаю, который за денежку говорит характеристики игроков Тогда игрока нужно будет сначала приаттачить. Не забыть, что .@ переменные привязываются к приаттаченному игроку и действуют только во время текущего диалога с нпц. Ну и да, вынесение в отдельную функцию\метку здесь будет вполне уместно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Salfer Опубликовано 8 ноября, 2012 Автор Жалоба Поделиться Опубликовано 8 ноября, 2012 если наёмный убийца получился , тогда и это получится Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 (изменено) разведчика делаю, который за денежку говорит характеристики игроков Сам допишешь) prontera,141,171,5 script Шпион 933,{set $@player, getcharid(3);mes "[Шпион]";mes "Говорят хороший билд - путь к победе.";next;mes "[Шпион]";mes "Введите пожалуйста никнейм чара:";input @target$;if (isloggedin(getcharid(3,@target$))) {attachrid(getcharid(3,@target$));set $@tname$, strcharinfo(0);set $@tjob$, jobname(class);set $@tlvl, baselevel;set $@tjlvl, joblevel;set $@thp, hp;set $@tmaxhp, maxhp;set $@tsp, sp;set $@tmaxsp, maxsp;set $@tstr, readparam(bstr);set $@tagi, readparam(bagi);set $@tvit, readparam(bvit);set $@tint, readparam(bint);set $@tdex, readparam(bdex);set $@tluk, readparam(bluk);set $@tzeny, zeny;set $@tstpoints, statuspoint;set $@tskpoints, skillpoint;set $@tjchangelvl, jobchange_level;attachrid($@player);dispbottom "["+$@tname$+"] "+$@tjob$+" "+$@tlvl+"/"+$@tjlvl+" HP ("+$@thp+"/"+$@tmaxhp+") SP ("+$@tsp+"/"+$@tmaxsp+")";dispbottom "Str: "+$@tstr;dispbottom "Agi: "+$@tagi;dispbottom "Vit: "+$@tvit;dispbottom "Int: "+$@tint;dispbottom "Dex: "+$@tdex;dispbottom "Luk: "+$@tluk;dispbottom "Zeny: "+$@tzeny;dispbottom "Free Skill Points: "+$@tskpoints;dispbottom "Free Status Points: "+$@tstpoints;dispbottom "Job Change Level: "+$@tjchangelvl;close;}else{dispbottom "Персонаж в оффлайне.";close;}} Изменено 8 ноября, 2012 пользователем mrboob 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Salfer Опубликовано 8 ноября, 2012 Автор Жалоба Поделиться Опубликовано 8 ноября, 2012 Спасибо большое!! Ссылка на комментарий Поделиться на другие сайты Поделиться
Jarek Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 mrboob, если вы используете такой скрипт, то советую переписать.Не нужны вам глобальные (пусть и временные) переменные, можно обойтись временными нпцшными .@И да, минус скрипта - только онлайн персов можно проверить. А если очень нужно, а перса в игре нет? За доп. зени можно сделать sql-запрос. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 9 ноября, 2012 Жалоба Поделиться Опубликовано 9 ноября, 2012 mrboob, если вы используете такой скрипт, то советую переписать. Не нужны вам глобальные (пусть и временные) переменные, можно обойтись временными нпцшными .@ И да, минус скрипта - только онлайн персов можно проверить. А если очень нужно, а перса в игре нет? За доп. зени можно сделать sql-запрос. Только .var , а не .@var 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Jarek Опубликовано 9 ноября, 2012 Жалоба Поделиться Опубликовано 9 ноября, 2012 Не вижу смысла сохранять данные, ибо они используются только в данный момент, в данной инстанции Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 9 ноября, 2012 Жалоба Поделиться Опубликовано 9 ноября, 2012 Не вижу смысла сохранять данные, ибо они используются только в данный момент, в данной инстанцииА разве .@ переменные не будут привязаны к приаттаченному персонажу? К тому, у которого проверяются всякие там статы и т.п.? Скрипт-то изначально вызывает другой персонаж. Хм Ссылка на комментарий Поделиться на другие сайты Поделиться
Jarek Опубликовано 9 ноября, 2012 Жалоба Поделиться Опубликовано 9 ноября, 2012 "." привязан к нпц. Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 9 ноября, 2012 Жалоба Поделиться Опубликовано 9 ноября, 2012 "." привязан к нпц.Я в курсе, потому их и предлагал. А спрашивал про ".@"P.S. Да, не сразу обратил внимание... "." переменные тоже не очень подходят... Если два человека одновременно заговорят - велика вероятность перезаписи переменных, что приведет к выдаче неверной информации одному из них(обоим?). Лучшим решением, пожалуй, будет брать инфу из базы и хранить в ".@" переменных 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 9 ноября, 2012 Жалоба Поделиться Опубликовано 9 ноября, 2012 Подумал. По идее можно и без базы обойтись, но не уверен будет ли работать...Вот набросал:prontera,141,171,5 script Шпион 933,{ mes "[Шпион]"; mes "Говорят хороший билд - путь к победе."; next; mes "[Шпион]"; mes "Введите, пожалуйста, никнейм чара:"; input .@target$; if (isloggedin(getcharid(3,.@target$))) { set .@player, getcharid(3); copyarray .@charInfo[0], callfunc("getCharInfo",.@target$), 6; attachrid(.@player); // А нужна-ли эта строчка вообще? dispbottom "Цель: "+.@target$; dispbottom "Str: "+.@charInfo[3]; dispbottom "Agi: "+.@charInfo[2]; dispbottom "Vit: "+.@charInfo[0]; dispbottom "Int: "+.@charInfo[4]; dispbottom "Dex: "+.@charInfo[1]; dispbottom "Luk: "+.@charInfo[5]; close; } else { dispbottom "Персонаж в оффлайне."; close; }}function script getCharInfo { attachrid(getcharid(3,getarg(0))); for (set .@i, 22; .@i < 28; set .@i, .@i + 1 ) { setarray .@char_stats[.@i - 22],readparam(.@i); } return(.@char_stats);}Пара непонятных моментов, мб кто знает точно.1) Возврат функцией массива правильно сработает? И сработает-ли вообще?2) Аттач другого персонажа внутри функции аттачит его так же и к основному скрипту? По идее не должен, но уверенности нет... 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Renegade Bastard_1226 Опубликовано 9 ноября, 2012 Жалоба Поделиться Опубликовано 9 ноября, 2012 (изменено) разведчика делаю, который за денежку говорит характеристики игроков а из SQL базы не кошерно выбирать?Я конечно знаю что вы любители написать несколько странирц кода вместо трёх строк, но всётаки. Изменено 9 ноября, 2012 пользователем Renegade Bastard_1226 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 9 ноября, 2012 Жалоба Поделиться Опубликовано 9 ноября, 2012 разведчика делаю, который за денежку говорит характеристики игроков а из SQL базы не кошерно выбирать?Я конечно знаю что вы любители написать несколько странирц кода вместо трёх строк, но всётаки. Кошерно-кошерно (не нравится мне это слово, ы) Интересно будет-ли работать вариант без базы. Ну и не всегда база хороша) Порой лучше из памяти взять.. P.S. Че за цифры в конце ника Ссылка на комментарий Поделиться на другие сайты Поделиться
Jarek Опубликовано 9 ноября, 2012 Жалоба Поделиться Опубликовано 9 ноября, 2012 1) Сработает2) Аттач обратно несомненно нужен 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Кеник Опубликовано 9 ноября, 2012 Жалоба Поделиться Опубликовано 9 ноября, 2012 Ну.. Тема, пожалуй, исчерпана. Спасибо. Пусть автор топика отпишется о результатах и прикроем лавочку 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Salfer Опубликовано 9 ноября, 2012 Автор Жалоба Поделиться Опубликовано 9 ноября, 2012 Всем Большое спасибо за развитие темы!! Я нашёл что искал, и разобрался , большое спасибо!! Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения