Henk Mudi

Хелп

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

prontera,150,150,6	script	Санта Клаус	718,{
for(.i = 0; .i <= getarraysize(.cardid); .i ++)
{
if(countitem(.cardid[.i]) < 1)
{
mes "No Card";
close;
}
else
{
.a = countitem(.cardid[.i]);
delitem .cardid[.i], .a;
getitem 7227, .a;
mes "Done";
}
}
close;

OnInit:
setarray .cardid, 4252, 4152, 4418;
end;
}

Переделал чуток, работает как нужно. Все карты считывает с инвентаря и сразу же отдает тцгшки. Если 50 алигатор карт, 50 газетти то он сразу их забирает и дает 100 тцг.

Подправишь себе под eathena, а вообще советую юзать rAthena.

0

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


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

Если человек придет с галопаго и газети - его пошлет же из-за отсутствия аллигатора

rA

prontera,150,150,6      script  Санта Клаус     718,{
@a = 0;
for([email protected] = 0; [email protected] <= getarraysize(.cardid); [email protected] ++){
if(countitem(.cardid[[email protected]])){
@a += countitem(.cardid[[email protected]]);
delitem .cardid[[email protected]], countitem(.cardid[[email protected]]);
}
}
if(@a){
getitem 7227, [email protected];
mes "Done";
}
else
mes "No card";
close;

OnInit:
setarray .cardid, 4252, 4152, 4418;
end;
}

Для eA

prontera,150,150,6      script  Санта Клаус     718,{
set @a, 0;
for(set [email protected], 0; [email protected] <= getarraysize(.cardid); set [email protected], [email protected]+1){
if(countitem(.cardid[[email protected]])){
set @a, @a + countitem(.cardid[[email protected]]);
delitem .cardid[[email protected]], countitem(.cardid[[email protected]]);
}
}
if(@a){
getitem 7227, [email protected];
mes "Done";
}
else
mes "No card";
close;

OnInit:
setarray .cardid, 4252, 4152, 4418;
end;
}

0

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


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

Если человек придет с галопаго и газети - его пошлет же из-за отсутствия аллигатора

rA

prontera,150,150,6      script  Санта Клаус     718,{
@a = 0;
for([email protected] = 0; [email protected] <= getarraysize(.cardid); [email protected] ++){
if(countitem(.cardid[[email protected]])){
@a += countitem(.cardid[[email protected]]);
delitem .cardid[[email protected]], countitem(.cardid[[email protected]]);
}
}
if(@a){
getitem 7227, [email protected];
mes "Done";
}
else
mes "No card";
close;

OnInit:
setarray .cardid, 4252, 4152, 4418;
end;
}

Для eA

prontera,150,150,6      script  Санта Клаус     718,{
set @a, 0;
for(set [email protected], 0; [email protected] <= getarraysize(.cardid); set [email protected], [email protected]+1){
if(countitem(.cardid[[email protected]])){
set @a, @a + countitem(.cardid[[email protected]]);
delitem .cardid[[email protected]], countitem(.cardid[[email protected]]);
}
}
if(@a){
getitem 7227, [email protected];
mes "Done";
}
else
mes "No card";
close;

OnInit:
setarray .cardid, 4252, 4152, 4418;
end;
}

В моем случае меня не посылало никуда. Приносил 1 вид карт - забирал 1, приносил 2 - забирал 2, приносил 3 - забирал 3.

0

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


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

Приношу пишет донт и все а тцг не дает.

И можно както сделать что бы забирало карты что в инвентаре а не те что я должен указать?

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

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


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

prontera,150,150,6      script  Санта Клаус     718,{
set @a, 0;
for(set [email protected], 0; [email protected] <= getarraysize(.cardid); set [email protected], [email protected]+1){
if(countitem(.cardid[[email protected]])){
set @a, @a + countitem(.cardid[[email protected]]);
delitem .cardid[[email protected]], countitem(.cardid[[email protected]]);
}
}
if(@a){
getitem 7227, @a;
mes "Done";
}
else
mes "No card";
close;

OnInit:
setarray .cardid, 4252, 4152, 4418;
end;
}

Вот так пробуй.

Не понял второго вопроса.

0

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


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

Все работает спасибо.

