Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //===== Script: ===============================================================================
- //= Secret Castle Letter Script
- //===== Copyright: ============================================================================
- //- 2010 by Innos for exRO (www.exro-online.com)
- //=============================================================================================
- //===== Coded by: =============================================================================
- //- Innos (Danke an Allen für die Hilfe beim Point Manager)
- //=============================================================================================
- //===== Script Info: ==========================================================================
- //- V 1.0 Eintausch von Secret Castle Letter gegen Gilden Punkte mit Bonus System
- //- V 1.1 Trader für den Tausch von Gilden Punkte gegen Items
- //=============================================================================================
- - script LetterTradeIn_Conf -1,{
- end;
- OnInit:
- set $LetterTradeIn_Rate,1; // 1 Castle Letter 1 Punkt ( 1ea )
- set $LetterTradeIn_Rate3,6; // 3 Castle Letter 6 Punkte ( 2ea )
- set $LetterTradeIn_Rate5,15; // 5 Castle Letter 15 Punkt ( 3ea )
- set $LetterTradeIn_Rate10,50; // 10 Castle Letter 50 Punkt ( 5ea )
- end;
- }
- //============================================================
- //======================= Point NPC ==========================
- //============================================================
- prt_gld,199,160,6 script Letter Point Manager::SCL 638,{
- set @letter,0;
- if (countitem(16074) >= 1) set @letter,@letter+1;
- if (countitem(16075) >= 1) set @letter,@letter+1;
- if (countitem(16076) >= 1) set @letter,@letter+1;
- if (countitem(16077) >= 1) set @letter,@letter+1;
- if (countitem(16078) >= 1) set @letter,@letter+1;
- if (countitem(16079) >= 1) set @letter,@letter+1;
- if (countitem(16080) >= 1) set @letter,@letter+1;
- if (countitem(16081) >= 1) set @letter,@letter+1;
- if (countitem(16082) >= 1) set @letter,@letter+1;
- if (countitem(16083) >= 1) set @letter,@letter+1;
- set @name$, "[ ^000088Letter Point Manager^000000 ]";
- set @GID,getcharid(2);
- if(@GID==0) goto L_NoGuild;
- if(strcharinfo(0)==getguildmaster(@GID)) goto L_GuildMaster;
- L_GuildMaster:
- mes @name$;
- mes "Hallo Gilden Meister der";
- mes "Gilde: ^0000FF" + strcharinfo(2) + "^000000.";
- mes "Ich schreibe dir in unserem Club Punkte für deine";
- mes "^006600Secret Castle Letter^000000 gut.";
- next;
- mes @name$;
- mes "Wir besitzen einzigartige Items die deine Gilde für den nächsten Kampf stärken.";
- mes "Es gibt verschiedene Arten an Castle Letter, jede Burg besitzt ihre eigenen.";
- next;
- mes @name$;
- mes "Du bekommst für einen Letter:";
- mes "^FF0000"+$LetterTradeIn_Rate+"^000000 Guild Points.";
- mes "Bedenke das du einen Bonus bekommst wenn du uns verschiedene Letter auf einmal bringst.";
- next;
- mes @name$;
- mes "Möchtest du mehr über den Bonus erfahren, eure Punkte einsehen oder deine Letter nun abegeben?";
- menu "Letter einlösen.",SCL_START,"Gilden Punkte einsehen.",SCL_POINTS,"Bonus System?",SCL_BONI,"Beenden.",SCL_CLOSE;
- next;
- L_NoGuild:
- mes @name$;
- mes "Tut mir leid, ich bin nur befügt mit Gilden Anführern zu sprechen.";
- mes "Sag deinem Gilden Meister bescheid das er mich aufsuchen soll.";
- close;
- SCL_CLOSE:
- mes @name$;
- mes "Komm zurück wenn du Letter eintauschen magst.";
- close;
- SCL_BONI:
- mes @name$;
- mes "Es gibt ein Punkte Bonus wenn du mir Letter aus verschiedenen Castles gleichzeitig bringst.";
- mes "Es gibt eine gewisse Staffelung, viele verschiedene Letter zeichnen deine Gilde aus,";
- mes "und dafür gewähren wir dir Extra Punkte.";
- next;
- mes @name$;
- mes "Du bekommst für...";
- mes "Für Letter von 1 Burg : ^FF0000"+$LetterTradeIn_Rate+"^000000 Guild Points.";
- mes "Für Letter von 3 Burgen: ^FF0000"+$LetterTradeIn_Rate3+"^000000 Guild Points.";
- mes "Für Letter von 5 Burgen: ^FF0000"+$LetterTradeIn_Rate5+"^000000 Guild Points.";
- mes "Für Letter von 10 Burgen: ^FF0000"+$LetterTradeIn_Rate10+"^000000 Guild Points.";
- close;
- SCL_START:
- next;
- mes @name$;
- mes "Lass mich sehen welche Letter du bei dir hast.";
- set @letter_amount,0;
- getinventorylist;
- for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1) {
- if (@inventorylist_id[.@i] > 16073 && @inventorylist_id[.@i] < 16084) {
- set @il, @inventorylist_id[.@i];
- set @letter_amount,@letter_amount+@inventorylist_amount[.@i];
- mes "^FF0000"+getitemname(@inventorylist_id[.@i])+"^000000 - "+@inventorylist_amount[.@i]+"ea.";
- set @item_ids[.@a],@inventorylist_id[.@i];
- set .@a,.@a+1;
- }
- }
- next;
- mes @name$;
- mes "Was willst du machen?" ;
- next;
- switch (select("Letter von 1 Burg abgeben:Letter von 3 Burgen abgeben:Letter von 5 Burgen abgeben:Letter von 10 Burgen abgeben:Beenden")) {
- case 1:
- if (@letter<1) goto SCL_NE;
- mes @name$;
- mes "Bist du dir ganz sicher das du 1 Secret Castle Letter abgeben willst?";
- mes "Dafür bekommst du "+$LetterTradeIn_Rate+" Gilden Punkte.";
- switch(select("Ja unbedigt:Ne lieber doch nicht")){
- case 1:
- mes @name$;
- mes "Ok hier sind deine Punkte.";
- for(set @dl,0; @dl < 1 ; set @dl,@dl+1){
- delitem @item_ids[@dl],1;
- }
- set SCLPoints,SCLPoints+1;
- mes "Aufwiedersehen";
- close;
- break;
- case 2: close; break;
- }
- case 2:
- if (@letter<3) goto SCL_NE;
- mes @name$;
- mes "Bist du dir ganz sicher das du 3 Secret Castle Letter abgeben willst?";
- mes "Dafür bekommst du "+$LetterTradeIn_Rate3+" Gilden Punkte.";
- switch(select("Ja unbedigt:Ne lieber doch nicht")){
- case 1:
- mes @name$;
- for(set @dl,0; @dl < 3 ; set @dl,@dl+1){
- delitem @item_ids[@dl],1;
- }
- mes "Ok hier sind deine Punkte.";
- set SCLPoints,SCLPoints+6;
- mes "Aufwiedersehen";
- close;
- break;
- case 2: close; break;
- }
- case 3:
- if (@letter<5) goto SCL_NE;
- mes @name$;
- mes "Bist du dir ganz sicher das du 5 Secret Castle Letter abgeben willst?";
- mes "Dafür bekommst du "+$LetterTradeIn_Rate5+" Gilden Punkte.";
- switch(select("Ja unbedigt:Ne lieber doch nicht")){
- case 1:
- mes @name$;
- mes "Ok hier sind deine Punkte.";
- for(set @dl,0; @dl < 5 ; set @dl,@dl+1){
- delitem @item_ids[@dl],1;
- }
- set SCLPoints,SCLPoints+15;
- mes "Aufwiedersehen";
- close;
- break;
- case 2: close; break;
- }
- case 4:
- if (@letter<10 ) goto SCL_NE;
- mes @name$;
- mes "Bist du dir ganz sicher das du 10 Secret Castle Letter abgeben willst?";
- mes "Dafür bekommst du "+$LetterTradeIn_Rate10+" Gilden Punkte.";
- switch(select("Ja unbedigt:Ne lieber doch nicht")){
- case 1:
- mes @name$;
- mes "Ok hier sind deine Punkte.";
- for(set @dl,0; @dl < 10 ; set @dl,@dl+1){
- delitem @item_ids[@dl],1;
- }
- set SCLPoints,SCLPoints+50;
- mes "Aufwiedersehen";
- close;
- break;
- case 2: close; break;
- }
- case 5:
- mes @name$;
- mes "Viel Spass noch.";
- close;
- break;
- }
- SCL_POINTS:
- mes "------------------";
- mes "Eure Gilde besitzt derzeit:";
- mes "^FF0000"+SCLPoints+"^000000 Gilden Punkte";
- close;
- SCL_NE:
- // NE = Not Enough
- mes @name$;
- mes "Du hast nicht genug Secret Castle Letter.";
- close;
- }
- //============================================================
- //======================= Trade NPC ==========================
- //============================================================
- prt_gld,207,165,3 script Letter Trade Manager::SCL#2 596,{
- set @name2$, "[ ^000088Letter Trade Manager^000000 ]";
- set @GID,getcharid(2);
- if(@GID==0) goto L_NoGuild_2;
- if(strcharinfo(0)==getguildmaster(@GID)) goto L_GuildMaster_2;
- L_GuildMaster_2:
- mes @name2$;
- mes "Hallo Gilden Meister der";
- mes "Gilde: ^0000FF" + strcharinfo(2) + "^000000.";
- mes "----------------------";
- mes "Eure Gilde besitzt derzeit:";
- mes "^336600"+SCLPoints+"^000000 Gilden Punkte";
- mes "----------------------";
- next;
- mes @name2$;
- mes "Ihr könnt bei mir eure Gilden Punkte gegen besondere Items eintauschen.";
- mes "Ihr könnt eure Punkte einzeln eintauschen oder direkt gegen";
- mes "^00663310^000000er, ^00663330^000000er und ^00663350^000000er Boxen.";
- next;
- mes @name2$;
- mes "Was möchtet ihr tun?";
- next;
- menu "Punkte eintauschen",SCL_TRADE,"Item Informationen",ITEM_INFO,"Derzeit nichts.",-;
- close;
- SWITCH:
- mes @name2$;
- mes "Danke, sonst noch was?";
- next;
- goto SCL_TRADE;
- SCL_TRADE:
- if (SCLPoints<1) goto NO_POINTS;
- mes @name2$;
- mes "Gilden Punkte: ^336600"+SCLPoints+"^000000";
- mes "Hier mein Angebot:";
- menu "Small Life Potion",SLP,"Medium Life Potion",MLP,"Tausch beenden.",T_CLOSE;
- // -- Small Life Potion --
- SLP:
- mes "Small Life Potion kosten ^FF00001^000000 Gilden Punkt pro Flasche.";
- mes "Wieviele Potion möchtest du?";
- next;
- switch (select(" 1 (^FF0000 -1^000000 GP):10 (^FF0000 -10^000000 GP):30 (^FF0000 -30^000000 GP):50 (^FF0000 -50^000000 GP)")) {
- case 1:
- if (SCLPoints<1) goto NO_POINTS_2;
- getitem 14534,1;
- set SCLPoints,SCLPoints-1;
- goto SWITCH;
- case 2:
- if (SCLPoints<10) goto NO_POINTS_2;
- getitem 13711,1;
- set SCLPoints,SCLPoints-10;
- goto SWITCH;
- case 3:
- if (SCLPoints<30) goto NO_POINTS_2;
- getitem 13712,1;
- set SCLPoints,SCLPoints-30;
- goto SWITCH;
- case 4:
- if (SCLPoints<50) goto NO_POINTS_2;
- getitem 13713,1;
- set SCLPoints,SCLPoints-50;
- goto SWITCH;
- }
- // -- Medium Life Potion --
- MLP:
- mes "Medium Life Potion kosten ^FF00002^000000 Gilden Punkte pro Flasche.";
- mes "Wieviele Potion möchtest du?";
- next;
- switch (select(" 1 (^FF0000 -2^000000 GP):10 (^FF0000 -20^000000 GP):30 (^FF0000 -60^000000 GP):50 (^FF0000-100^000000 GP)")) {
- case 1:
- if (SCLPoints<1) goto NO_POINTS_2;
- getitem 14535,1;
- set SCLPoints,SCLPoints-1;
- goto SWITCH;
- case 2:
- if (SCLPoints<10) goto NO_POINTS_2;
- getitem 13714,1;
- set SCLPoints,SCLPoints-10;
- goto SWITCH;
- case 3:
- if (SCLPoints<30) goto NO_POINTS_2;
- getitem 13715,1;
- set SCLPoints,SCLPoints-30;
- goto SWITCH;
- case 4:
- if (SCLPoints<50) goto NO_POINTS_2;
- getitem 13716,1;
- set SCLPoints,SCLPoints-50;
- goto SWITCH;
- }
- //========== Item Info Bereich ================
- ITEM_INFO:
- mes @name2$;
- mes "Über welches Item?";
- next;
- switch (select("Small Life Potion:Medium Life Potion:Beenden")) {
- case 1:
- mes @name2$;
- mes "Eine kleine Flasche vom Yggdrasil Baum, der in der Heilung von Wunden wirksam ist. Regeneriert 5 Minuten lang alle 5 Sekunden 3 % der Maximalen HP. Kann nicht im Berserk verwendet werden.";
- next;
- goto ITEM_INFO;
- case 2:
- mes @name2$;
- mes "Eine kleine Flasche vom Yggdrasil Baum, der in der Heilung von Wunden wirksam ist. Regeneriert 5 Minuten lang alle 4 Sekunden 5 % der Maximalen HP. Kann nicht im Berserk verwendet werden.";
- next;
- goto ITEM_INFO;
- case 3:
- mes @name2$;
- mes "Ich hoffe ich konnte dir weiter helfen.";
- next;
- goto L_GuildMaster_2;
- }
- //========== Allgemeine Labels ================
- T_CLOSE:
- mes @name2$;
- mes "Vielen Dank. Komm bald wieder.";
- close;
- C_close:
- mes @name2$;
- mes "Komm wieder wenn du es dir anders überlegt hast.";
- close;
- L_NoGuild_2:
- mes @name2$;
- mes "Tut mir leid, ich bin nur befügt mit Gilden Anführern zu sprechen.";
- mes "Sag deinem Gilden Meister bescheid das er mich aufsuchen soll.";
- close;
- NO_POINTS:
- mes @name2$;
- mes "Du hast das System aber verstanden oder ?!";
- mes "Keine Punkte = Keine Items.";
- mes "Komm wieder wenn deine Gilde über Gilden Punkte verfügt.";
- close;
- NO_POINTS_2:
- mes @name2$;
- mes "Dafür hast du leider nicht mehr genug Punkte übrig.";
- close;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement