Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //===== Custom Script =============================================================
- //= Whitesmith Handwerks System
- //===== By: =======================================================================
- //= INNOS for exRo 2009 (www.exro-online.com)
- //===== Current Version: ==========================================================
- //= 1.0 First Version. [INNOS]
- //=================================================================================
- //===== Info Table: ===============================================================
- //= 1.0 Handwerks NPC für Whitesmith
- //=================================================================================
- //===== Features: =================================================================
- //= Topliste der besten Whitesmith.
- //= Für jedes hergestellte Item gibt es einen Handwerkerpunkt.
- //= Je höher der Handwerker Level, desto einfacher & billiger ist das erstellen.
- //=================================================================================
- // Handwerk Variable set handwerk, handwerk +1;
- // Whitesmith muss sich für die Gilde anmelden und wird in die Handwerk Table eingetragen
- //=================================================================================
- exro,41,31,4 script Gilden Meister 63,{
- set .@npcname$, "[^006600 Gilden Meister ^000000]";
- if( Class == Job_Whitesmith && JobLevel >= 75 ){
- mes .@npcname$;
- mes "Hallo " + StrCharInfo( 0 ) + ".";
- mes "Willkommen in der Handwerks Gilde. Ich sehe du bist ein gelernter Whitesmith und hast deinen maximalen Job Level erreicht.";
- next;
- mes .@npcname$;
- mes "Du kannst daher unsere Werkbank benutzen und einige besondere Sachen herstellen.";
- next;
- mes .@npcname$;
- mes "Ebenso bekommst du von mir ^0000FFGold Hammer^000000, die du zum erstellen benötigst.";
- next;
- if( Select( "Nichts", "Einkaufen" ) == 1 )
- close;
- } else {
- mes .@npcname$;
- mes "Hallo " + StrCharInfo( 0 ) + ".";
- mes "Willkommen in der Handwerks Gilde.";
- mes "Ich bin der Berater für den Whitesmith Beruf. Ich berate nur Whitesmith die ihren maximalen Job Level erreicht haben.";
- close;
- }
- set .@i, CallFunc( "F_HW_GetVar" );
- setArray( .@NeedID, 26000, 26000, 26000, 26000, 26000, 26000, 26000 );
- setArray( .@NeedCount, 7, 6, 5, 4, 3, 2, 1 );
- mes .@npcname$;
- mes "Du benötigst einen ^0000FFGold Hammer^000000?";
- mes "Ich kann dir einen verkaufen.";
- if (handwerk >= 0 && handwerk <= 2) mes "Deine Stufe ist:^008800 Anfänger ^000000";
- if (handwerk >= 3 && handwerk <= 9) mes "Deine Stufe ist:^008800 Lehrling ^000000";
- if (handwerk >= 10 && handwerk <= 24) mes "Deine Stufe ist:^008800 Geselle ^000000";
- if (handwerk >= 25 && handwerk <= 49) mes "Deine Stufe ist:^008800 Handwerker ^000000";
- if (handwerk >= 50 && handwerk <= 99) mes "Deine Stufe ist:^008800 Erfahrener Handwerker ^000000";
- if (handwerk >= 100 && handwerk <= 199) mes "Deine Stufe ist:^008800 Profi Handwerker ^000000";
- if (handwerk >= 200) mes "Deine Stufe ist:^008800 Handwerks Meister ^000000";
- mes "Für dich kostet er... sagen wir... ^0000FF" + .@NeedCount[ .@i ] + "^000000 ^FF0000" + GetItemName( .@NeedID[ .@i ] ) + "^000000.";
- next;
- if( Select( "Einverstanden", "Nein, danke." ) == 2 )
- close;
- if( CountItem( .@NeedID[ .@i ] ) < .@NeedCount[ .@i ] ){
- mes .@npcname$;
- mes "Du hast nicht genug ^FF0000" + GetItemName( .@NeedID[ .@i ] ) + "'s^000000 dafür.";
- close;
- }
- DelItem( .@NeedID[ .@i ], .@NeedCount[ .@i ] );
- GetItem( 7808, 1 );
- close;
- }
- exro,61,29,4 script Werkbank 111,{
- set .@npcname$, "[^006600 Werkbank ^000000]";
- set .@handVar, CallFunc( "F_HW_GetVar" );
- SetArray( .@Chance, 10, 9, 8, 7, 6, 5, 3 );
- if( Class != Job_Whitesmith || JobLevel < 75 ){
- mes .@npcname$;
- mes "^FF0000*Das kannst du nicht benutzen*^000000";
- close;
- }
- mes .@npcname$;
- mes "Aus welche Kategorie möchtest du ein Objekt erstellen?";
- next;
- menu "Barren herstellen.",hw_barren,"Runen herstellen.",hw_runen,"Headgears herstellen.",hw_headg,"Godlike Valkyrie",hw_glv,"Nichts...",-;
- close;
- hw_glv:
- mes .@npcname$;
- mes "Welches Equip Teil möchstest du aufwerten?";
- next;
- set .vgl$,"---";
- switch (select("Valkyrie Armor","Valkyrie Shoes","Valkyrie Manteu")) {
- case 1:
- set .vgl$,"Armor";
- set .vgldelete,2357;
- goto hw_glv2;
- case 2:
- set .vgl$,"Shoes";
- set .vgldelete,2421;
- goto hw_glv2;
- case 3:
- set .vgl$,"Manteu";
- set .vgldelete,2524;
- goto hw_glv2;
- }
- hw_glv2:
- mes .@npcname$;
- mes "Godlike Valkyrie ^6600CC"+.vgl$+"^000000";
- mes "Mit welchen Status soll es erschaffen werden?";
- next;
- set .vglc$,"---";
- switch (select("Black [STR]","Blue [AGI]","Green [VIT]","Purple [INT]","Red [DEX]","White [LUK]")) {
- case 1:
- set .vglc$,"Black";
- goto hw_glv3;
- case 2:
- set .vglc$,"Blue";
- goto hw_glv3;
- case 3:
- set .vglc$,"Green";
- goto hw_glv3;
- case 4:
- set .vglc$,"Purple";
- goto hw_glv3;
- case 5:
- set .vglc$,"Red";
- goto hw_glv3;
- case 6:
- set .vglc$,"White";
- goto hw_glv3;
- }
- hw_glv3:
- mes .@npcname$;
- mes "Ok, du möchtest also ^6600CC"+.vglc$+"^000000 Godlike Valkyrie ^6600CC"+.vgl$+"^000000 herstellen?";
- next;
- switch (select("Ja !","Nein !")) {
- case 1:
- goto hw_glv4;
- case 2:
- set .vgl$,"---";
- set .vglc$,"---";
- close;
- }
- hw_glv4:
- //check
- if ( .vgl$ == "Armor" && countitem(2357) >= 1 && countitem(6024) >= 1 && countitem(7024) >= 1 && countitem(6223) >= 1 && countitem(7228) >= 1 && countitem(7808) >= 1){goto hw_glv5;}else{goto hw_glvNO;}
- if ( .vgl$ == "Shoes" && countitem(2421) >= 1 && countitem(6024) >= 1 && countitem(7024) >= 1 && countitem(6223) >= 1 && countitem(7228) >= 1 && countitem(7808) >= 1){goto hw_glv5;}else{goto hw_glvNO;}
- if ( .vgl$ == "Manteu" && countitem(2524) >= 1 && countitem(6024) >= 1 && countitem(7024) >= 1 && countitem(6223) >= 1 && countitem(7228) >= 1 && countitem(7808) >= 1){goto hw_glv5;}else{goto hw_glvNO;}
- hw_glv5:
- set .vglitem,0;
- if ( .vgl$ == "Armor" && .vglc$ == "Black") {set .vglitem,29001;}
- if ( .vgl$ == "Armor" && .vglc$ == "Blue") {set .vglitem,29004;}
- if ( .vgl$ == "Armor" && .vglc$ == "Green") {set .vglitem,29007;}
- if ( .vgl$ == "Armor" && .vglc$ == "Purple") {set .vglitem,29010;}
- if ( .vgl$ == "Armor" && .vglc$ == "Red") {set .vglitem,29013;}
- if ( .vgl$ == "Armor" && .vglc$ == "White") {set .vglitem,29016;}
- if ( .vgl$ == "Shoes" && .vglc$ == "Black") {set .vglitem,29002;}
- if ( .vgl$ == "Shoes" && .vglc$ == "Blue") {set .vglitem,29005;}
- if ( .vgl$ == "Shoes" && .vglc$ == "Green") {set .vglitem,29006;}
- if ( .vgl$ == "Shoes" && .vglc$ == "Purple") {set .vglitem,29011;}
- if ( .vgl$ == "Shoes" && .vglc$ == "Red") {set .vglitem,29014;}
- if ( .vgl$ == "Shoes" && .vglc$ == "White") {set .vglitem,29017;}
- if ( .vgl$ == "Manteu" && .vglc$ == "Black") {set .vglitem,29003;}
- if ( .vgl$ == "Manteu" && .vglc$ == "Blue") {set .vglitem,29006;}
- if ( .vgl$ == "Manteu" && .vglc$ == "Green") {set .vglitem,29009;}
- if ( .vgl$ == "Manteu" && .vglc$ == "Purple") {set .vglitem,29012;}
- if ( .vgl$ == "Manteu" && .vglc$ == "Red") {set .vglitem,29015;}
- if ( .vgl$ == "Manteu" && .vglc$ == "White") {set .vglitem,29018;}
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 98,1;
- sleep2 1000;
- mes "^008800 *Item erfolgreich hergestellt.* ^000000";
- getitem .vglitem,1;
- delitem .vgldelete,1;
- delitem 6024,1;
- delitem 7024,1;
- delitem 6223,1;
- delitem 7228,1;
- delitem 7808,1;
- set handwerk, handwerk + 1;
- close;
- hw_glvNO:
- mes .@npcname$;
- mes "Du hast nicht alle Sachen.";
- if (.vgl$ == "Armor"){mes "Dir fehlt eine ^CC0000Valkyrie Armor^000000.";}
- if (.vgl$ == "Shoes"){mes "Dir fehlen ^CC0000Valkyrie Shoes^000000.";}
- if (.vgl$ == "Manteu"){mes "Dir fehlt ein ^CC0000Valkyrie Manteu^000000.";}
- if (countitem(6024) < 1){mes "Dir fehlt ein ^CC000017 Carat Diamond^000000.";}
- if (countitem(7024) < 1){mes "Dir fehlt ein ^CC0000Bloody Edge^000000.";}
- if (countitem(6223) < 1){mes "Dir fehlt ein ^CC0000Carnium^000000.";}
- if (countitem(7228) < 1){mes "Dir fehlt ein ^CC0000Gold Baren^000000.";}
- if (countitem(7808) < 1){mes "Dir fehlt ein ^CC0000God Hammer^000000.";}
- close;
- hw_headg:
- // Elven Ears, Angel Wing Ears, Devil Wing Ears
- SetArray( .@GetID, 17010, 17012, 17011 );
- // Sapphire, Topaz, Zircon
- SetArray( .@SpecialID, 726, 728, 729 );
- // God Hammer,Steel,Oridecon,Elunium
- SetArray( .@ItemID, 7808, 999, 984, 985 );
- SetArray( .@ItemCount_0, 1, 500, 100, 100 );
- SetArray( .@ItemCount_1, 1, 450, 90, 90 );
- SetArray( .@ItemCount_2, 1, 400, 80, 80 );
- SetArray( .@ItemCount_3, 1, 350, 70, 70 );
- SetArray( .@ItemCount_4, 1, 300, 60, 60 );
- SetArray( .@ItemCount_5, 1, 250, 50, 50 );
- SetArray( .@ItemCount_6, 1, 200, 25, 25 );
- mes .@npcname$;
- mes "Welches Objekt möchtest du erstellen?";
- next;
- if( Select( "Elven Ears", "Angel Wing Ears", "Devil Wing Ears", "Cancel." ) == 4 )
- close;
- // check
- for( set .@i, 0; .@i < GetArraySize( .@ItemID ); set .@i, .@i + 1 ) {
- if( CountItem( .@ItemID[ .@i ] ) < GetD( ".@ItemCount_" + .@handVar + "[" + .@i + "]" ) ){
- set .@c, ( GetD( ".@ItemCount_" + .@handVar + "[" + .@i + "]" ) - CountItem( .@ItemID[ .@i ] ) );
- mes "^FF0000Dir fehlen noch " + .@c + "x " + GetItemName( .@ItemID[ .@i ] ) + "^000000";
- close;
- }
- }
- if( CountItem( .@SpecialID[ @menu - 1 ] ) < 200 ) {
- mes "^FF0000Dir fehlen noch " + ( 200 - CountItem( .@SpecialID[ @menu - 1 ] ) ) + "x " + GetItemName( .@SpecialID[ @menu - 1 ] ) + "^000000!";
- close;
- }
- // delete
- for( set .@i, 0; .@i < GetArraySize( .@ItemID ); set .@i, .@i + 1 )
- DelItem( .@ItemID[ .@i ], GetD( ".@ItemCount_" + .@handVar + "[" + .@i + "]" ) );
- DelItem( .@SpecialID[ @menu - 1 ], 200 );
- set .@result, Rand( 1, .@Chance[ .@handVar ] );
- if( .@result == 2 ) {
- GetItem( .@GetID[ @menu - 1 ], 1 );
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 98,1;
- sleep2 1000;
- mes "^008800 *Item erfolgreich hergestellt.* ^000000";
- set handwerk, handwerk + 1;
- close;
- }
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 100,1;
- sleep2 1000;
- mes "^FF0000 *Item ist zerbrochen* ^000000";
- close;
- hw_barren:
- mes .@npcname$;
- mes "Du benötigst für eine Barren je 10 Ore. Silber oder Gold";
- next;
- switch (select("Silber Barren herstellen.","Gold Barren herstellen.","Abbrechen.")) {
- case 1:
- if (countitem(7232) >= 10){
- delitem 7232,10;
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 98,1;
- sleep2 1000;
- mes "^008800 *Item erfolgreich hergestellt.* ^000000";
- set handwerk, handwerk + 1;
- getitem 7229,1;
- close;
- }else{
- mes .@npcname$;
- mes "Du hast nicht genug Silver Ore....";
- close;
- }
- case 2:
- if (countitem(7231) >= 10){
- delitem 7231,10;
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 98,1;
- sleep2 1000;
- mes "^008800 *Item erfolgreich hergestellt.* ^000000";
- set handwerk, handwerk + 1;
- getitem 7228,1;
- close;
- }else{
- mes .@npcname$;
- mes "Du hast nicht genug Gold Ore....";
- close;
- }
- case 3:
- mes .@npcname$;
- mes "Dann bis später....";
- close;
- }
- hw_runen:
- mes .@npcname$;
- mes "Dazu benötigst du jeweils einen Silber Barren und einen God Hammer.";
- mes "Bedenke das der Versuch scheitern kann...";
- next;
- mes .@npcname$;
- mes "Welche Rune möchtest du herstellen?";
- next;
- switch (select("AGI Rune","DEX Rune","INT Rune","LUK Rune","STR Rune","VIT Rune","Cancel.")) {
- case 1:
- if (countitem(7229) < 1 && countitem(7808) < 1) goto hw_noR;
- delitem 7229,1;
- delitem 7808,1;
- set .@result, Rand( 1, .@Chance[ .@handVar ] );
- if( .@result == 2 ) {
- getitem 26020,1;
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 98,1;
- sleep2 1000;
- mes "^008800 *Item erfolgreich hergestellt.* ^000000";
- set handwerk, handwerk + 1;
- close;
- }
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 100,1;
- sleep2 1000;
- mes "^FF0000 *Item ist zerbrochen* ^000000";
- close;
- case 2:
- if (countitem(7229) < 1 && countitem(7808) < 1) goto hw_noR;
- delitem 7229,1;
- delitem 7808,1;
- set .@result, Rand( 1, .@Chance[ .@handVar ] );
- if( .@result == 2 ) {
- getitem 26021,1;
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 98,1;
- sleep2 1000;
- mes "^008800 *Item erfolgreich hergestellt.* ^000000";
- set handwerk, handwerk + 1;
- close;
- }
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 100,1;
- sleep2 1000;
- mes "^FF0000 *Item ist zerbrochen* ^000000";
- close;
- case 3:
- if (countitem(7229) < 1 && countitem(7808) < 1) goto hw_noR;
- delitem 7229,1;
- delitem 7808,1;
- set .@result, Rand( 1, .@Chance[ .@handVar ] );
- if( .@result == 2 ) {
- getitem 26022,1;
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 98,1;
- sleep2 1000;
- mes "^008800 *Item erfolgreich hergestellt.* ^000000";
- set handwerk, handwerk + 1;
- close;
- }
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 100,1;
- sleep2 1000;
- mes "^FF0000 *Item ist zerbrochen* ^000000";
- close;
- case 4:
- if (countitem(7229) < 1 && countitem(7808) < 1) goto hw_noR;
- delitem 7229,1;
- delitem 7808,1;
- set .@result, Rand( 1, .@Chance[ .@handVar ] );
- if( .@result == 2 ) {
- getitem 26023,1;
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 98,1;
- sleep2 1000;
- mes "^008800 *Item erfolgreich hergestellt.* ^000000";
- set handwerk, handwerk + 1;
- close;
- }
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 100,1;
- sleep2 1000;
- mes "^FF0000 *Item ist zerbrochen* ^000000";
- close;
- case 5:
- if (countitem(7229) < 1 && countitem(7808) < 1) goto hw_noR;
- delitem 7229,1;
- delitem 7808,1;
- set .@result, Rand( 1, .@Chance[ .@handVar ] );
- if( .@result == 2 ) {
- getitem 26024,1;
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 98,1;
- sleep2 1000;
- mes "^008800 *Item erfolgreich hergestellt.* ^000000";
- set handwerk, handwerk + 1;
- close;
- }
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 100,1;
- sleep2 1000;
- mes "^FF0000 *Item ist zerbrochen* ^000000";
- close;
- case 6:
- if (countitem(7229) < 1 && countitem(7808) < 1) goto hw_noR;
- delitem 7229,1;
- delitem 7808,1;
- set .@result, Rand( 1, .@Chance[ .@handVar ] );
- if( .@result == 2 ) {
- getitem 26025,1;
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 98,1;
- sleep2 1000;
- mes "^008800 *Item erfolgreich hergestellt.* ^000000";
- set handwerk, handwerk + 1;
- close;
- }
- sleep2 1000;
- specialeffect 101,1;
- sleep2 1000;
- specialeffect 100,1;
- sleep2 1000;
- mes "^FF0000 *Item ist zerbrochen* ^000000";
- close;
- case 7:
- mes .@npcname$;
- mes "Dann bis später....";
- close;
- }
- hw_noR:
- mes .@npcname$;
- mes "Du hastnicht genug Material....";
- close;
- }
- exro,63,40,4 script Topliste 857,{
- mes "[ ^006600 Topliste ^000000 ]";
- mes "Topliste der besten Whitesmith";
- mes "Für jedes erfolgreich erstellte Item gibt es einen Handwerkspunkt.";
- if ( Class == Job_Whitesmith )mes "Deine Punktzahl: ^0000FF " + handwerk + "^000000";
- if ( Class == Job_Whitesmith && handwerk >= 0 && handwerk <= 2) mes "Deine Stufe ist:^008800 Anfänger ^000000";
- if ( Class == Job_Whitesmith && handwerk >= 3 && handwerk <= 9) mes "Deine Stufe ist:^008800 Lehrling ^000000";
- if ( Class == Job_Whitesmith && handwerk >= 10 && handwerk <= 24) mes "Deine Stufe ist:^008800 Geselle ^000000";
- if ( Class == Job_Whitesmith && handwerk >= 25 && handwerk <= 49) mes "Deine Stufe ist:^008800 Handwerker ^000000";
- if ( Class == Job_Whitesmith && handwerk >= 50 && handwerk <= 99) mes "Deine Stufe ist:^008800 Erfahrener Handwerker ^000000";
- if ( Class == Job_Whitesmith && handwerk >= 100 && handwerk <= 199) mes "Deine Stufe ist:^008800 Profi Handwerker ^000000";
- if ( Class == Job_Whitesmith && handwerk >= 200) mes "Deine Stufe ist:^008800 Handwerks Meister ^000000";
- next;
- set .@c, Query_SQL( "SELECT `char`.`name`, `var`.`value` FROM `global_reg_value` AS `var`, `char` WHERE `char`.`char_id` = `var`.`char_id` AND `var`.`str` = 'handwerk' ORDER BY CONVERT( `var`.`value`, SIGNED ) DESC LIMIT 5", .@name$, .@p$ );
- if( .@c == 0 ) {
- mes "[^006600 Hall Of Fame ^000000]";
- mes "Noch kein Spieler eingetragen.";
- close;
- }
- mes "[^006600 Hall Of Fame: TOP " + .@c + " ^000000 ]";
- for( set .@i, 0; .@i < .@c; set .@i, .@i + 1 )
- mes "[^FF0000" + ( .@i + 1 ) + "^000000] ^0000FF" + .@name$[ .@i ] + "^000000 (^008800" + .@p$ + "^000000) ";
- close;
- }
- function script F_HW_GetVar {
- if( handwerk < 3 )
- return 0;
- else if( handwerk >= 3 && handwerk < 10 )
- return 1;
- else if( handwerk >= 10 && handwerk < 25 )
- return 2;
- else if( handwerk >= 25 && handwerk < 50 )
- return 3;
- else if( handwerk >= 50 && handwerk < 100 )
- return 4;
- else if( handwerk >= 100 && handwerk < 200 )
- return 5;
- else // über/gleich 200
- return 6;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement