Jump to content

Gidz Cross

Members
  • Posts

    686
  • Joined

  • Days Won

    9

Posts posted by Gidz Cross

  1. On 11/28/2023 at 2:55 AM, Winterfox said:

    You need an additional modification in your client to send some unique identifier based on the players pc to the server, that you can at least identify a unique pc to prevent most of the abuse via the usage of multiple accounts.
    You will also need the server to be able to handle the send unique id and to have it hand it over to your script so that it can make use of it.
    But even then it will be possible to abuse the it by the usage of virtual machines for example. There isn't any fool proof method to make sure, a player can't somehow abuse free giveaway items.

    I do have gepard. 

  2. Heya. I have this script and it works. But can be abuse by creating multiple accounts and re claim it. I wanted to add unique id features in it that resets each day.

    prontera,164,169,3	script	Daily Supply#1	647,{
    	set .@supplytoday,atoi( gettimestr( "%Y%m%d",21 ) );
    	
    	if ( Weight >= (MaxWeight/2) ) {
    		dispbottom "Please free some space from your inventory to get the Daily Supplies.";
    		end;
    	}
    	if( #DailySupply != .@supplytoday ){
    		set #DailySupply,.@supplytoday;
    		getitembound 11503,100,Bound_Account;
    		getitembound 11504,50,Bound_Account;
    		end;
    	} else {
    		dispbottom "Daily Supply can only be claimed once per day. Resets at 12am.";
    		end;
    	}
    }

     

  3. 19 hours ago, mervz02 said:

    Hi, im making this Donation NPC manager work, but apparently some menus are missing, i want to enable and test the Exlusive Donation and the conversion of the Donation Tickets and points. how can i do it. 

     

    //==== DarkRO Scripts ====================================
    //= Donation Shop
    //===== By: ================================================== 
    //= [GM] Brenth
    //===== Current Version: ===================================== 
    //= 1.2
    //===== Description: ========================================= 
    //= Multiple donation shop rewards (based on DarkRO)
    //===== Changelog: =========================================== 
    //= Not yet tested for bugs
    //= 1.0 Implementation
    //= 1.1 Added Gift Packages
    //= 1.2 Added Claim Bonuses (Ticket and Points)
    //============================================================
    
    //auction_01,41,85,5    script    Donation Manager    4_M_IAN,{
    prontera,133,188,5    script    Donation Manager    4_M_LGTGRAND,{
        set @header$,"[^FF8000 Donation Manager ^000000]";
        mes @header$; 
        mes "Good Day " + (Sex ? "Boss!" : "Madam!");
        mes "Welcome to Donation Shop!";
        mes "  ";
        mes "For every 1$ USD you donate, you will receive 1 ^5FD1D1Donation Point^000000 and 1 ^5FD1D1Wager Point^000000.";
        next;
        mes @header$; 
        mes "Just a few information before you visit our shop.";
        mes "  ";
        mes "We have 2 different kind of donation rewards and 2 different kind of shop, you will received";
        mes "both ^5FD1D1Donation Points^000000 and ^5FD1D1Wager Points^000000 everytime you donate!";
        switch(select(
            "Donation Points Shop",
            "Wager Points Shop",
            ($DONATE_EXCLUSIVE ? "[^FF0000Exclusive^000000] "+$DONATE_EX_TITLE$:""))) {
    /*        (#CASHPOINTS > 99 ? "Convert Wager Points to Donation Ticket":""))) {
        case 1:
            mes @header$;
            mes "Each Gift Packs contains different items and amount of ^7BCC70Donation Tickets^000000 and ^7BCC70Bonus Points^000000.";
            mes " ";
            mes "^FF0000NOTE^000000: Please choose wisely.";
            openshop("DShop_Pack");
            end;
        case 2:
            mes @header$;
            mes "We have 2 different kind of donation rewards, you received both ^7BCC70Donation Tickets^000000 and ^7BCC70Bonus Points^000000 everytime you open a Gift Package!";
            next;
            switch(select("Use Donation Tickets:Use Bonus Points")) {
    */
            case 1:
                mes @header$;
                mes "Welcome to Donation Points Shop";
                mes "You have total of "+#DONATIONPOINTS+" ^7BCC70Donation Points^000000.";
                openshop("DShop_Ticket");
                end;
            case 2: 
                mes @header$;
                mes "Welcome to Bonus Points Shop";
                mes "You have total of "+#BONUSPOINTS+" ^7BCC70Bonus Points^000000.";
                mes " ";
                mes "This shop rotates every end of the month.";
                openshop("DShop_Bonus");
                end;
            case 3:
                mes @header$;
                mes "Welcome to the Exclusive Donation Shop.";
                mes " ";
                mes "Select what currency will you use.";
                next;
                switch(select(
                    $DONATE_EXDT ? "Donation Ticket Shop":"",
                    $DONATE_EXBP ? "Bonus Point Shop":"",
                    "Cancel")) {
                    default:    close;    break;
                    case 1:
                        openshop("DShop_Ticket_Ex");
                        end;
                    case 2:
                        openshop("DShop_Bonus_Ex");
                        end;        
                }
                break;
    /*    case 4:
            getinventorylist();
            mes @header$;
            mes "You can convert your ^0000FF100 Wager Points^000000 for ^0099001 Donation Ticket^000000.";
            mes " ";
            mes "How will you exchange your Wager Point?";
            next;
            .@i = select("Decide on how many tickets to get.:Exchange all my Wager Points.:Cancel");
            if (.@i == 3) close();
            else if (.@i == 1) {
                if (@inventorylist_count == MAX_INVENTORY && !countitem(3101)) {
                    mes @header$;
                    mes "Make sure that you have a cleared your inventory before proceeding.";
                    close();
                }
                mes @header$;
                mes "You have total of "+F_InsertComma(#CASHPOINTS)+" ^0000FFWager Points^000000.";
                mes " ";
                mes "How many ^009900Donation Ticket^000000 do you want to get?";
                next;
                input(.@amt,0,30000);
                if (.@amt <= 0) close();
                if (#CASHPOINTS/100 < .@amt) {
                    L_LessPoints:
                    mes @header$;
                    mes "You don't have enough Wager Points.";
                    close();
                }
                else if (countitem(3101) + .@amt > 30000) {
                    mes @header$;
                    mes "You have exceeded the limit.";
                    close();
                } else {
                    L_ConvertDP:
                    mes @header$;
                    mes "You will be converting";
                    mes "your ^0000FF"+F_InsertComma(.@amt * 100)+" Wager Points^000000";
                    mes "to ^009900"+F_InsertComma(.@amt)+" Donation Ticket"+(.@amt != 1 ? "s":"")+"^000000.";
                    mes " ";
                    mes "Proceed?";
                    next;
                    if (select("No:Yes") == 1) close();
                    #CASHPOINTS -= (.@amt * 100);
                    #DONATIONPOINTS += .@amt;
                    getitem 3101, .@amt;
                    mes @header$;
                    mes "Here's your ^009900"+F_InsertComma(.@amt)+" Donation Ticket"+(.@amt != 1 ? "s":"")+"^000000 and ^0000FFBonus Point"+(.@amt != 1 ? "s":"")+"^000000.";
                    close();
                }
            } else {
                if (@inventorylist_count == MAX_INVENTORY && !countitem(3101)) {
                    mes @header$;
                    mes "Make sure that you have a cleared your inventory before proceeding.";
                    close();
                }
                .@amt = #CASHPOINTS / 100;
                if (.@amt == 0) goto L_LessPoints;
                else if (countitem(3101) + .@amt > 30000) {
                    .@amt = 30000 - countitem(3101);
                    if (.@amt == 0) {
                        mes @header$;
                        mes "You have exceeded the limit.";
                        close();
                    }
                    else goto L_ConvertDP;
                }
                else goto L_ConvertDP;
            }
            break;
    */
        }
        close;
    
    OnInit:
        waitingroom "Donation Manager",0;
        end;
    }
    
    -    trader    DShop_Ticket_Ex    -1,{
    OnInit:
        tradertype(NST_CUSTOM);
        sellitem Red_Potion,1;
        end;
    
    OnCountFunds:
        setcurrency(#DONATIONPOINTS); end;
    
    OnPayFunds:
        if( #DONATIONPOINTS < @price ) end;
        #DONATIONPOINTS = #DONATIONPOINTS - @price;
        purchaseok();
        dispbottom "You now have a total of "+#DONATIONPOINTS+" Donation Points.";
        end;
    }
    
    -    trader    DShop_Bonus_Ex    -1,{
        OnInit:
        tradertype(NST_CUSTOM);
        sellitem Red_Potion,200;
        end;
    
    OnCountFunds:
        setcurrency(#BONUSPOINTS); end;
    
    OnPayFunds:
        if( #BONUSPOINTS < @price ) end;
        #BONUSPOINTS = #BONUSPOINTS - @price;
        purchaseok();
        dispbottom "You now have a total of "+#BONUSPOINTS+" Bonus Points.";
        end;
    }
    
    /*
    -    trader    DShop_Pack    -1,{
        OnInit:
        tradertype(NST_CUSTOM);
        sellitem Gift_Pack_1,2500;
        sellitem Gift_Pack_2,3000;
        sellitem Gift_Pack_3,3500;
        sellitem Gift_Pack_4,4500;
        end;
        
    OnCountFunds:
        setcurrency(#CASHPOINTS); end;
    
    OnPayFunds:
        if( #CASHPOINTS < @price ) end;
        #CASHPOINTS = #CASHPOINTS - @price;
        purchaseok(); end;
    }
    */
    
    -    trader    DShop_Ticket    -1,{
        OnInit:
        tradertype(NST_CUSTOM);
        sellitem Banryu,12;
        sellitem Valkyrie_Armor,14;
        sellitem Valkyrja's_Shield,10;
        sellitem Valkyrie_Shoes,10;
        sellitem Valkyrie_Manteau,15;
        sellitem Sleipnir,20;
        sellitem Valkyrie_Helm_,20;
        sellitem Cyclops_Visor,30;
        sellitem Vampire_Wings,40;
        sellitem Nile_Rose,15;
        end;
    
    OnCountFunds:
        setcurrency(#DONATIONPOINTS); end;
    
    OnPayFunds:
        if( #DONATIONPOINTS < @price ) end;
        #DONATIONPOINTS = #DONATIONPOINTS - @price;
        purchaseok();
        dispbottom "You now have a total of "+#DONATIONPOINTS+" Donation Points.";
        end;
    }
    
    -    trader    DShop_Bonus    -1,{
        OnInit:
        tradertype(NST_CUSTOM);
        // Hats rotates
        sellitem Chanel_Captain,80;
        sellitem Gucci_Captain,80;
        sellitem LV_Captain,80;
        sellitem Chanel_Note_Headphone,80;
        sellitem Gucci_Note_Headphone,80;
        sellitem LV_Note_Headphone,80;
        end;
        
    OnCountFunds:
        setcurrency(#BONUSPOINTS); end;
    
    OnPayFunds:
        if( #BONUSPOINTS < @price ) end;
        #BONUSPOINTS = #BONUSPOINTS - @price;
        purchaseok();
        dispbottom "You now have a total of "+#BONUSPOINTS+" Bonus Points.";
        end;
    }


     

    donationshop.txt 7.01 kB · 2 downloads

    Some menus are hidden because of the /* script_here */. Those are comments. Try to remove those /* */


    P.S and this script is for Herc. We don't have tradershop in rA.

  4. You need to declare your unique item number. Let's based it on your medal thingy. 

      - Id: 30000
        AegisName: Medal_Thingy
        Name: Medal Thingy
        Type: Etc
        Buy: 100000
        Weight: 400

    Put this into your import folder. In this way you wont have to touch the original item_db_etc.yml. Once done go to your server and type @reload item. You may now @item 30000 to generate your Medal Thingy.

    You will be getting an Unknown Item(apple) since its not yet on your iteminfo.lua.


    You may put this in your iteminfo (Client/System/iteminfo.lub/lua

    	[30000] = {
    		unidentifiedDisplayName = "Medal Thingy",
    		unidentifiedResourceName = "Æ÷ÀåÁö",
    		unidentifiedDescriptionName = { "..." },
    		identifiedDisplayName = "Medal Thingy",
    		identifiedResourceName = "Æ÷ÀåÁö",
    		identifiedDescriptionName = {
    			"A custom Medal",
    			"^FFFFFF_^000000",
    			"Weight:^009900 1^000000"
    		},
    		slotCount = 0,
    		ClassNum = 0,
    		costume = false
    	},

    That's it!

    Restart your client.

    P.S the Æ÷ÀåÁö is taken from the item # 7175 which uses the pic below
    image.png.a643826baf487308568c209ab1e1ebc2.png

    • Upvote 2
    • Like 1
  5. I know that the food buffs uses gogi's (str_gogi, agi_gogi... etc etc. you get the idea). I wanted to create a separate buff just like what's on nova RO. I tried editing via clientside but it's not working. I believed that I have to do something with the source too.
     

    stateiconimginfo.lub
    [EFST_IDs.EFST_SAVAGE_STEAK] = "STRFOOD20.tga", -- I have to create this because its not in the stateiconimginfo
    

    Not working.

    Goal:

    To be able to create two different buff for +10 Foods and + 20 Foods.

    *EDIT

    Conclusion:
    I found out that this buff is hardcoded. So no matter what you do in stateiconimginfo will not work. Unless you diff your exe with this patch.
    image.thumb.png.8f849b46bd72e3d541600edcf89719c0.png
    But once you do most of the icon buff will not show like blessing and increase agi. Since them too are hardcoded.

    Possible Solution:
    1. Edit thru source on how the original food buff works when calling the icon?
    2. Creating Custom Food Buff that have the settings of the original food buff
    3. Diffing the patch in the exe but must have declared all icons in stateiconimginfo which we all know a hassle.

  6. On 9/4/2023 at 10:44 AM, luizinhomt said:

    Good evening, would anyone know a way to restrict the use of the @pk command for 10 seconds if you are taking battle damage

    Ideally. @pk command should only work in towns. Not on the battlefield.

  7. I have this working custom BGM that works in my Client. But when i edit the mp3tags it doesn't play anymore. Some BGM i have have tags and they are working. Do we have a tool that properly converts any mp3 to be used in RO?

    BTW, I am editing tags via right click then put infos. I also tried online server such as https://tagmp3.net/

×
×
  • Create New...