Jump to content

Jaburak

Members
  • Posts

    1125
  • Joined

  • Days Won

    31

Posts posted by Jaburak

  1. 
    

    //============================================================

    //= Main Refiner Function

    //============================================================

    //= To allow auto safe refining/multiple refining set the

    //= @features variable to 1

    //============================================================

    function script refinemain {

    set @features,1;

    mes "[" + @name$ + "]";

    mes "I am the Armsmith... I can refine any weapon or piece of armor you choose!";

    mes "Which piece of equipment do you want to refine?";

    M_Menu:

    next;

    menu getequipname(1),PART1,getequipname(2),PART2,getequipname(3),PART3,getequipname(4),PART4,getequipname(5),PART5,

    getequipname(6),PART6,getequipname(7),PART7,getequipname(8),PART8,getequipname(9),PART9,getequipname(10),PART10;

    //Head Gear

    PART1:

    set @part,1;

    if (getequipisequiped(1)) goto CHECK1;

    mes "[" + @name$ + "]";

    mes "Do you want me to refine your dumb brain?";

    emotion 6;

    goto M_Menu;

    //Armor

    PART2:

    set @part,2;

    if (getequipisequiped(2)) goto CHECK1;

    mes "[" + @name$ + "]";

    mes "Do you want me to melt your body with blazing heat...?";

    emotion 6;

    goto M_Menu;

    //Left Hand

    PART3:

    set @part,3;

    if (getequipisequiped(3)) goto CHECK1;

    mes "[" + @name$ + "]";

    mes "I can't make your left hand into an ultimate weapon...";

    emotion 4;

    goto M_Menu;

    //Right Hand

    PART4:

    set @part,4;

    if (getequipisequiped(4)) goto CHECK1;

    mes "[" + @name$ + "]";

    mes "I can't make your right hand into an ultimate weapon...";

    emotion 4;

    goto M_Menu;

    //Garment

    PART5:

    set @part,5;

    if (getequipisequiped(5)) goto CHECK1;

    mes "[" + @name$ + "]";

    mes "Look here... you don't have any Garments on...";

    goto M_Menu;

    //Foot Gear

    PART6:

    set @part,6;

    if (getequipisequiped(6)) goto CHECK1;

    mes "[" + @name$ + "]";

    mes "Ack!! Those are some stinky feet. I definitely can't refine those... uck!!";

    emotion 16;

    goto M_Menu;

    //Accessory1

    PART7:

    set @part,7;

    if (getequipisequiped(7)) goto CHECK1;

    mes "[" + @name$ + "]";

    mes "What do you mean by Accessory? Which One?";

    emotion 20;

    goto M_Menu;

    //Accessory2

    PART8:

    set @part,8;

    if (getequipisequiped(8)) goto CHECK1;

    mes "[" + @name$ + "]";

    mes "What do you mean by Accessory? Which One?";

    emotion 20;

    goto M_Menu;

    PART9:

    set @part,9;

    if (getequipisequiped(9)) goto CHECK1;

    mes "[" + @name$ + "]";

    mes "What do you want from me? There's nothing equipped there...";

    emotion 20;

    goto M_Menu;

    PART10:

    set @part,10;

    if (getequipisequiped(10)) goto CHECK1;

    mes "[" + @name$ + "]";

    mes "What do you want from me? There's nothing equipped there...";

    emotion 20;

    goto M_Menu;

    //Check if the item is refinable...

    CHECK1:

    if(getequipisenableref(@part)) goto CHECK2;

    mes "[" + @name$ + "]";

    mes "I can't work on this item...";

    close;

    //Check if the item is identified... (Don't know why this is in here... but kept it anyway)

    CHECK2:

    if(getequipisidentify(@part)) goto CHECK3;

    mes "[" + @name$ + "]";

    mes "You must appraise this item first.";

    close;

    //Check to see if the items is already +10

    CHECK3:

    if(getequiprefinerycnt(@part) < 10) goto REFINE0;

    mes "[" + @name$ + "]";

    mes "This weapon is already at its maximum level and can no longer be refined.";

    close;

    //Refine Armor

    REFINE0:

    set @refineitemid, getequipid(@part); // save id of the item

    set @refinerycnt, getequiprefinerycnt(@part); //save refinery count

    if(getequipweaponlv(@part) > 0) goto REFINE1;

    set @matname$,"Elunium";

    set @material,985;

    set @price,2000;

    set @safe,4;

    if(@features == 1) goto L_refinefeatures;

    goto L_refinenormal;

    //Refine Level 1 Weapon

    REFINE1:

    if(getequipweaponlv(@part) > 1) goto REFINE2;

    set @matname$,"Phracon";

    set @material,1010;

    set @price,50;

    set @safe,7;

    if(@features == 1) goto L_refinefeatures;

    goto L_refinenormal;

    //Refine Level 2 Weapon

    REFINE2:

    if(getequipweaponlv(@part) > 2) goto REFINE3;

    set @matname$,"Emveretarcon";

    set @material,1011;

    set @price,200;

    set @safe,6;

    if(@features == 1) goto L_refinefeatures;

    goto L_refinenormal;

    //Refine Level 3 Weapon

    REFINE3:

    if(getequipweaponlv(@part) > 3) goto REFINE4;

    set @matname$,"Oridecon";

    set @material,984;

    set @price,5000;

    set @safe,5;

    if(@features == 1) goto L_refinefeatures;

    goto L_refinenormal;

    //Refine Level 4 Weapon

    REFINE4:

    set @matname$,"Oridecon";

    set @material,984;

    set @price,20000;

    set @safe,4;

    if(@features == 1) goto L_refinefeatures;

    goto L_refinenormal;

    L_refinenormal:

    mes "[" + @name$ + "]";

    mes "To refine this stuff, I need ^ff9999" + @matname$ + "^000000 and the fee " + @price + " Zeny.";

    mes "Continue?";

    next;

    menu "Yes",-,"No",Lcancel;

    if (getequippercentrefinery(@part) == 100) goto L_Sub;

    mes "[" + @name$ + "]";

    mes "Hmm... Hold on! This piece of equipment has already been refined to its maximum safety level.";

    mes "I must warn you if it is refined ANYMORE, It could be DESTROYED and become USELESS!!";

    next;

    mes "["+@name$+"]";

    mes "Do you still wish you refine it? If so I will not be able to guarantee my work...";

    next;

    menu "Yes",-,"No",Lcancel1;

    L_Sub:

    if ((countitem(@material) < 1) || (Zeny < @price)) goto Lcancel2;

    set Zeny,Zeny-@price;

    delitem @material,1;

    Lrefine:

    if (getequipisequiped(@part) == 0) goto LNoItem; // hacker has removed the item (not changed, why?)

    if (getequipid(@part) != @refineitemid) goto LNoFake; // hacker has changed the item

    if (getequiprefinerycnt(@part) != @refinerycnt) goto LNoFake; // hacker has changed the item

    if (getequippercentrefinery(@part) <= rand(100)) goto Lfail;

    mes "["+@name$+"]";

    mes "Clang! Clang! Clang!";

    successrefitem @part;

    next;

    mes "["+@name$+"]";

    mes "HAHA! It seems my skills haven't gotten rusty yet! Splendid... just splendid...";

    emotion 21;

    close;

    Lfail:

    mes "[" + @name$ + "]";

    mes "Clang! Clang! Clang!";

    failedrefitem @part;

    next;

    mes "["+@name$+"]";

    mes "Aaahhh!! Oh no...!!";

    emotion 16;

    next;

    mes "["+@name$+"]";

    mes "Eh..Ehem... I'm sorry but the refining process ^ff0000failed^000000.";

    next;

    mes "["+@name$+"]";

    mes "I am deeply ashamed of what I've done... but I DID warn you earlier about the risks.";

    close;

    LNoItem:

    mes "[" + @name$ + "]";

    mes "Look here... you don't have any Items on...";

    close;

    LNoFake:

    mes "[" + @name$ + "]";

    mes "Clan... No, but Did you imagine I could be so stupid !?!";

    mes "You have changed it...";

    mes "Go out before I stun you with my Hammer!!!";

    close;

    Lcancel:

    mes "[" + @name$ + "]";

    mes "You said so..Hmm so be it...";

    close;

    Lcancel1:

    mes "[" + @name$ + "]";

    mes "Good Choice.";

    mes "Ah... good choice. I'd feel awful if I'd destroyed another persons piece of equipment with my own hands.";

    close;

    Lcancel2:

    mes "[" + @name$ + "]";

    mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";

    close;

    // New Refining Functions ========================

    L_refinefeatures:

    if(getequiprefinerycnt(@part) >= @safe) goto Lnosafe;

    mes "[" + @name$ + "]";

    mes "I can refine this to the safe limit or a desired number of times... it's your choice...";

    next;

    menu "To the safe limit please.",Lsafe,"I'll decide how many times.",Lnosafe,"I've changed my mind...",Lcancel;

    Lsafe:

    set @refinecnt,@safe - getequiprefinerycnt(@part);

    set @fullprice,@price * @refinecnt;

    mes "[" + @name$ + "]";

    mes "That will cost you " + @refinecnt + " " + @matname$ + " and " + @fullprice + " Zeny. Is that ok?";

    next;

    menu "Yes",-,"No...",Lcancel;

    if((countitem(@material) < @refinecnt) || (Zeny < @fullprice)) goto Lcancel2;

    set Zeny,Zeny - @fullprice;

    delitem @material,@refinecnt;

    goto L_refinesafe;

    Lnosafe:

    mes "[" + @name$ + "]";

    mes "So how many times would you like me to refine your item?";

    next;

    input @refinecnt;

    if (@refinecnt<1) goto Lcancel3; //fixed by Lupus

    set @refinecheck,@refinecnt + getequiprefinerycnt(@part);

    if(@refinecheck > 10) goto Lcancel3;

    set @fullprice,@price * @refinecnt;

    mes "[" + @name$ + "]";

    mes "This will cost you " + @refinecnt + " " + @matname$ + " and " + @fullprice + " Zeny... Is that ok?";

    next;

    menu "Yes...",-,"No...",Lcancel;

    if(@refinecheck > @safe) goto Lwarn;

    if((countitem(@material) < @refinecnt) || (Zeny < @fullprice)) goto Lcancel2;

    set Zeny,Zeny - @fullprice;

    delitem @material,@refinecnt;

    goto L_refinenumber;

    end;

    Lwarn:

    set @refinecheck,@refinecheck - @safe;

    mes "[" + @name$ + "]";

    mes "This will try to refine the equipment " + @refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";

    next;

    menu "Yes",-,"No...",Lcancel1;

    if((countitem(@material) < @refinecnt) || (Zeny < @fullprice)) goto Lcancel2;

    set Zeny,Zeny - @fullprice;

    delitem @material,@refinecnt;

    goto L_refinenumber;

    Lcancel3:

    mes "[" + @name$ + "]";

    mes "I can't refine this item that many times.";

    close;

    // SubFunction: Safe Refine ---------------------

    L_refinesafe:

    if (getequipisequiped(@part) == 0) goto LNoItem; // hacker has removed the item (no changed, why?)

    if (getequipid(@part) != @refineitemid) goto LNoFake; // hacker has changed the item

    if (getequippercentrefinery(@part) < 100) goto LNoFake; // hacker has changed the item (it is not safe anymore)

    mes "Clang, clang!!!";

    successrefitem @part;

    emotion 21;

    set @refinecnt,@refinecnt - 1;

    next;

    if(@refinecnt == 0) goto Lend;

    goto L_refinesafe;

    Lend:

    mes "[" + @name$ + "]";

    mes "All finished... Come again soon.";

    close;

    // SubFunction: Refine

    L_refinenumber:

    if (getequipisequiped(@part) == 0) goto LNoItem; // hacker has removed the item (no changed, why?)

    if (getequipid(@part) != @refineitemid) goto LNoFake; // hacker has changed the item

    mes "Clang, clang!!!";

    if (getequippercentrefinery(@part)<=rand(100)) goto Lfail_number;

    successrefitem @part;

    emotion 21;

    set @refinecnt,@refinecnt - 1;

    next;

    if(@refinecnt == 0) goto Lend;

    goto L_refinenumber;

    Lfail_number:

    failedrefitem @part;

    emotion 23;

    mes "[" + @name$ + "]";

    mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";

    set @refinecnt,@refinecnt - 1;

    if(@refinecnt == 0) goto Lend2;

    mes "Here's the unused Zeny and Material back...";

    getitem @material,@refinecnt;

    set @fullprice,@refinecnt * @price;

    set Zeny,Zeny + @fullprice;

    Lend2:

    close;

    }

    • Upvote 1
  2. 
    

    sec_pri,21,63,4 script JailTime 123,{

    mes "Hi here's your jail time";

    atcommand "@jailtime";

    close;

    }

    sec_pri.gat,47,63,4 duplicate(JailTime) JailTime#h1-1 836

    sec_pri.gat,73,63,4 duplicate(JailTime) JailTime#h1-2 836

    • Upvote 3
  3. It's already implemented in rAthena but disable by default.

    Here's the link: http://svn.code.sf.net/p/rathena/svn/trunk/npc/custom/quests/thq/

     

    All you have to do is remove the comment in here; trunk/npc/scripts_custom.conf

    // -- Treasure Hunters Guild Quests (40 Quests + Special Guild Shop)
    npc: npc/custom/quests/thq/THQS_ChatingNPC.txt
    npc: npc/custom/quests/thq/THQS_GuildNPC.txt
    npc: npc/custom/quests/thq/THQS_QuestNPC.txt
    npc: npc/custom/quests/thq/THQS_Quests.txt
    npc: npc/custom/quests/thq/THQS_TTShop.txt
  4. 
    

    amatsu,116,146,3 script Seyra 90,{

    set .@n$, "[Seyra]";

    setarray .@rwd[0],2115,1,2357,1,2421,1,2524,1; // Rewards: <item id>,<item amount>

    query_sql ("SELECT `last_ip` FROM `login` WHERE `account_id`=" + getcharid(3) + "", .@lip$);

    if ( getd("$" + .@lip$ + "_NG") > 0 || #NewbieGift > 0)

    {

    mes .@n$;

    mes "I'm sorry, the rewards are exclusively for new players.";

    close;

    }

    mes .@n$;

    mes "Welcome! Here are some free gifts";

    mes "for newcomers:";

    for ( set .@i, 0; .@i < getarraysize(.@rwd); set .@i, .@i + 2 )

    mes .@rwd[.@i+1] + " x " + getitemname(.@rwd[.@i]);

    close2;

    set #NewbieGift, 1;

    setd "$" + .@lip$ + "_NG", getd("$" + .@lip$ + "_NG") + 1;

    for ( set .@i, 0; .@i < getarraysize(.@rwd); set .@i, .@i + 2 )

    getitem .@rwd[.@i], .@rwd[.@i+1];

    end;

    OnInit:

    waitingroom "Newbie Gift!",0;

    end;

    }

    • Upvote 2
  5. 
    

    // _______ __ ____ ____ __ __ ____ __ __ __ __ __ __ __ ____ _ ____

    // /__ __/ / / / __ \ / __ \ / / / / /__ \ / / /_/ __/ /_ / // / / /__/ / /__ \ / /__ / __ \ _____

    // / / / /_ / /_/ / / / / / / / / / ____/ / / / __ /_ __// // / / _ _ / ____/ / / // / / /_/ / / __ \

    // / / / __ \ / ____/ / / / / / / / / / __ / / / / / / / \_ / / // /// / __ / / __/ / ____/ / / /_/

    // / / / / / / / /__ / /_/ /_ / /_/ / / /_/ / / / / / / / __/ / / // /// / /_/ / / _ \ / /__ / /

    ///_/ /_/ /_/ \____/ \_______/ \____/ \____/ /_/ /_/ /_/ \__/ /_//_/// \____/ /_/ \_\ \____/ /_/

    //=============================================================================

    //

    // Gold Room V2.0 Script - Mining Gold for wealth - Please Leave Credit \\

    //=============================================================================

    //POWERED by: rudolp

    //The Quality Maker

    //10:19 PM 2/25/2009

    //===== Compatible With: ====================================================================

    //= Any eAthena Version

    //===== Description: ========================================================================

    //=============Gold Room Settings===================

    //This should always be enable for a better Gold Room System.

    //==================================================

    ordeal_1-2.gat mapflag noskill

    ordeal_1-2.gat mapflag nomemo

    ordeal_1-2.gat mapflag nobranch

    ordeal_1-2.gat mapflag noexp

    ordeal_1-2.gat mapflag nodrop

    ordeal_1-2.gat mapflag nochat

    ordeal_1-2.gat mapflag novending

    ordeal_1-2.gat mapflag nowarp

    ordeal_1-2.gat mapflag nowarpto

    ordeal_1-2.gat mapflag noreturn

    //==================================================

    //Optional

    //==================================================

    ordeal_1-2.gat mapflag noloot

    //disable so that after logging in your still in the Gold Room..

    //ordeal_1-2.gat mapflag nosave SavePoint

    ordeal_1-2,0,0,0 script Gold Room -1,{

    OnPCDieEvent:

    if (getmapxy(@mapname$,@mapx,@mapy,0) == -1) end;

    if (@mapname$ == "ordeal_1-2"){

    soundeffect "HolyShit.wav",0;

    dispbottom "Holy Shit you died!";

    dispbottom "All of your gold will gone!";

    set alive, 0;

    set paid, 0;

    end;

    }

    OnNPCKillEvent:

    if (getmapxy(@mapname$,@mapx,@mapy,0) == -1) goto L_Finish;

    if (@mapname$ == "ordeal_1-2"){

    set @bonus,readparam(bLuk);

    if(@bonus >= 50 && @bonus <= 149){

    set @plus,1;

    }else if(@bonus >=150 && @bonus <= 199){

    set @plus,2;

    }else if(@bonus >= 200 && @bonus >=250){

    set @plus,3;

    }else if(@bonus > 250){

    set @plus,4;

    }else if(@bonus < 50){

    set @plus,0;

    }

    set @setadd,0;

    set @special,rand (4);

    if(@special == 0){

    set @special,(rand(4)*-1);

    set @setadd,(@special);

    }else{

    set @setadd,(@plus+@special);

    }

    set gold, gold + @setadd;

    if(gold < 50 && @special < 0) dispbottom "-|You got: " + @special + " gold|- ";

    if(@special == 0) dispbottom "-|You got: NOTHING! |- ";

    if(gold < 50 && @special > 0) dispbottom "-|You got: " + (@special + @plus) + " gold|- ";

    if(gold > 50 && @special >0) dispbottom "-|You got: " + (@special + @plus)+ " gold| - |Total: " +gold+ " gold|-";

    if(gold > 50 && @special <0) dispbottom "-|You got: " +@special+ " gold| - |Total: " +gold+ " gold|-";

    if (gold >= 100 && gold%2 == 0) goto L_HolyShit;

    if (gold >= 115 && gold <= 149){

    sc_start 33,240000,10;

    }else if (gold >= 150 && gold <= 199){

    sc_start 5,240000,10;

    }else if(gold > 200){

    percentheal -30,0;

    heal -50,0;

    }

    if(paid == 0){

    mapannounce "ordeal_1-2"," :"+strcharinfo(0)+" is a cheater!",bc_map;

    dispbottom "Go out you bastard!";

    warp "prontera", 173, 160;

    }

    end;

    L_HolyShit:

    dispbottom "Warning! you may die if you exceed.";

    misceffect 368;

    end;

    end;

    }

    }

    //===============================================

    //warper

    //===============================================

    ordeal_1-2,154,156,5 script Gold Miner 813,{

    mes "[Gold Miner]";

    if(gold >=50){

    goto wa;

    }

    mes "Want to go now?";

    mes "Your gold is just "+gold+" you can still get more, return after you get more than 50";

    close;

    wa:

    mes "Want to go now?";

    if(select("Yes Please", "No, i want more golds") == 1) {

    set alive,1;

    warp "prontera", 157, 147;

    close;

    }

    }

    prontera,165,147,2 script Gold Room Warper#1::GR 848,{

    set @name$,"prontera";

    callfunc "goldmain";

    end;

    }

    function script goldmain {

    if ( alive == 0){

    set gold,0;

    }

    mes "[Gold Room Miner]";

    mes "Hi,I am one of the best gold miners since this was discovered,What can i do for you?";

    next;

    menu "Take me to the Gold Room",-,"Exchange my Golds",exchange,"I'll Back Later",C_s;

    mes "[Gold Room Miner]";

    mes "Hmm.. So you want to go to the mines? OK";

    mes "It will cost you $100,000z for the transportation";

    mes "Would you like to go anyway to the gold room?";

    if(select("Yes Please!", "No, maybe later") == 1) {

    if(@name$ == "prontera") savepoint "prontera",160,180;

    if (Zeny < 100000) goto nomoney;

    set Zeny, Zeny - 100000;

    set alive, 1;

    set paid, 1;

    warp "ordeal_1-2", 156, 155;

    close;

    }

    nomoney:

    mes "[Gold Room Miner]";

    mes "Sorry you have insufficient balance";

    close;

    exchange:

    mes "[Gold Room Miner]";

    mes "Hmm...let me see";

    mes "You have " +gold+ ".";

    if (gold == 0) goto nogold;

    mes "Ok this is your reward for be a tough miner.";

    next;

    if (checkweight(969,gold) == 0) goto L_OverWeight;

    getitem 969, gold;

    set gold, 0;

    emotion e_no1;

    close;

    L_OverWeight:

    mes "[Gold Room Miner]";

    mes "Sorry your overweight";

    close;

    nogold:

    close;

    C_s:

    close;

    }

    //========================================

    //warps you may edit this one for your convenience

    //========================================

    ordeal_1-2,73,265,0 warp ord500 1,1,prontera,173,160

    ordeal_1-2,129,194,0 warp ord501 1,1,prontera,173,160

    ordeal_1-2,130,194,0 warp ord502 1,1,prontera,173,160

    ordeal_1-2,178,193,0 warp ord503 1,1,prontera,173,160

    ordeal_1-2,290,130,0 warp ord504 1,1,prontera,173,160

    ordeal_1-2,241,281,0 warp ord505 1,1,prontera,173,160

    ordeal_1-2,66,25,0 warp ord506 1,1,prontera,173,160

    ordeal_1-2,290,229,0 warp ord507 1,1,prontera,173,160

    ordeal_1-2,201,130,0 warp ord5s08 1,1,prontera,173,160

    //======================================

    //mobs you may edit this as you want but don't change the mobs

    //=====================================

    ordeal_1-2,0,0,0,0 monster Gold Guardian 1490,10,0,0,0

    ordeal_1-2,0,0,0,0 monster Gold Guardian 1490,10,0,0,0

    ordeal_1-2,0,0,0,0 monster Gold Guardian 1490,10,0,0,0

    ordeal_1-2,0,0,0,0 monster Gold Guardian 1490,10,0,0,0

    ordeal_1-2,0,0,0,0 monster Gold Guardian 1490,10,0,0,0

    ordeal_1-2,0,0,0,0 monster Golden Pecopeco 1369,20,40000,20000,0

    ordeal_1-2,0,0,0,0 monster Golden Pecopeco 1369,10,40000,20000,0

    ordeal_1-2,0,0,0,0 monster Golden Pecopeco 1369,20,40000,20000,0

    ordeal_1-2,0,0,0,0 monster Golden Pecopeco 1369,10,40000,20000,0

    ordeal_1-2,0,0,0,0 monster Golden Pecopeco 1369,20,40000,20000,0

    ordeal_1-2,0,0,0,0 monster Golden Pecopeco 1369,10,40000,20000,0

    ordeal_1-2,0,0,0,0 monster Golden Pecopeco 1369,20,40000,20000,0

    //======================================

    payon,148,228,6 duplicate(GR) Gold Room Warper#2 848

    turbo_room,77,108,6 duplicate(GR) Gold Room Warper#3 848

    lighthalzen,181,78,7 duplicate(GR) Gold Room Warper#4 848

×
×
  • Create New...