Advertisement
Innos

Secret Castle Letter (Beta)

Sep 29th, 2011
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 11.50 KB | None | 0 0
  1. //===== Script: ===============================================================================
  2. //= Secret Castle Letter Script
  3. //===== Copyright: ============================================================================
  4. //- 2010 by Innos for exRO (www.exro-online.com)
  5. //=============================================================================================
  6. //===== Coded by: =============================================================================
  7. //- Innos    (Danke an Allen für die Hilfe beim Point Manager)
  8. //=============================================================================================
  9. //===== Script Info: ==========================================================================
  10. //- V 1.0 Eintausch von Secret Castle Letter gegen Gilden Punkte mit Bonus System
  11. //- V 1.1 Trader für den Tausch von Gilden Punkte gegen Items
  12. //=============================================================================================
  13.  
  14.  
  15. -   script  LetterTradeIn_Conf  -1,{
  16.     end;
  17.  
  18. OnInit:
  19.  
  20.     set $LetterTradeIn_Rate,1;  // 1 Castle Letter 1 Punkt ( 1ea )
  21.         set $LetterTradeIn_Rate3,6; // 3 Castle Letter 6 Punkte ( 2ea )
  22.             set $LetterTradeIn_Rate5,15;    // 5 Castle Letter 15 Punkt ( 3ea )
  23.                 set $LetterTradeIn_Rate10,50;   // 10 Castle Letter 50 Punkt ( 5ea )
  24.     end;
  25. }
  26.  
  27. //============================================================
  28. //======================= Point NPC ==========================
  29. //============================================================
  30.  
  31. prt_gld,199,160,6   script  Letter Point Manager::SCL   638,{
  32.  
  33.     set @letter,0;
  34.     if (countitem(16074) >= 1) set @letter,@letter+1;
  35.     if (countitem(16075) >= 1) set @letter,@letter+1;
  36.     if (countitem(16076) >= 1) set @letter,@letter+1;
  37.     if (countitem(16077) >= 1) set @letter,@letter+1;
  38.     if (countitem(16078) >= 1) set @letter,@letter+1;
  39.     if (countitem(16079) >= 1) set @letter,@letter+1;
  40.     if (countitem(16080) >= 1) set @letter,@letter+1;
  41.     if (countitem(16081) >= 1) set @letter,@letter+1;
  42.     if (countitem(16082) >= 1) set @letter,@letter+1;
  43.     if (countitem(16083) >= 1) set @letter,@letter+1;
  44.  
  45. set @name$, "[ ^000088Letter Point Manager^000000 ]";
  46.  
  47.         set @GID,getcharid(2);
  48.         if(@GID==0) goto L_NoGuild;
  49.         if(strcharinfo(0)==getguildmaster(@GID)) goto L_GuildMaster;
  50.  
  51. L_GuildMaster:
  52.  
  53.     mes @name$;
  54.     mes "Hallo Gilden Meister der";
  55.     mes "Gilde: ^0000FF" + strcharinfo(2) + "^000000.";
  56.     mes "Ich schreibe dir in unserem Club Punkte für deine";
  57.     mes "^006600Secret Castle Letter^000000 gut.";
  58.     next;
  59.     mes @name$;
  60.     mes "Wir besitzen einzigartige Items die deine Gilde für den nächsten Kampf stärken.";
  61.     mes "Es gibt verschiedene Arten an Castle Letter, jede Burg besitzt ihre eigenen.";
  62.     next;
  63.     mes @name$;
  64.     mes "Du bekommst für einen Letter:";
  65.     mes "^FF0000"+$LetterTradeIn_Rate+"^000000 Guild Points.";
  66.     mes "Bedenke das du einen Bonus bekommst wenn du uns verschiedene Letter auf einmal bringst.";
  67.     next;
  68.     mes @name$;
  69.     mes "Möchtest du mehr über den Bonus erfahren, eure Punkte einsehen oder deine Letter nun abegeben?";
  70.     menu "Letter einlösen.",SCL_START,"Gilden Punkte einsehen.",SCL_POINTS,"Bonus System?",SCL_BONI,"Beenden.",SCL_CLOSE;
  71.     next;
  72.  
  73. L_NoGuild:
  74.     mes @name$;
  75.     mes "Tut mir leid, ich bin nur befügt mit Gilden Anführern zu sprechen.";
  76.     mes "Sag deinem Gilden Meister bescheid das er mich aufsuchen soll.";
  77.     close;
  78.  
  79. SCL_CLOSE:
  80.     mes @name$;
  81.     mes "Komm zurück wenn du Letter eintauschen magst.";
  82.     close;
  83.  
  84. SCL_BONI:
  85.     mes @name$;
  86.     mes "Es gibt ein Punkte Bonus wenn du mir Letter aus verschiedenen Castles gleichzeitig bringst.";
  87.     mes "Es gibt eine gewisse Staffelung, viele verschiedene Letter zeichnen deine Gilde aus,";
  88.     mes "und dafür gewähren wir dir Extra Punkte.";
  89.     next;
  90.     mes @name$;
  91.     mes "Du bekommst für...";
  92.     mes "Für Letter von  1 Burg  : ^FF0000"+$LetterTradeIn_Rate+"^000000 Guild Points.";
  93.     mes "Für Letter von  3 Burgen: ^FF0000"+$LetterTradeIn_Rate3+"^000000 Guild Points.";
  94.     mes "Für Letter von  5 Burgen: ^FF0000"+$LetterTradeIn_Rate5+"^000000 Guild Points.";
  95.     mes "Für Letter von 10 Burgen: ^FF0000"+$LetterTradeIn_Rate10+"^000000 Guild Points.";
  96.     close;
  97.  
  98. SCL_START:
  99.     next;
  100.     mes @name$;
  101.     mes "Lass mich sehen welche Letter du bei dir hast.";
  102.     set @letter_amount,0;
  103.  
  104.     getinventorylist;
  105.     for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1) {
  106.         if (@inventorylist_id[.@i] > 16073 && @inventorylist_id[.@i] < 16084) {
  107.             set @il, @inventorylist_id[.@i];
  108.             set @letter_amount,@letter_amount+@inventorylist_amount[.@i];
  109.             mes "^FF0000"+getitemname(@inventorylist_id[.@i])+"^000000 - "+@inventorylist_amount[.@i]+"ea.";
  110.             set @item_ids[.@a],@inventorylist_id[.@i];
  111.             set .@a,.@a+1;
  112.         }
  113.     }
  114.  
  115.     next;
  116.     mes @name$;
  117.     mes "Was willst du machen?" ;
  118.     next;
  119. switch (select("Letter von 1 Burg abgeben:Letter von 3 Burgen abgeben:Letter von 5 Burgen abgeben:Letter von 10 Burgen abgeben:Beenden")) {
  120.  
  121. case 1:
  122. if (@letter<1) goto SCL_NE;
  123.     mes @name$;
  124.     mes "Bist du dir ganz sicher das du 1 Secret Castle Letter abgeben willst?";
  125.     mes "Dafür bekommst du "+$LetterTradeIn_Rate+" Gilden Punkte.";
  126.     switch(select("Ja unbedigt:Ne lieber doch nicht")){
  127.     case 1:
  128.             mes @name$;
  129.             mes "Ok hier sind deine Punkte.";
  130.             for(set @dl,0; @dl < 1 ; set @dl,@dl+1){
  131.             delitem @item_ids[@dl],1;
  132.             }
  133.             set SCLPoints,SCLPoints+1;
  134.             mes "Aufwiedersehen";
  135.             close;
  136.             break;
  137.  
  138.     case 2:     close; break;
  139.  
  140.     }
  141. case 2:
  142. if (@letter<3) goto SCL_NE;
  143.     mes @name$;
  144.     mes "Bist du dir ganz sicher das du 3 Secret Castle Letter abgeben willst?";
  145.     mes "Dafür bekommst du "+$LetterTradeIn_Rate3+" Gilden Punkte.";
  146.     switch(select("Ja unbedigt:Ne lieber doch nicht")){
  147.     case 1:
  148.             mes @name$;
  149.             for(set @dl,0; @dl < 3 ; set @dl,@dl+1){
  150.             delitem @item_ids[@dl],1;
  151.             }
  152.             mes "Ok hier sind deine Punkte.";
  153.             set SCLPoints,SCLPoints+6;
  154.             mes "Aufwiedersehen";
  155.             close;
  156.             break;
  157.     case 2: close; break;
  158.     }
  159.  
  160. case 3:
  161. if (@letter<5) goto SCL_NE;
  162.     mes @name$;
  163.     mes "Bist du dir ganz sicher das du 5 Secret Castle Letter abgeben willst?";
  164.     mes "Dafür bekommst du "+$LetterTradeIn_Rate5+" Gilden Punkte.";
  165.     switch(select("Ja unbedigt:Ne lieber doch nicht")){
  166.     case 1:
  167.             mes @name$;
  168.             mes "Ok hier sind deine Punkte.";
  169.             for(set @dl,0; @dl < 5 ; set @dl,@dl+1){
  170.             delitem @item_ids[@dl],1;
  171.             }
  172.             set SCLPoints,SCLPoints+15;
  173.             mes "Aufwiedersehen";
  174.             close;
  175.             break;
  176.     case 2: close; break;
  177.     }
  178.  
  179. case 4:
  180. if (@letter<10 ) goto SCL_NE;
  181.     mes @name$;
  182.     mes "Bist du dir ganz sicher das du 10 Secret Castle Letter abgeben willst?";
  183.     mes "Dafür bekommst du "+$LetterTradeIn_Rate10+" Gilden Punkte.";
  184.     switch(select("Ja unbedigt:Ne lieber doch nicht")){
  185.     case 1:
  186.             mes @name$;
  187.             mes "Ok hier sind deine Punkte.";
  188.             for(set @dl,0; @dl < 10 ; set @dl,@dl+1){
  189.             delitem @item_ids[@dl],1;
  190.             }
  191.             set SCLPoints,SCLPoints+50;
  192.             mes "Aufwiedersehen";
  193.             close;
  194.             break;
  195.     case 2: close; break;
  196.     }
  197.  
  198. case 5:
  199.     mes @name$;
  200.     mes "Viel Spass noch.";
  201.     close;
  202.     break;
  203.  
  204.         }
  205.  
  206. SCL_POINTS:
  207.     mes "------------------";
  208.     mes "Eure Gilde besitzt derzeit:";
  209.     mes "^FF0000"+SCLPoints+"^000000 Gilden Punkte";
  210.     close;
  211.  
  212. SCL_NE:
  213.         // NE = Not Enough
  214.     mes @name$;
  215.     mes "Du hast nicht genug Secret Castle Letter.";
  216.         close;
  217.  
  218. }
  219.  
  220. //============================================================
  221. //======================= Trade NPC ==========================
  222. //============================================================
  223.  
  224. prt_gld,207,165,3   script  Letter Trade Manager::SCL#2 596,{
  225.  
  226. set @name2$, "[ ^000088Letter Trade Manager^000000 ]";
  227.  
  228.         set @GID,getcharid(2);
  229.         if(@GID==0) goto L_NoGuild_2;
  230.         if(strcharinfo(0)==getguildmaster(@GID)) goto L_GuildMaster_2;
  231.  
  232. L_GuildMaster_2:
  233.     mes @name2$;
  234.     mes "Hallo Gilden Meister der";
  235.     mes "Gilde: ^0000FF" + strcharinfo(2) + "^000000.";
  236.     mes "----------------------";
  237.     mes "Eure Gilde besitzt derzeit:";
  238.     mes "^336600"+SCLPoints+"^000000 Gilden Punkte";
  239.     mes "----------------------";
  240.     next;
  241.     mes @name2$;
  242.     mes "Ihr könnt bei mir eure Gilden Punkte gegen besondere Items eintauschen.";
  243.     mes "Ihr könnt eure Punkte einzeln eintauschen oder direkt gegen";
  244.     mes "^00663310^000000er, ^00663330^000000er und ^00663350^000000er Boxen.";
  245.     next;
  246.     mes @name2$;
  247.     mes "Was möchtet ihr tun?";
  248.     next;
  249.     menu "Punkte eintauschen",SCL_TRADE,"Item Informationen",ITEM_INFO,"Derzeit nichts.",-;
  250.     close;
  251.  
  252. SWITCH:
  253.     mes @name2$;
  254.     mes "Danke, sonst noch was?";
  255.     next;
  256.     goto SCL_TRADE;
  257.  
  258. SCL_TRADE:
  259. if (SCLPoints<1) goto NO_POINTS;
  260.     mes @name2$;
  261.     mes "Gilden Punkte: ^336600"+SCLPoints+"^000000";
  262.     mes "Hier mein Angebot:";
  263.     menu "Small Life Potion",SLP,"Medium Life Potion",MLP,"Tausch beenden.",T_CLOSE;
  264.  
  265.  
  266. // -- Small Life Potion --
  267. SLP:
  268.     mes "Small Life Potion kosten ^FF00001^000000 Gilden Punkt pro Flasche.";
  269.     mes "Wieviele Potion möchtest du?";
  270.     next;
  271. switch (select("  1 (^FF0000   -1^000000 GP):10 (^FF0000 -10^000000 GP):30 (^FF0000 -30^000000 GP):50 (^FF0000 -50^000000 GP)")) {
  272. case 1:
  273. if (SCLPoints<1) goto NO_POINTS_2;
  274.     getitem 14534,1;
  275.     set SCLPoints,SCLPoints-1;
  276.     goto SWITCH;
  277. case 2:
  278. if (SCLPoints<10) goto NO_POINTS_2;
  279.     getitem 13711,1;
  280.     set SCLPoints,SCLPoints-10;
  281.     goto SWITCH;
  282. case 3:
  283. if (SCLPoints<30) goto NO_POINTS_2;
  284.     getitem 13712,1;
  285.     set SCLPoints,SCLPoints-30;
  286.     goto SWITCH;
  287. case 4:
  288. if (SCLPoints<50) goto NO_POINTS_2;
  289.     getitem 13713,1;
  290.     set SCLPoints,SCLPoints-50;
  291.     goto SWITCH;
  292. }
  293.  
  294. // -- Medium Life Potion --
  295. MLP:
  296.     mes "Medium Life Potion kosten ^FF00002^000000 Gilden Punkte pro Flasche.";
  297.     mes "Wieviele Potion möchtest du?";
  298.     next;
  299. switch (select("  1 (^FF0000   -2^000000 GP):10 (^FF0000 -20^000000 GP):30 (^FF0000 -60^000000 GP):50 (^FF0000-100^000000 GP)")) {
  300. case 1:
  301. if (SCLPoints<1) goto NO_POINTS_2;
  302.     getitem 14535,1;
  303.     set SCLPoints,SCLPoints-1;
  304.     goto SWITCH;
  305. case 2:
  306. if (SCLPoints<10) goto NO_POINTS_2;
  307.     getitem 13714,1;
  308.     set SCLPoints,SCLPoints-10;
  309.     goto SWITCH;
  310. case 3:
  311. if (SCLPoints<30) goto NO_POINTS_2;
  312.     getitem 13715,1;
  313.     set SCLPoints,SCLPoints-30;
  314.     goto SWITCH;
  315. case 4:
  316. if (SCLPoints<50) goto NO_POINTS_2;
  317.     getitem 13716,1;
  318.     set SCLPoints,SCLPoints-50;
  319.     goto SWITCH;
  320. }
  321.  
  322.  
  323.  
  324. //========== Item Info Bereich ================
  325.  
  326. ITEM_INFO:
  327.     mes @name2$;
  328.     mes "Über welches Item?";
  329.     next;
  330.     switch (select("Small Life Potion:Medium Life Potion:Beenden")) {
  331.  
  332. case 1:
  333.     mes @name2$;
  334.     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.";
  335.     next;
  336.     goto ITEM_INFO;
  337.  
  338. case 2:
  339.     mes @name2$;
  340.     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.";
  341.     next;
  342.     goto ITEM_INFO;
  343.  
  344. case 3:
  345.     mes @name2$;
  346.     mes "Ich hoffe ich konnte dir weiter helfen.";
  347.     next;
  348.     goto L_GuildMaster_2;
  349. }
  350.  
  351. //========== Allgemeine Labels ================
  352.  
  353. T_CLOSE:
  354.     mes @name2$;
  355.     mes "Vielen Dank. Komm bald wieder.";
  356.     close;
  357.  
  358. C_close:
  359.     mes @name2$;
  360.     mes "Komm wieder wenn du es dir anders überlegt hast.";
  361.     close;
  362.  
  363. L_NoGuild_2:
  364.     mes @name2$;
  365.     mes "Tut mir leid, ich bin nur befügt mit Gilden Anführern zu sprechen.";
  366.     mes "Sag deinem Gilden Meister bescheid das er mich aufsuchen soll.";
  367.     close;
  368.  
  369. NO_POINTS:
  370.     mes @name2$;
  371.     mes "Du hast das System aber verstanden oder ?!";
  372.     mes "Keine Punkte = Keine Items.";
  373.     mes "Komm wieder wenn deine Gilde über Gilden Punkte verfügt.";
  374.     close;
  375.  
  376. NO_POINTS_2:
  377.     mes @name2$;
  378.     mes "Dafür hast du leider nicht mehr genug Punkte übrig.";
  379.     close;
  380.  
  381. }
  382.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement