Назад

Обмен ТЦГ на поинты

Автор: 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

И что это?? xD

Автор: 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;



}


в скрипте дыра попрошу справить , когда дайош 1 тсг карту после того как он дал 1кеш поинт нажимаеш 2 раз на нпс и на 0 типо недойош нпс и он постоянно кидает по 1 поинту когда нажимаеш !!! ((( *ah*

Автор: 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:
вот магазин под етот скрипт=)


Не покупает .... Cash начисляет , но из магазина не покупает =(