Автор: JZTRON: Дата: 05.03.2009
Может кому надо:)
quiz_02.gat,307,253,6 script Обмен 112,{
npcspeed 150;
mes"[Обмен]";
mes "Привет "+strcharinfo(0)+"";
mes "Я могу обменять 1 тцг карту на 10 поинтов.";
mes "(За эти поинты можно купить любой кастом)";
next;
mes ""+strcharinfo(0)+", Ты согласен??";
next;
menu "Да я согласен",L_Ok,"У меня нету столько =(",L_Close;
L_Ok:
mes "[Обмен]";
mes "Показывай свои ТЦГ:";
next;
if (countitem(7227) < 1) goto L_noitem;
mes "[Обмен]";
mes "Вот твои кафра поинты.";
delitem 7227,1;
atcommand "@cash 1"+@a;
close;
L_noitem:
mes "[Обмен]";
mes "Как только у тебя будет 1 ТЦГ приходи.";
close;
L_Close:
mes "[Обмен]";
mes "Ну не хочешь, как хочешь.";
close;
}
Автор: hitman17: Дата: 06.04.2009
А можете сделать НПЦ который продаёт за эти поинты вещи?
Автор: answer: Дата: 06.04.2009
Элементарный пример
prontera.gat,168,178,2 cashshop UWA Shop 90,15007:2
Автор: hitman17: Дата: 06.04.2009
Originally posted by answer;12088
Элементарный пример
prontera.gat,168,178,2 cashshop UWA Shop 90,15007:2
Автор: Fallen angel: Дата: 06.04.2009
Originally posted by hitman17;12096
И что это?? xD
Автор: xDi2x: Дата: 06.04.2009
а может обьяснишь, что значит UWA?? cashpoint это понятно))
Автор: Gira: Дата: 06.04.2009
по всей видимости название магазина=)
Автор: xDi2x: Дата: 06.04.2009
Блин, кто нибудь расскажите как писать магазины для этого кэш шоп)
Автор: Gira: Дата: 06.04.2009
а што там непоятнова то даже я понял..
prontera.gat,168,178,2 cashshop UWA Shop 90,15007:2
prontera.gat,168,178,2//координаты
cashshop//как я понял ет за какую валюту,тоесть каш поинты (ps:если shop то за зени)
UWA Shop 90//название магаза и ево вид
15007:2//id придмета и ево цена
Автор: xDi2x: Дата: 06.04.2009
я то магаз уже написал, но когда покупаю, пишет, что информация недействительна (incorrect) =(
Автор: Gira: Дата: 06.04.2009
вещь не можеш купить?
Автор: xDi2x: Дата: 06.04.2009
да(
Автор: Gira: Дата: 06.04.2009
знач не те каш поинты=)
@cash 50
Автор: xDi2x: Дата: 06.04.2009
плин, кашпоинты зачисляются)
ВОТ ОШИБКА
Распишите, как создавать эти дурацкие МАГАЗИНЫ
=============================================================
НАШЕЛ проблема в файлах num2itemdesctable_ И idnum2itemdesctable!!!!! в этих файлах описание должно совпадать)
Как согласовать каш поинты, которые ты получаешь от нпц с cashshop
Автор: Gira: Дата: 06.04.2009
и у тя яблоко продаеца? и id ты тоже поставил 15007?=))
Автор: xDi2x: Дата: 06.04.2009
нет я поставил 501 красное зелье)
Повторяю как согласовать этот магазин с cashshop
Автор: NesterRo: Дата: 06.04.2009
Ребят , а серьёзно дайте скрипт кастом шопа ! , или он есть в афине ?
Автор: Cole McCormick: Дата: 06.04.2009
их полно, но ид итемов серавно менять придеца
Автор: NesterRo: Дата: 06.04.2009
итемы своих кастомов ято вставлю ! , ты мне дай сам нпс ато я хз где они есть )
Автор: Gira: Дата: 06.04.2009
npc\merchants\cash_trader.txt
Автор: NesterRo: Дата: 06.04.2009
Originally posted by 'Dis[IP
;9830']Не совсем понравился скрипт а точней его структура..С утра решил написать свою версию..В ней есть возможность ввода кол-ва обмениваемых тцг,да и думаю это очень удобно,а то постоянно тыкать на НПС не особо приятно.
//Created by Dis[IP]
///////////////////////
prontera,140,180,5 script Cash Dealer 811,{
set .npc$,"[Cash Dealer]";
set $@cpoint$, "Cash";
mes .npc$;
mes "Здраствуйте,"+strcharinfo(0)+"!Хотите обменять свои тцг карты на кэш поинты?";
if(select("Да", "Нет") == 1) goto obmen;
else goto end;
obmen:
mes .npc$;
mes "Введите кол-во ТЦГ карт,которые хотите обменять на поинты:";
input @cpoint;
mes .npc$;
mes "*Идет процесс по обмену ТЦГ карт на кэш поинты*";
next;
if(@cpoint > 5000) goto badammount;
if(countitem(7227) < 1*@cpoint) goto notcg;
delitem 7227, 1*@cpoint;
set #cashpoint,#cashpoint+@cpoint;
dispbottom "Вы получили "+#cashpoint+" "+$@cpoint$+" Points.";
close;
end;
close;
badammount:
mes .npc$;
mes "Я не могу вам дать больше 5000 кэш поинтов..Выберите число поменьше!";
close;
notcg:
mes .npc$;
mes "А где ТЦГ то?Обманщик!";
next;
percentheal -100,100;
close;
}
Автор: Gira: Дата: 06.04.2009
то не баг и не дыра=)
ток типо говорит скок у тя всево каш поинтов тоесть типо баланс
Автор: NesterRo: Дата: 06.04.2009
он говорит вы получили 7 кеш поинтов ! сам проверь ! =)
Автор: NesterRo: Дата: 06.04.2009
а да действительно извеняюсь )))
токо что за хня , обменял тсг на єти поинты ..... но захожу в кафру шоп и немогу неф купить что за бред ?
Автор: NesterRo: Дата: 06.04.2009
перепишите пожалуйста скрипт чтоб нпс довало @cash вот такие поинты ато те поинты что у нпс их нельзя обменять у кафры шо только @cash
Автор: DiS[IP]: Дата: 06.05.2009
Кэш Поинты и Кафра Поинты это немного разные вещи.Если тебе уж так нужны кафра поинты то вместо #cashpoint поставь #kafrapoint.А cash тут и так уже стоит.
Автор: xDi2x: Дата: 06.05.2009
он неработает, пршлось почему-то ставить первый скрипт
Автор: DiS[IP]: Дата: 06.05.2009
Все работает идеально.Как у меня,так и у моих друзей.Про руки говорить ничего не буду.
Автор: NesterRo: Дата: 06.05.2009
что-то умя нефига неполучаетса , можеш написать скрипт на кафра поинты или тут поменяй и скинь сюды плизз
Автор: xDi2x: Дата: 06.05.2009
Dis[IP] руки по установке скриптов у меня как раз то выпрямленные, дело в том что он рабочий, но когда я покупаю в этом магазине очки, они не являются средством покупки в CASHSHOP
Автор: Gira: Дата: 06.05.2009
вот магазин под етот скрипт=)
//|-----------------------------------------------------------------------------|//
//|[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;
}
//===Прежде чем редактировать координаты посмотрите список дубликатов в конце скрипта===//
prontera,136,161,6 script Cash 608,{
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
Автор: NesterRo: Дата: 06.05.2009
надеюсь скрипт рабочий и без дыр ))
Автор: Gira: Дата: 06.05.2009
я тоже надеюсь=)
Автор: NesterRo: Дата: 06.05.2009
сцуко !!!
мне так понравилса скрипт , но єто не то что я хотел !!
когда ставиш в нпс шмотки продовать типо в магазин они стоят за зени , а когда покупаеш их за зени всёравно непокупаютса и вопще я думал тут за поинты будет есть что-то другое ??
Автор: Gira: Дата: 06.06.2009
там и есть за поинты=)
Автор: LoveFantasy: Дата: 06.06.2009
Отлично пашет!
Автор: hitman17: Дата: 06.06.2009
Можите сказать ид поинтов или в чом они там указаны??
И добавляю вещи недобавляются мб нетуда добавляю покажите куда нуна!!
Автор: DiS[IP]: Дата: 06.06.2009
Сделай команду:on Brain And Hands и все станет ясно.Скрипт же вроде как на русском и разобраться можно запросто,хотя бы методом тыка.
P.S:Айди у поинтов не бывают *crazy*
Автор: MaHapX: Дата: 02.04.2010
Цитата Gira;8775:
вот магазин под етот скрипт=)