Jump to content

Mephisto

Members
  • Posts

    56
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Mephisto

  1. Sa tingin ko eto yung way ng pRO to gain more players kasi andaming private servers na sobrang daming naglalaro and kahit bumalik ang pRO meron mga magsstay nalang sa private servers na yun. And If nagpatuloy to sa tingin ko malaking damage ang mangyayare pag nagdigmaan ang private servers at and pRO

  2. 9 hours ago, skyroofficial said:

    So ive tested . and the npc didnt appear somehow

    Just fix the tab on
    turbo_room,122,138,3    script    Street Lady#1    693
    -    script    quest_shop    -1,{ 
    -    shop    streetguyshop1    -1,909:-1

     

    7 hours ago, Masao said:

    WTF is that script ? That's way to big and over the top for what OP requested, jesus this is terrible ?

    I'd do the script but I'm in Hospital until next weekend, sorry ?

    Well atleast I helped ? :)

  3. Spoiler

    turbo_room,122,138,3    script    Street Lady#1    693,{ callfunc "streetguyshop"; }


    // Script Core
    //============================================================
    -    script    quest_shop    -1,{ 
    function Add; function Chk; function Slot;
    OnInit:
        freeloop(1);

    // -----------------------------------------------------------
    //  Basic shop settings.
    // -----------------------------------------------------------

        set .Announce,0;    // Announce quest completion? (1: yes / 0: no)
        set .ShowSlot,0    // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
        set .ShowID,0;      // Show item IDs? (1: yes / 0: no)
        set .ShowZeny,0;    // Show Zeny cost, if any? (1: yes / 0: no)
        set .MaxStack,100;    // Max number of quest items purchased at one time.

    // -----------------------------------------------------------
    //  Points variable -- optional quest requirement.
    //    setarray .Points$[0],"<variable name>","<display name>";
    // -----------------------------------------------------------

        setarray .Points$[0],"#CASHPOINTS","Cash Points";

    // -----------------------------------------------------------
    //  Shop IDs -- to add shops, copy dummy data at bottom of file.
    //    setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
    // -----------------------------------------------------------

        setarray .Shops$[1],"Street Lady Shop";

    // -----------------------------------------------------------
    //  Quest items -- do NOT use a reward item more than once!
    //    Add(<shop ID>,<reward ID>,<reward amount>,
    //        <Zeny cost>,<point cost>,
    //        <required item ID>,<required item amount>{,...});
    // -----------------------------------------------------------
    //Add(1,);
        Add(1,32502,5,0,0,32503,1);
        Add(1,32502,3,0,0,4214,1);
        Add(1,32502,8,0,0,4928,1);
        Add(1,32502,1,0,0,41425,1);

    // -----------------------------------------------------------

        freeloop(0);
        set .menu$,"";
        for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
            set .menu$, .menu$+.Shops$[.@i]+":";
            npcshopdelitem "streetguyshop"+.@i,909;
        }
        end;

    OnMenu:
        set .@size, getarraysize(@i);
        if (!.@size) set @shop_index, select(.menu$);
        else if (.@size == 1) set @shop_index, @i[0];
        else {
            for(set .@j,0; .@j<.@size; set .@j,.@j+1)
                set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";
            set @shop_index, @i[select(.@menu$)-1];
        }
        deletearray @i[0],getarraysize(@i);
        if (.Shops$[@shop_index] == "") {
            message strcharinfo(0),"An error has occurred.";
            end;
        }
        dispbottom "Select one item at a time.";
        callshop "streetguyshop"+@shop_index,1;
        npcshopattach "streetguyshop"+@shop_index;
        end;

    OnBuyItem:
        // .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }
        setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);
        copyarray .@q[3],getd(".q_"+@shop_index+"_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+@shop_index+"_"+.@q[0]));
        set .@q[2],.@q[1]*.@q[3];
        if (!.@q[2] || .@q[2] > 30000) {
            message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";
            end;
        }
        mes "[Street Lady]";
        mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";
        mes "Requirements:";
        disable_items;
        if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";
        if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";
        if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
            mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
        next;
        setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
        if (@qe[2] > 0 && ((@qe[1] & EQP_HEAD_LOW) || (@qe[1] & EQP_HEAD_TOP) || (@qe[1] & EQP_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_TOP) || (@qe[1] & EQP_COSTUME_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_LOW) || (@qe[1] & EQP_GARMENT) || (@qe[1] & EQP_COSTUME_GARMENT)))
            set .@preview,1;
        addtimer 1000, strnpcinfo(0)+"::OnEnd";
        while(1) {
            switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
            case 1:
                if (@qe[0]) { 
                    mes "[Street Lady]";
                    mes "You're missing one or more quest requirements.";
                    close;
                }
                if (!checkweight(.@q[0],.@q[2])) {
                    mes "[Street Lady]";
                    mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
                    close;
                }
                if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);
                if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);
                if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
                    delitem .@q[.@i],.@q[.@i+1]*.@q[1];
                getitem .@q[0],.@q[2];
                if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):callfunc("F_InsertArticle",getitemname(.@q[0])))+"!",0;
                specialeffect2 EF_FLOWERLEAF;
                close;
            case 2:
                setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1;
                if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2];
                else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2];
                else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2];
                else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2];
                break;
            case 3:
                close;
            }
        }

    OnEnd:
        if (@qe[7]) {
            changelook LOOK_HEAD_BOTTOM, @qe[3];
            changelook LOOK_HEAD_TOP, @qe[4];
            changelook LOOK_HEAD_MID, @qe[5];
            changelook LOOK_ROBE, @qe[6];
        }
        deletearray @qe[0],8;
        end;

    function Add {
        if (getitemname(getarg(1)) == "null") {
            debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
            return;
        }
        setarray .@j[0],getarg(2),getarg(3),getarg(4);
        for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {
            if (getitemname(getarg(.@i)) == "null") {
                debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";
                return;
            } else
                setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);
        }
        copyarray getd(".q_"+getarg(0)+"_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);
        npcshopadditem "streetguyshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
        return;
    }

    function Chk {
        if (getarg(0) < getarg(1)) {
            set @qe[0],1;
            return "^FF0000";
        } else
            return "^00FF00";
    }

    function Slot {
        set .@s$,getitemname(getarg(0));
        switch(.ShowSlot) {
            case 1: if (!getitemslots(getarg(0))) return .@s$;
            case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
            default: return .@s$;
        }
    }
    }

    function    script    streetguyshop    {
        deletearray @i[0],getarraysize(@i);
        for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
            set @i[.@i],getarg(.@i);
        doevent "quest_shop::OnMenu";
        end;
    }


    // Dummy shop data -- copy as needed.
    //============================================================
    -    shop    streetguyshop1    -1,909:-1

     

    • Upvote 1
  4. Is there any way I can edit the noitemconsumption mapflag ? Or is there anyway I can remove specific item for the noitemconsumption mapflag ? for example I want to use the noitemconsumption mapflag but I want to remove the Blue Potion in that mapflag. Any help will do :)

  5. Where sir ? Does it mean if I have 300 luk then I'll be immune to all status effect ? like froze, stun, sleep like that ?

     

    You mean like this ?

     

    Spoiler

    -    script    300Luk    -1,{
    OnPCStatCalcEvent:
    if (readparam(bLuk) > 299 )
    bonus2 bResEff,Eff_Freeze,10000;
    }

    If Luk = 300 then I will be immune to freeze ? Right ?

  6. So basically I want a script that If a player has 300 Luk it will be Immune to All Status Effect
    Then I try to make a Script and here it is. But I don't know if it will work ? Can someone help me to implement something that I want ?

     

    Spoiler

    -    script    300Luk    -1,{
    OnPCLoginEvent:
    if (readparam(bLuk) > 299 )
    bonus2 bResEff,Eff_Freeze,10000;
    }

  7. [Fatal Error]: Connection to char-server failed 3, please check conf/import/map_conf userid and passwd.
    

    This error shows everytime then after I restart my server like 3-5 times then this error will be gone then it will show again after a couple of restart.

    Communication user & password in map_conf, char_conf and in the sql is the same. Any idea why this shows ?

×
×
  • Create New...