Salfer

команда

25 сообщений в этой теме

есть команда которая проверяет характеристики героя?

такие str int dex vit..... и тд

0

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


Ссылка на сообщение
Поделиться на других сайтах
*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

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


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

спасибо за ответ, сейчас посмотрим

if(readparam(bVit)<=77)

Я имел в виду команду по типу getmapxy

которая может определить все характеристики игрока.

Изменено пользователем Salfer
0

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


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

спасибо за ответ, сейчас посмотрим

if(readparam(bVit)<=77)

Я имел в виду команду по типу getmapxy

которая может определить все характеристики игрока.

getmapxy определяет на какой локации находится персонаж, но уж точно не характеристики.

0

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


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

это пример , написано же команда по типу ....

0

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


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

спасибо за ответ, сейчас посмотрим

if(readparam(bVit)<=77)

Я имел в виду команду по типу getmapxy

которая может определить все характеристики игрока.


for (set [email protected], 22; [email protected] < 28; set [email protected], [email protected] + 1 ) {
setarray [email protected]_stats[[email protected] - 22],readparam([email protected]);
}

Например :D

Тогда:

[email protected]_stats[0] - Вит

[email protected]_stats[1] - Декс

[email protected]_stats[2] - Аги

[email protected]_stats[3] - Стр

[email protected]_stats[4] - Инт

[email protected]_stats[5] - Лак

Если часто нужно - можно вынести в отдельную функцию и вызывать через callfunc. Да много чего придумать можно, было бы желание )

1

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


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

ОООО это то что я искал большое спасибо!!!

0

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


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

ОООО это то что я искал большое спасибо!!!

Циклы спасут мир :blink:

0

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


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

разведчика делаю, который за денежку говорит характеристики игроков ^_^

0

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


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

разведчика делаю, который за денежку говорит характеристики игроков ^_^

Тогда игрока нужно будет сначала приаттачить. Не забыть, что [email protected] переменные привязываются к приаттаченному игроку и действуют только во время текущего диалога с нпц. Ну и да, вынесение в отдельную функцию\метку здесь будет вполне уместно.

0

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


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

если наёмный убийца получился , тогда и это получится ^_^

0

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


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

разведчика делаю, который за денежку говорит характеристики игроков ^_^

Сам допишешь) :)

prontera,141,171,5	script	Шпион	933,{
set [email protected], getcharid(3);
mes "[Шпион]";
mes "Говорят хороший билд - путь к победе.";
next;
mes "[Шпион]";
mes "Введите пожалуйста никнейм чара:";
input @target$;
if (isloggedin(getcharid(3,@target$))) {
attachrid(getcharid(3,@target$));
set [email protected]$, strcharinfo(0);
set [email protected]$, jobname(class);
set [email protected], baselevel;
set [email protected], joblevel;
set [email protected], hp;
set [email protected], maxhp;
set [email protected], sp;
set [email protected], maxsp;
set [email protected], readparam(bstr);
set [email protected], readparam(bagi);
set [email protected], readparam(bvit);
set [email protected], readparam(bint);
set [email protected], readparam(bdex);
set [email protected], readparam(bluk);
set [email protected], zeny;
set [email protected], statuspoint;
set [email protected], skillpoint;
set [email protected], jobchange_level;
attachrid([email protected]);
dispbottom "["[email protected]$+"] "[email protected]$+" "[email protected]+"/"[email protected]+" HP ("[email protected]+"/"[email protected]+") SP ("[email protected]+"/"[email protected]+")";
dispbottom "Str: "[email protected];
dispbottom "Agi: "[email protected];
dispbottom "Vit: "[email protected];
dispbottom "Int: "[email protected];
dispbottom "Dex: "[email protected];
dispbottom "Luk: "[email protected];
dispbottom "Zeny: "[email protected];
dispbottom "Free Skill Points: "[email protected];
dispbottom "Free Status Points: "[email protected];
dispbottom "Job Change Level: "[email protected];
close;
}else{
dispbottom "Персонаж в оффлайне.";
close;
}
}

Изменено пользователем mrboob
1

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


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

Спасибо большое!!

0

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


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

mrboob, если вы используете такой скрипт, то советую переписать.

Не нужны вам глобальные (пусть и временные) переменные, можно обойтись временными нпцшными [email protected]

И да, минус скрипта - только онлайн персов можно проверить. А если очень нужно, а перса в игре нет? За доп. зени можно сделать sql-запрос.

1

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


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

mrboob, если вы используете такой скрипт, то советую переписать.

Не нужны вам глобальные (пусть и временные) переменные, можно обойтись временными нпцшными [email protected]

И да, минус скрипта - только онлайн персов можно проверить. А если очень нужно, а перса в игре нет? За доп. зени можно сделать sql-запрос.

Только .var , а не [email protected] ;)

1

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


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

Не вижу смысла сохранять данные, ибо они используются только в данный момент, в данной инстанции

0

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


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

Не вижу смысла сохранять данные, ибо они используются только в данный момент, в данной инстанции

А разве [email protected] переменные не будут привязаны к приаттаченному персонажу? К тому, у которого проверяются всякие там статы и т.п.? Скрипт-то изначально вызывает другой персонаж. Хм

0

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


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

"." привязан к нпц.

0

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


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

"." привязан к нпц.

Я в курсе, потому их и предлагал. А спрашивал про "[email protected]"

P.S. Да, не сразу обратил внимание... "." переменные тоже не очень подходят... Если два человека одновременно заговорят - велика вероятность перезаписи переменных, что приведет к выдаче неверной информации одному из них(обоим?). Лучшим решением, пожалуй, будет брать инфу из базы и хранить в "[email protected]" переменных

1

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


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

Подумал. По идее можно и без базы обойтись, но не уверен будет ли работать...

Вот набросал:

prontera,141,171,5	script	Шпион	933,{
mes "[Шпион]";
mes "Говорят хороший билд - путь к победе.";
next;
mes "[Шпион]";
mes "Введите, пожалуйста, никнейм чара:";
input [email protected]$;
if (isloggedin(getcharid(3,[email protected]$))) {
set [email protected], getcharid(3);
copyarray [email protected][0], callfunc("getCharInfo",[email protected]$), 6;
attachrid([email protected]); // А нужна-ли эта строчка вообще?
dispbottom "Цель: "[email protected]$;
dispbottom "Str: "[email protected][3];
dispbottom "Agi: "[email protected][2];
dispbottom "Vit: "[email protected][0];
dispbottom "Int: "[email protected][4];
dispbottom "Dex: "[email protected][1];
dispbottom "Luk: "[email protected][5];
close;
} else {
dispbottom "Персонаж в оффлайне.";
close;
}
}

function script getCharInfo {
attachrid(getcharid(3,getarg(0)));
for (set [email protected], 22; [email protected] < 28; set [email protected], [email protected] + 1 ) {
setarray [email protected]_stats[[email protected] - 22],readparam([email protected]);
}
return([email protected]_stats);
}

Пара непонятных моментов, мб кто знает точно.

1) Возврат функцией массива правильно сработает? И сработает-ли вообще?

2) Аттач другого персонажа внутри функции аттачит его так же и к основному скрипту? По идее не должен, но уверенности нет...

1

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


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

разведчика делаю, который за денежку говорит характеристики игроков ^_^

а из SQL базы не кошерно выбирать?Я конечно знаю что вы любители написать несколько странирц кода вместо трёх строк, но всётаки.

Изменено пользователем Renegade Bastard_1226
1

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


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

разведчика делаю, который за денежку говорит характеристики игроков ^_^

а из SQL базы не кошерно выбирать?Я конечно знаю что вы любители написать несколько странирц кода вместо трёх строк, но всётаки.

Кошерно-кошерно (не нравится мне это слово, ы)

Интересно будет-ли работать вариант без базы. Ну и не всегда база хороша) Порой лучше из памяти взять..

P.S. Че за цифры в конце ника :blink:

0

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


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

1) Сработает

2) Аттач обратно несомненно нужен

2

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


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

Ну.. Тема, пожалуй, исчерпана. Спасибо.

Пусть автор топика отпишется о результатах и прикроем лавочку ;)

1

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


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

Всем Большое спасибо за развитие темы!!

Я нашёл что искал, и разобрался , большое спасибо!! ^_^

0

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


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