2 вопрос как поставить раном с 40001 интема до последнего карт.

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

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


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

пишет нету карт

0

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


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

пишет нету карт

когда пишет? что пишет? где пишет?

ты можешь нормально объяснить? тут нет телепатов. Скажи какие иды карт ты добавил в этот рандом. И т.д.

0

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


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

set [email protected], rand(4001,4442);

В кмд не чего не пишет, пишет нету карты нпс кому сдать их.

0

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


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

set [email protected], rand(4001,4442);

В кмд не чего не пишет, пишет нету карты нпс кому сдать их.

нужно изменять половину скрипта если ставишь рандом)

0

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


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

Не могли бы вы подсказать как и где нужно изменить?

1

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


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

Не могли бы вы подсказать как и где нужно изменить?

Поидее так, не?

set [email protected], rand(4001,50000);

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

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


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

Не могли бы вы подсказать как и где нужно изменить?

Поидее так, не?

set [email protected], rand(4001,50000);

Нет, нет, нет.

В данном случае цифры в нашей переменной - ID'ы карт/вещей. Не думаю что у кого-то есть 50000ID item.

Нужно будет многое изменить в скрипте если юзать рандом.

Попробуй так, не даю гарантию что будет работать.

prontera,150,150,6      script  Санта Клаус     718,{
set @a, 0;
set .cardid, rand(4001,4200);
if(countitem(.cardid)){
set @a, @a + countitem(.cardid);
delitem .cardid, countitem(.cardid);
}
if(@a){
getitem 7227, @a;
mes "Done";
}
else
mes "No card";
close;

}

0

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


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

Увы....

[[Error]: npc_parsesrcfile: Unknown map 'if(@a){' in file 'npc/custom/foryou/rfyl.txt', line '9'. Skipping line...
[Error]: npc_parsesrcfile: Unknown syntax in file 'npc/custom/foryou/rfyl.txt', line '10'. Stopping...
* w1=getitem 7227, @a;
* w2=
* w3=
* w4=


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

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


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

обновил предыдущий пост. пробуй так.

1

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


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

No Card сказал мне нпс, а в cmd все нормально, любую карту пробывал не берет.

0

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


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

обновил предыдущий пост. пробуй так.

Он хочет, чтоб все карты менял, а не так, как ты предлагал(через сетэррэй)

0

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


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

Автор, могли бы вы впредь более четче формулировать ваши желания?

prontera,150,150,6      script  Санта Клаус     718,{
mes "[Обменник]";
mes "Хочешь обменять все";
mes "свои карты на TCG?";
next;
if(select("Да:Нет")==2)
close;
set @a, 0;
for(set @i, 4001; @i <= 4453; set @i, @i+1){
if(countitem(@i)){
set @a, @a + countitem(@i);
delitem @i, countitem(@i);
}
}
if(@a){
getitem 7227, @a;
mes "Done";
}
else
mes "No card";
close;
}

Эта вещь меняет абсолютно все карты на тцг

EDIT: пробуйте

1

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


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

Ну блин и опять не кликает, в cmd все норм ошибкок нету он не кликает на нпс.

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

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


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

Попробуй

if(countitem(@i) > 0){

if(@a > 0){

0

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


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

Да я уже исправил, уши от предыдущей версии остались

2

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


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

Ура заработало, спасибо всем кто помог, ещё один вопрос как сделать диалог с етим нпс потверждение что хочеш обменять?

0

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


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

Обновил, но в следующий раз вам лучше посмотреть примеры, прежде чем задавать такой вопрос

1

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


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

спасибо вот как я сделал

prontera,150,150,6	script	Обменик	718,{
mes "[Обменик]";
mes "Привет, я могу дать тебе кеш пойнт за простые карты";
mes "Хочеш обменять свой карты?";
menu "Обменять",L,"Нехочу",N;
N:
mes "[Обменик]";
mes "Ландно пока";
close;
L:
set @a, 0;
for(set @i, 4001; @i <= 4453; set @i, @i+1){
if(countitem(@i)){
set @a, @a + countitem(@i);
delitem @i, countitem(@i);
}
}
if(@a){
getitem 7227, @a;
mes "Спасибо";
}
else
mes "У вас нету карт";
close;
}

0

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


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас