Перейти к содержанию

cash shop


paxac

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

prontera,x,y,f<tab>cashshop<tab>Имя нпц<tab>Спрайт_нпц, айтем1, айтем1количество

Изменено пользователем Oxxy
Ссылка на комментарий
Поделиться на другие сайты

market,110,116,4 script Cash Likes#2 435,{
mes "[ ^FFA500Cash Shop ^000000]";
mes "Приветствую, весь мой товар оплачивается ^FF0000Cash Points^000000.";
if( select("Посмотреть магазин:Примерить") == 2 ){
cleararray @Hats[0],0,127;
setarray @Hats[0],21072,21087,21101,21117,21131,21149,21164,21180,21073,21088,21102,21118,21132,21150,21165,21181,21083,21112,21127,21140,21160,21174,21178,21191,21085,21099,21114,21129,21142,21162,21176,21193,22224,22225,22226,22227,22500,22501,22502,22545,22546,22547,22516,22517,22520,22585;
callfunc "DoTestHats";
end;
}
mes "Закройте окно, для открытия магазина!!";
close2;
callshop "CashExchanger#2",0;
end;
OnInit:
waitingroom "[ Cash Shop#2 ]",0;
end;
}

че тут может бить не правильно?

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

map-server

А так


callshop "CashExchanger#2",0; + cashshop

This type of shop will not allow you to sell items at it, you may only purchase items here.

+ табы?

Изменено пользователем botka4aet
Ссылка на комментарий
Поделиться на другие сайты

У меня так стоит


- cashshop cash_shop 116,13710:300,13610:50,13611:50,14235:75,14545:150,13711:25,12910:25,13536:10,13537:15
- cashshop hat_shop 116,5225:350,5594:300,5462:300,5364:300,5314:350,5463:300,5374:300,5596:300,5325:300
- cashshop chant_shop 116,4702:300,4732:300,4742:300,4712:300,4722:300,4752:300
prontera,148,186,4 script Kafra Shop 894,{
mes "[Kafra Shop]";
mes "Here you can buy with cash points.";
mes "Details on website: ^0000FFblabla.net^000000";
mes "Contact us:";
mes "Forum (PM): ^0000FFNickname^000000";
mes "ICQ: ^0000FF666-666-666^000000";
mes "30 Cash Points = 1$ = 30 rubles";
switch(select("Items:Equip:Chant")) {
case 1:
close2;
callshop "cash_shop",1;
npcshopattach "cash_shop";
end;

case 2:
close2;
callshop "hat_shop",1;
npcshopattach "hat_shop";
end;

case 3:
close2;
callshop "chant_shop",1;
npcshopattach "chant_shop";
end;
}
}

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Пробуй это:


//|-----------------------------------------------------------------------------|//

//|[Release] Points System |//

//|-----------------------------------------------------------------------------|//

//|Скрипт был создан для FatalRO |//

//|-----------------------------------------------------------------------------|//

//|Cкрипт написал DeathHoll |//

//|-----------------------------------------------------------------------------|//

//|Последняя проверка скрипта была на eAthena SQL 13200 stable |//

//|-----------------------------------------------------------------------------|//

//|Description: Скрипт основан на примере Магазина Кафры |//

//|-----------------------------------------------------------------------------|//

//|Версия скрипта на данный момент 1.7 |//

//|1.0- Первая версия скрипта |//

//|1.1- Добавлена конфигурация нпс |//

//|1.2- Добавлена система удаления/добавления предметов из поинт шопа |//

//|1.3- Добавил ГМ Меню и функцию установки очков персонажу |//

//|1.4- Добавил в ГМ Меню функцию удаления всех поинтов с сервера |//

//|1.5- Добавил дубликатов и изменил систему установки очков |//

//|1.6- Исправил все мелкие баги |//

//|1.7- Финальная версия скрипта...но в дальнейшем будет полностью оптимизирован|//

//|-----------------------------------------------------------------------------|//





- shop F_Cash 139,501:50 //Не изменять тут ничего!!!!



//|=====================================================================|//

//| Конфигурация скрипта |//

//|=====================================================================|//





- script cashshop_conf -1,{

end;

OnInit:

set $@cpoint$, "Cash point";

//Указываем ваш сайт где рассказано о донате и т.п

set $@maxpoint, 20000; // Максимальное кол-во очков которое может быть у персонажа

set $@gmlvl, 99; // Минимальный уровень ГМ'а для управления поинтами

set $@npc$,"^000080[ Cash ]^000000"; // Устанавливаем Имя НПС

set $@maxInv,100; // Максимальное кол-во предметов которые может купить персонаж

set $@kickall,0; //Кикает всех персонажей после удаления всех поинтов с сервера



//|=====================================================================|//

//| Конец конфигурации скрипта |//

//|=====================================================================|//



npcshopdelitem "F_Cash",501; // Не изменять тут ничего!!!!

if (getarraysize($cash_item) >= 1) {

npcshopitem "F_Cash",$cash_item[0],$cash_price[0];

for (set .@i,1; .@i < getarraysize($cash_item); set .@i,.@i+1) {

npcshopadditem "F_Cash",$cash_item[.@i],$cash_price[.@i];

}

}

end;

}

//===Прежде чем редактировать координаты посмотрите список дубликатов в конце скрипта===//



moc_prydb1,39,121,5 script Cash 853,{



if(getgmlevel() == $@gmlvl) goto L_GM;



L_start:

mes $@npc$;

mes "Добро пожаловать в Point Shop!";

mes "Сейчас у вас:";

mes "[ ^0000FF"+#cashpoint+"^000000 ] ^FF0000"+$@cpoint$+" Очков^000000";

next;

switch(select("-Купить предметы в Point Shop:-Информация:-Уйти")) {



case 1:

close2;

callshop "F_Cash",1;

dispbottom "У вас "+#cashpoint+" "+$@cpoint$+" Очков.";

end;

case 2:

mes $@npc$;

mes "На нашем серве стоит система ^FF0000"+$@cpoint$+" Очков^000000";





close;

case 3:

close;

}



L_GM:

mes $@npc$;

mes "Здраствуйте Администратор ^0000FF"+strcharinfo(0)+"^000000";

mes "Что желаете?";

next;

switch(select("-Посмотреть список вещей в магазине:-Управление очками:-Изменить поинт шоп:-Нормальное меню")) {

case 1:

close2;

callshop "F_Cash",1;

dispbottom "У вас сейчас "+#cashpoint+" "+$@cpoint$+" Очков.";

end;

case 2:

mes $@npc$;

mes "Что желаете?";

next;

switch(select("-Дать игроку очки:-Удалить все поинты с игроков")) {

case 1:

mes $@npc$;

mes "Вы хотите игроку дать поинты?";

next;

if(select("-Нет:-Да")==2) goto L_adddonate;

goto L_canc;

L_adddonate:

mes $@npc$;

mes "Введите имя игрока.";

mes "Введите ^FF00000^000000 для отмены";

next;

input .@dname$;

if(.@dname$ == "0") goto L_canc;

if(!isloggedin(getcharid(3,.@dname$)) ) {

mes $@npc$;

mes "Игрок [ ^0000FF"+.@dname$+"^000000 ] сейчас в оффлайне.";

mes "Хотите продолжить?";

next;

if(select("-Нет:-Да")==1) close;

goto L_donating;

}

L_donating:

mes $@npc$;

mes "Сколько ^FF0000"+$@cpoint$+" Очков^000000 вы хотите дать персонажу?";

mes "Введите ^FF00000^000000 для отмены";

next;

input .@cpoint;

if(.@cpoint == 0) goto L_canc;

else if(.@cpoint > $@maxpoint) {

mes $@npc$;

mes "Максимальное кол-во ^FF0000"+$@cpoint$+"^000000 очков не должно быть больше ^FF0000"+$@maxpoint+"^000000.";

close;

}

mes $@npc$;

mes "Имя: ^FF0000"+.@dname$+"^000000";

mes "Кол-во очков которые будут у персонажа: ^FF0000"+.@cpoint+"^000000";

next;

if(select("-Отмена:-^FF0000Подтвердить^000000")==2) {

if (!isloggedin(getcharid(3,.@dname$)) ) { goto L_confirmdonate2; }

goto L_confirmdonate;

}

close;

L_confirmdonate:

if(!isloggedin(getcharid(3,.@dname$)) ) {

mes $@npc$;

mes "Процесс не удался так как ^0000FF"+@donatorname$+"^000000 в оффлайне.";

close;

}

mes $@npc$;

mes "^338C60Идет процесс отправки очков..^000000.";

mes " Дать [ ^0000FF"+.@cpoint+"^000000 ] ^FF0000"+$@cpoint$+" Очков^000000 игроку";

mes "[ ^0000FF"+.@dname$+"^000000 ]";

close2;

if(!isloggedin(getcharid(3,.@dname$)) ) {

announce "Oперация не удалась.",bc_self,0x08F8C6;

dispbottom "Игрока нет в онлайне.";

end;

}

announce "Операция удалась.",bc_self,0x08F8C6;

dispbottom "[ "+.@cpoint+" ] "+$@cpoint$+" Очков получил [ "+.@dname$+" ]";

set @RID, getcharid(3,.@dname$);

attachrid(@RID);

set #cashpoint,#cashpoint+.@cpoint;

dispbottom "Вы получили "+#cashpoint+" "+$@cpoint$+" очков.";

detachrid;

end;

L_confirmdonate2:

if (isloggedin(getcharid(3,.@dname$)) ) {

announce "Операция удалась.",bc_self,0x08F8C6;

dispbottom "[ "+.@cpoint+" ] "+$@cpoint$+" Очков получил [ "+.@dname$+" ]";

set @RID, getcharid(3,.@dname$);

attachrid(@RID);

set #cashpoint,#cashpoint+.@cpoint;

dispbottom "Вы получили "+#cashpoint+" "+$@cpoint$+" Очков.";

detachrid;

end;

}

if (getarraysize($dnames$) == 128 ) {

deletearray $dnames$[0],1;

deletearray $dpoints[0],1;

}

set $dnames$[getarraysize($dnames$)],.@dname$;

set $dpoints[getarraysize($dpoints)],.@cpoint;

mes $@npc$;

mes "[ ^0000FF"+.@cpoint+"^000000 ] ^FF0000"+$@cpoint$+" Очков^000000 игроку";

mes "[ ^0000FF"+.@dname$+"^000000 ]";

close;



case 2:

mes $@npc$;

mes "Вы уверены что хотите удалить все";

mes ""+$@cpoint$+" Очки с вашего сервера?";

next;

if(select("-Нет:-Да")==1) goto L_canc;

mes $@npc$;

mes "Все "+$@cpoint$+" Очки были удалены с сервера.";

set $clearpoints,$clearpoints+1;

close2;

switch ($@kickall) {



default:

end;

case 1:

if($@clearannounce) {

announce "Все игроки будут кикнуты из игры через 10 секунд.",bc_all;

sleep 1000;

atcommand "@kickall";

end;

}

atcommand "@kickall";

end;

case 2:

detachrid;

for ( set .@i,2000000; .@i <= 2010000; set .@i, .@i + 1 ) {

if ( .@i % 250 == 0 ) sleep 20;

if ( !attachrid(.@i) ) continue;

set #cashpoint,0;

set clearpoints,$clearpoints;

}

if($@clearannounce)

announce "Все "+$@cpoint$+" Очки были удалены с сервера Администратором.",bc_all;

}

end;

}

case 3:

mes $@npc$;

mes "Что желаете?";

next;

switch(select("Добавить Предметы:Удалить предмет:Удалить все предметы из магазина:Ничего")) {



case 1:

mes $@npc$;

mes "Пожалуйста введите ^0000FFitem id^000000 предмета который хотите добавить.";;

mes "Введите ^FF00000^000000 для отмены";

next;

input .@item;

if(.@item == 0) goto L_canc;

mes $@npc$;

mes "Предмет: ^FF0000"+getitemname(.@item)+"^000000";

mes "Теперь введите цену за которую можно будет его купить";

mes "Введите ^FF00000^000000 для отмены";

next;

input .@price;

if(.@price ==0) goto L_canc;

mes $@npc$;

mes "Предмет: ^FF0000"+getitemname(.@item)+"^000000";

mes "Цена: ^FF0000"+.@price+"^000000";

mes "Все так?";

next;

if(select("-Отмена:-Подтвердить")==1) goto L_canc;



set $cash_item[getarraysize($cash_item)],.@item;

set $cash_price[getarraysize($cash_price)],.@price;

npcshopadditem "F_Cash",.@item,.@price;

mes $@npc$;

mes "^FF0000"+getitemname(.@item)+"^000000 добавлен в поинт шоп.";

close;

case 2:

mes $@npc$;

mes "Пожалуйста введите айди предмета который хотите удалить.";

mes "Введите ^FF00000^000000 для отмены";

next;

input .@remitem;

if(.@remitem == 0) goto L_canc;

mes $@npc$;

mes "Предмет: ^FF0000"+getitemname(.@remitem)+"^000000";

mes "Хотите удалить его из магазина?";

next;

if(select("-Нет:-Да")==1) goto L_canc;

for (set @i,0; @i < getarraysize($cash_item); set @i,@i+1) {

if ($cash_item[@i] == .@remitem) {

deletearray $cash_item[@i],1;

deletearray $cash_price[@i],1;

npcshopdelitem "F_Cash",.@remitem;

mes $@npc$;

mes "^FF0000"+getitemname(.@remitem)+"^000000 удален из магазина.";

close;

} else {

mes $@npc$;

mes "^FF0000"+getitemname(.@remitem)+"^000000 не найден в списке товаров поинт шопа.";

close;

}

}

case 3:

mes $@npc$;

mes "Вы уверены что хотите удалить все предметы из магазина?";

next;

if(select("-Нет:-Да")==1) goto L_canc;



deletearray $cash_item[0],127;

deletearray $cash_price[0],127;

npcshopitem "F_Cash",501,1;

npcshopdelitem "F_Cash",501;

mes $@npc$;

mes "Все предметы были удалены из магазина.";

close;

case 4:

goto L_GM;

end;



L_canc:

mes $@npc$;

mes "Действие отменено.";

close;

}



case 4:

goto L_start;

}



//==Покупка предмета в магазине==//



OnBuyItem:

getinventorylist;

if(@inventorylist_count >= $@maxInv){

dispbottom "Вы привысили максимальное кол-во покупок.";

end;

}

for (set .@i,0; .@i < getarraysize(@bought_nameid); set .@i,.@i+1) {

if (@bought_quantity[@i] <= 0) {

end;

}

set @cost,callfunc("F_CashPrice",@bought_nameid[.@i]);

if ((@cost*@bought_quantity[.@i]) > #cashpoint) {

dispbottom "У вас не хватает "+$@cpoint$+" Очков.";

} else if (!checkweight(@bought_nameid[.@i],@bought_quantity[.@i])) {

dispbottom "Процесс покупки недоступен так как у вас перевес в инвентаре.";

} else {

set #cashpoint,#cashpoint-@cost*@bought_quantity[.@i];

getitem @bought_nameid[.@i],@bought_quantity[.@i];

dispbottom "Cпасибо за покупку!";

dispbottom "Теперь у вас "+#cashpoint+" "+$@cpoint$+" Очков.";

}

}

deletearray @bought_nameid[0],getarraysize(@bought_nameid);

deletearray @bought_quantity[0],getarraysize(@bought_quantity);

end;



//===Ничего тут не изменяем===//

OnInit:

npcshopattach "F_Cash",1;

end;



OnPCLoginEvent:

if(clearpoints != $clearpoints) {

set #cashpoint,0;

set clearpoints,$clearpoints;

}

for ( set .@i,0; .@i < getarraysize($dnames$); set .@i,.@i + 1) {

if ( $dnames$[.@i] != strcharinfo(0) ) continue;

set #cashpoint,#cashpoint + $dpoints[.@i];

deletearray $dnames$[.@i],1;

deletearray $dpoints[.@i],1;

dispbottom "У вас "+#cashpoint+" "+$@cpoint$+" очков.";

}

end;

}



function script F_CashPrice {

for (set .@i,0; .@i < getarraysize($cash_item); set .@i,.@i+1) {

if ($cash_item[.@i] == getarg(0)) {

return $cash_price[.@i];

}

}

return;

}



//Дубликаты



//prontera,141,171,4 duplicate(custom_cash) Cash#1 941

Изменено пользователем kael
  • Upvote 2
Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...
  • 1 год спустя...

У меня так стоит


- cashshop cash_shop 116,13710:300,13610:50,13611:50,14235:75,14545:150,13711:25,12910:25,13536:10,13537:15
- cashshop hat_shop 116,5225:350,5594:300,5462:300,5364:300,5314:350,5463:300,5374:300,5596:300,5325:300
- cashshop chant_shop 116,4702:300,4732:300,4742:300,4712:300,4722:300,4752:300
prontera,148,186,4 script Kafra Shop 894,{
mes "[Kafra Shop]";
mes "Here you can buy with cash points.";
mes "Details on website: ^0000FFblabla.net^000000";
mes "Contact us:";
mes "Forum (PM): ^0000FFNickname^000000";
mes "ICQ: ^0000FF666-666-666^000000";
mes "30 Cash Points = 1$ = 30 rubles";
switch(select("Items:Equip:Chant")) {
case 1:
close2;
callshop "cash_shop",1;
npcshopattach "cash_shop";
end;

case 2:
close2;
callshop "hat_shop",1;
npcshopattach "hat_shop";
end;

case 3:
close2;
callshop "chant_shop",1;
npcshopattach "chant_shop";
end;
}
}

Спасибо! всё работает безупречно!

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика