Jump to content

gidzdlcrz

Members
  • Content Count

    74
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by gidzdlcrz


  1. On 12/13/2020 at 11:58 PM, deviruzy said:

     Hello.

     I've been trying to set a server via this guide: 

     

    and i'm having a hard time on Step 3e. How do you load main.sql? Below is my current state. I've managed to make hercules as default schema and that's it. I'm stuck 🙁. Can I get some help please? Thank you.

     

    https://ibb.co/bNHZGGM

     

    workbench.jpg

     

    from there. You click the OPEN SQL SCRIPT FILE
    image.png.ee3707b54f45c1b665494f9c35a5ad6b.png



    image.png.fd06b698df89aa983267a1495243c7cc.png

    After you saw the texts generated in your query window hit the lightning logo. 

     

    Do the same with logs.
     


  2. Hello hercules folks. Ive been using this broadcaster npc of mine way back year 2014. Now i would like to update its feature.

    prontera,187,210,3	script	Broadcaster#1::BC	894,{
    	
    	set @npcname$, "^FF9300 Broadcaster ^000000";
    	set @header$,"[^0000ff" + @npcname$ + "^000000]";
    	set broadcastfee, 3000000;
    
    	mes @header$;
    	mes "Hi, I'm the Broadcaster.";
    	mes "I can Broadcast a message for you.";
    	mes " ";
    	mes " ";
    	mes " ";
    	mes "It costs ^ff0000"+ broadcastfee +"^000000 zeny.";
    	next;
    	mes @header$;
    	mes "Would you like to Broadcast?";
    	next;
    	switch (select("Yes","Nevermind")){
    	case 1:
    		if(Broadcast> gettimetick(2)) {
    		mes @header$;
    		mes "Sorry you have to wait for 1 min.";
    		close;
    		}
    		mes @header$;
    		if(Zeny<3000000) goto $nozenybc;
    		set Zeny,zeny - broadcastfee;
    		mes "Please input your message.";
    		next;
    		input broadcast$;
    		announce "Shout from "+strcharinfo(0)+": "+broadcast$+"",0,0x5AFF00; // Edit 5AFF00 for color code HTML Color Code
    		close2;
    		set Broadcast, gettimetick(2)+60; //Timer 60 = 1 minute/s
    		dispbottom "Broadcaster: Please wait for 1min until next broadcast to avoid flooding.";
    		end;
    	case 2:
    		mes @header$;
    		mes "Suit yourself.";
    		close;
    }
    
    	$nozenybc:
    		mes "You don't have enough zeny.";
    		close;
    }

    ^ This is the script. Simple Broadcaster NPC with a fee for every broadcast.

    Now there's this Ragnarok Server that using somehow similar NPC. Yet, they have 3rd option. Its called Automated Broadcast. Check my screenies below.

    This is the broadcaster NPC with Auto Broadcast menu. (see the rest of the screenshot below to see how the NPC's behavior)
    image.png.929155f8470b66beb0ba7def6ac0fb6b.pngimage.png.079fe4d8b783b3d02d9be294b0f45473.png

     

    image.png.0f7ee56258feaca323493bd6862adc18.png
     

    image.png.1a4ebe0e2ff52659d0fd9981ece63dda.png

     

    image.png.5078163237c9e71b40328f2ef664b783.png


    After you input your desired number you can review it to proceed or not.

     

    image.png.1d22dfde8d468f416a0bd03fc97c9816.png


     

    Annie made me a script which is similar to this one. Can be used as a case 3 for my script. But i dont know how to link it to my current script. Also, its asking for item. I cant make it to ask for zeny instead. Here's what annie wrote.

     

    prontera,155,185,5    script    sjdfsdlf    1_F_MARIA,{
        mes "input your broadcast message";
        mes "each broadcast use 1 "+ F_MesItemInfo(Poring_Coin);
        if (!countitem(Poring_Coin))
            close;
        next;
        input .@text$;
        mes "input how many times to broadcast";
        next;
        input .@num;
        if (countitem(Poring_Coin) < .@num) {
            mes "you don't have enough "+ F_MesItemInfo(Poring_Coin);
            close;
        }
        mes "after closing this dialog box I'll start broadcast";
        close2;
        if (countitem(Poring_Coin) < .@num) { // hacking recheck
            mes "you don't have enough "+ F_MesItemInfo(Poring_Coin);
            close;
        }
        delitem Poring_Coin, .@num;
        while (.@loop++ < .@num) {
            announce .@text$, bc_all;
            sleep 1000;
        }
        end;
    }

    Good Script indeed.

    Thank you so much!


  3. On 9/18/2020 at 7:32 AM, AnnieRuru said:

    2. "@dotaannounce" off

    hmm ... after talked to some people, they want the announcement set to global, but then some players want to see who are dead, and some players doesn't bother

    and I also saw this is a custom modification ... can be made into this script but ... nah ... I'll do it when I feel like it


    Waiting for this. Imagine some people would like to have some peace and quiet time. They will be opt out to PVP Announcements. Hehe!

    Anyway here's the script you can add to manually truncate the PVP Ladder (Must be 99 GM Account).

    Again, same principle. Just add the BOLD to the script. Find these lines.

    Quote

    prontera,166,188,5 script PvP-StatsViewer 1_F_MARIA,{

    .@npcname$ = strnpcinfo(NPC_NAME_VISIBLE);

    while (true) {

    mes "["+ .@npcname$ +"]";

    mes "Hello "+ strcharinfo(PC_NAME) +"...";

    mes "If you want to I can show you your PVP stats.";

    next;

    switch (select("Most Kills","Highest Streak","Longest Ownage","Own Information","Explanation",(getgroupid() < 99 )?"":"^FF0000[GM]^000000 Reset Ladder")) {

    mes "["+ .@npcname$ +"]";

    case 1:.........
    ...
    ...
    ...

    case 5:

    mes "Explanation for Most Kills:";

    mes " ";

    mes "^996600Rank. ^006699NAME ^00AA00[Total Kills] ^FF0000<Deaths>^000000";

    mes " ";

    mes "--------------------------------";

    mes " ";

    mes "The ^00AA00Kills^000000 added when a player kills another player.";

    mes " ";

    mes "^FF0000Deaths^000000 count increase when a player killed by another player, or suicide (eg: Grand Cross).";

    mes " ";

    mes "A player killed by monsters, homunculus or pets will not add the kills or deaths count.";

    next;

    mes "["+ .@npcname$ +"]";

    mes "Explanation for Highest Streak:";

    mes " ";

    mes "^996600Rank. ^006699NAME ^70AC11{Highest Streak} ^000000on :";

    mes " ^EE8800TIME^000000";

    mes " ";

    mes "--------------------------------";

    mes " ";

    mes "The ^70AC11Streak^000000 are added every time a player kills another player. It will reset upon log out, killed by another player, or suicide (eg: Sacrifice).";

    mes " ";

    mes "Then it record in the server the ^EE8800TIME^000000 when that player got that highest streak.";

    mes " ";

    mes "A player killed by monsters, homunculus or pets will not reset the streak.";

    mes " ";

    mes "--------------------------------";

    mes " ";

    mes "The numbers of straight kills to get these announcements are :";

    mes "^70AC11"+ getvariableofnpc(.killingspree,"DOTAPVP") +"^000000 : Killing Spree";

    mes "^70AC11"+ getvariableofnpc(.dominating,"DOTAPVP") +"^000000 : Dominating";

    mes "^70AC11"+ getvariableofnpc(.megakill,"DOTAPVP") +"^000000 : Mega Kill";

    mes "^70AC11"+ getvariableofnpc(.unstoppable,"DOTAPVP") +"^000000 : Unstoppable";

    mes "^70AC11"+ getvariableofnpc(.wickedsick,"DOTAPVP") +"^000000 : Wicked Sick";

    mes "^70AC11"+ getvariableofnpc(.monsterkill,"DOTAPVP") +"^000000 : Monster Kill";

    mes "^70AC11"+ getvariableofnpc(.godlike,"DOTAPVP") +"^000000 : Godlike";

    mes "^70AC11"+ getvariableofnpc(.holyshit,"DOTAPVP") +"^000000 : Beyond Godlike";

    next;

    mes "["+ .@npcname$ +"]";

    mes "Explanation for Longest Ownage:";

    mes " ";

    mes "^996600Rank. ^006699NAME ^00AAAA(Longest Ownage) ^000000on :";

    mes " ^EE8800TIME^000000";

    mes " ";

    mes "--------------------------------";

    mes " ";

    mes "The ^00AAAAOwnage^000000 added every time any guild members killed another player that doesn't belong to his/her guild. It will reset when any of the guild member was killed by ANY player, including his/her guild member.";

    mes " ";

    mes "Then it record in the server the ^EE8800TIME^000000 when the guild got that longest ownage.";

    mes " ";

    mes "If the server went under maintainance, the current ownage will survive after the server restart.";

    mes " ";

    mes "Any guild member killed by monster, homunculus or pets will not reset the ownage count.";

    next;

    if (getvariableofnpc(.lvltokill,"DOTAPVP")) {

    mes "["+ .@npcname$ +"]";

    mes "You must kill another player with minimum base level of "+ getvariableofnpc(.lvltokill,"DOTAPVP") +", in order to get an announcement or get in the ladder.";

    mes " ";

    mes "It's possible for a base level 1 novice kills a base level 99 player and still can get in the ladder.";

    mes "However when a player level 99 kills a level 1 novice will get nothing.";

    next;

    }

    if (getvariableofnpc(.counttopunish,"DOTAPVP")) {

    mes "["+ .@npcname$ +"]";

    mes "Some noob players try to kill the same person over and over again in hope of getting his/her name appear in the ladder.";

    mes "However if you trying to do the same thing on this ladder, your name will announce to the public, and your action will be recorded into the server to notify the GMs.";

    next;

    }

    if (getvariableofnpc(.minlvlrange,"DOTAPVP")) {

    mes "["+ .@npcname$ +"]";

    mes "When you kill another player thats lower base level than you, the base level gap between you and that player must not more than "+ getvariableofnpc(.minlvlrange,"DOTAPVP") +".";

    mes " ";

    if (getvariableofnpc(.minlvlrange,"DOTAPVP") >= 200)

    mes "In other words, if your base level is 500, the player you killed must be at least level "+(500 - getvariableofnpc(.minlvlrange,"DOTAPVP"))+" then only you will get the announcement and in the ladder.";

    else if (getvariableofnpc(.minlvlrange,"DOTAPVP") >= 70)

    mes "In other words, if your base level is 255, the player you killed must be at least level "+(255 - getvariableofnpc(.minlvlrange,"DOTAPVP"))+" then only you will get the announcement and in the ladder.";

    else

    mes "In other words, if your base level is 99, the player you killed must be at least level "+(99 - getvariableofnpc(.minlvlrange,"DOTAPVP"))+" then only you will get the announcement and in the ladder.";

    mes "Higher base level kills lower level gets nothing, however lower level player kills higher level will get the announcement.";

    next;

    }

    break;

     case 6:
    mes "Would you like to Reset the ladder?";
    next;
    menu "No.",PVP_NO,"Confirmation - Yes",PVP_YES;
                
    PVP_NO:
    mes "["+ .@npcname$ +"]";
    mes "Suit yourself.";
    next;
    break;
                
    PVP_YES:
    query_sql("TRUNCATE TABLE `pvpladder`");
    query_sql("TRUNCATE TABLE `ownladder`");
    mes "["+ .@npcname$ +"]";
    mes "PVP Ladder has been reset.";
    next;
    break;
    close;

    }

    }

    }

     


  4. For the people who wants their costume robe to show up!

    Find these  lines and add this BOLD.

    Quote

    .@query$  = "SELECT `char`.`char_id`, `char`.`name`, `char`.`guild_id`, `char`.`class`, `char`.`sex`, `char`.`hair`, `char`.`hair_color`, `char`.`clothes_color`, `char`.`body`, `char`.`head_top`, `char`.`head_mid`, `char`.`head_bottom`, `char`.`robe`, ";

     

    Quote

    .@nb = query_sql(.@query$, .@cid, .@name$, .@guild_id, .@class, .@sex$, .@hair, .@hair_color, .@clothes_color, .@body, .@head_top, .@head_mid, .@head_bottom, .@robe, .@kills, .@streaks, .@deaths);

     

    Quote

            setunitdata .statue[.@i +1], UNPC_HEADTOP, .@head_top[.@i];
            setunitdata .statue[.@i +1], UNPC_HEADMIDDLE, .@head_mid[.@i];
            setunitdata .statue[.@i +1], UNPC_HEADBOTTOM, .@head_bottom[.@i];
            setunitdata .statue[.@i +1], UNPC_ROBE, .@robe[.@i];

     

    Alright.

     

    *Edit again. I forgot to mention that this is for rathena. 😝


  5. 12 hours ago, AnnieRuru said:

    another server from rathena side told me his server has animated sprite overlapping on the statue

    so again its YOUR problem that having animated sprite ... but at least this one can be fix easily by resetting the UDT_HEADTOP|UDT_HEADMIDDLE|UDT_HEADBOTTOM back to 0

    statue_overlap_sprite.jpg

     

    3.5 - script

    - add .fix_custom_sprite setting to fix your server having custom animation equipment

     

    simple script conversion

    https://github.com/AnnieRuru/Release/blob/master/scripts/PvP %26 GvG/Dota PVP ladder/dota_sql_ladder_3.5r.txt

     

     

     

    at least I don't find anything hassle to convert this script into rathena ... unlike promotion code ... already 3 rathena members ask me to do that, and I turn down every time


    OMG its really Christmas! Those small fonts. 😁


  6. On 10/9/2020 at 1:20 AM, Sikdope said:

    Hi anyone else how to fix when using the box of thunder no longer walking speed thanks!

     

    12028,Box_Of_Thunder,Box of Thunder,2,1000,0,200,,,,,0xFFFFFFFF,7,2,,,2,,,{ sc_start SC_SpeedUp0,20000,20; },{},{}


    You have to buff it up.

    Mind you walking speed are not stackable.


  7. On 10/10/2020 at 10:53 PM, AnnieRuru said:

    OnMinute40: if (mobcount(.Map$, strnpcinfo(0)+"::OnMobKilled") == 0) end; killmonster .Map$, strnpcinfo(0)+"::OnMobKilled"; announce "All left over mushroom has been removed", bc_all; end;

    
    OnMinute40:
    	if (mobcount(.Map$, strnpcinfo(0)+"::OnMobKilled") == 0)
    		end;
    	killmonster .Map$, strnpcinfo(0)+"::OnMobKilled";
    	announce "All left over mushroom has been removed", bc_all;
    	end;

     

    I don't use rAthena but should work


    Err! Why i didnt get notification for this. I will try @AnnieRuru. I'll give feedback after i test this. ♥


  8. we also have this on Herc as ive checked my fresh trunk.

     

    //===== Hercules Script ======================================
    //= Find the Mushroom
    //===== By: ==================================================
    //= Mysterious
    //===== Current Version: =====================================
    //= 3.6a
    //===== Description: =========================================
    //= Find the Mushroom - random amount of Mushrooms spawns in random maps.
    //= Players need to find these mushrooms and kill them to gain prizes!
    //===== Additional Comments: =================================
    //= 3.0 Fully Functional with Rewritten script. [Mysterious]
    //= 3.6a Slightly edited. [Euphy]
    //============================================================
    
    prontera,142,228,6	script	Find the Mushroom	BLACK_MUSHROOM,{
    	mes "[ Find The Mushroom ]";
    	if (!.status)
    		mes "There is no event at the moment!";
    	else {
    		mes "There are "+.Spawn+" Mushrooms left in "+.Map$+"!";
    		mes "Find and kill the mushrooms to gain "+getitemname(.Prize)+"!";
    	}
    	if (.status || getgmlevel() < .GM) close;
    	mes "Start the event?";
    	next;
    	if(select("- No", "- Yes") == 1) close;
    	donpcevent strnpcinfo(NPC_NAME)+"::OnMinute10";
    	mes "[ Find The Mushroom ]";
    	mes "Event started!";
    	close;
    
    OnInit:
    	set .Prize,512;	// Reward item ID
    	set .Amount,10;	// Reward item amount
    	set .GM,60;	// GM level required to access NPC
    	setarray .maps$[0],"izlude","geffen","morocc","prontera"; // Possible maps
    	end;
    
    OnMinute10:	// Start time (every hour)
    	if (.status) end;
    	set .status,1;
    	set .Spawn,rand(1,10);	// How many Mushrooms should spawn?
    	set .Map$,.maps$[rand(getarraysize(.maps$))];
    	killmonster(.Map$, "all");
    	monster .Map$,0,0,"Please don't kill me!",1084,.Spawn,strnpcinfo(NPC_NAME)+"::OnMobKilled";
    	announce "Find the Mushroom : Total of "+.Spawn+" Mushrooms have been spawned in "+.Map$+"!",0;
    	sleep 2500;
    	announce "Find the Mushroom : Every Mushroom you kill will give you "+getitemname(.Prize)+"!",0;
    	end;
    
    OnMobKilled:
    	set .Spawn, .Spawn - 1;
    	if (playerattached() != 0) {
    		getitem .Prize, .Amount;
    		if (.Spawn)
    			announce "[ "+strcharinfo(PC_NAME)+" ] has killed a Mushroom. There are now "+.Spawn+" Mushroom(s) left.",bc_map;
    	}	
    	if (!.Spawn) {
    		announce "The Find the Mushroom Event has ended. All the Mushrooms have been killed.",0;
    		set .status,0;
    	}
    	end;
    }

    Link: https://github.com/HerculesWS/Hercules/blob/stable/npc/custom/events/mushroom_event.txt


  9. 4 hours ago, evilpuncker said:

    before the OnMobKilled: label add the following:

    OnMinute40: killmonster .event_map$, "OnMobKilled"; end

    
    OnMinute40:
    	killmonster .event_map$, "OnMobKilled";
    	end

     

    I don't use rAthena but should work

     

    Will test this. :)

    *Edit

    Doesn't work. I even tried OnTimer.. Hmmm


  10. //===== rAthena Script ======================================= 
    //= Find the Mushroom
    //===== By: ================================================== 
    //= Mysterious
    //===== Current Version: ===================================== 
    //= 3.6a
    //===== Compatible With: ===================================== 
    //= rAthena Project
    //===== Description: ========================================= 
    //= Find the Mushroom - random amount of Mushrooms spawns in random maps.
    //= Players need to find these mushrooms and kill them to gain prizes!
    //===== Additional Comments: =================================
    //= 3.0 Fully Functional with Rewritten script. [Mysterious]
    //= 3.6a Slightly edited. [Euphy]
    //============================================================ 
    
    prontera,142,228,6	script	Find the Mushroom	1084,{
    	mes "[ Find The Mushroom ]";
    	if (.status == 1) {
    		.@count = mobcount( .event_map$, strnpcinfo(0) + "::OnMobKilled" );
    		if (.@count > 0) {
    			mes "There are " + .@count + " Mushrooms left in " + .event_map$ + "!";
    			mes "Find and kill the mushrooms to gain " + getitemname(.prize) + "!";
    			close;
    		}
    		.event_map$ = "";
    		.status = 0;
    		mes "All the mushrooms are killed?";
    	}
    	mes "There is no event at the moment!";
    	if (.status || getgmlevel() < .GM) close;
    	mes "Start the event?";
    	next;
    	if (select("- No:- Yes") == 1) close;
    	donpcevent strnpcinfo(0) + "::OnMinute10";
    	mes "[ Find The Mushroom ]";
    	mes "Event started!";
    	close;
    
    OnInit:
    	.prize = 512;	// Reward item ID
    	.amount = 10;	// Reward item amount
    	.GM = 60;		// GM level required to access NPC
    	setarray .maps_list$[0],"izlude","geffen","morocc","prontera"; // Possible maps
    	end;
    
    OnMinute10:	// Start time (every hour)
    	if (.status) end;
    	.status = 1;
    	.@spawn = rand(1,10);	// How many Mushrooms should spawn?
    	.event_map$ = .maps_list$[ rand(getarraysize(.maps_list$)) ];
    	.@label$ = strnpcinfo(0) + "::OnMobKilled";
    	killmonster .event_map$, .@label$;
    	monster .event_map$,0,0,"Please don't kill me!",1084,.@spawn, .@label$;
    	announce "Find the Mushroom : Total of " + .@spawn + " Mushrooms have been spawned in " + .event_map$ + "!",0;
    	sleep 2500;
    	announce "Find the Mushroom : Every Mushroom you kill will give you " + getitemname(.prize) + "!",0;
    	end;
    
    OnMobKilled:
    	if (playerattached() == 0)
    		end;
    	getitem .prize, .amount;
    	.@spawn = mobcount( .event_map$, strnpcinfo(0) + "::OnMobKilled" );
    	if (.@spawn > 0)
    		announce "[ " + strcharinfo(0) + " ] has killed a Mushroom. There are now " + .@spawn + " Mushroom(s) left.",bc_map;
    	else {
    		announce "The Find the Mushroom Event has ended. All the Mushrooms have been killed.",0;
    		.status = 0;
    		.event_map$ = "";
    	}
    	end;
    }

    ^ This is the whole script. Can we have an option to set time limit for this quest? Because it wont re start until all the mushroom has been slain. I am thinking to have 30 minutes for every event. Thanks!


  11. 5 hours ago, Sikdope said:

    Hello ma'am sorry for the late reply, I made a new video for clarity and here the whole script!    https://pastebin.com/uJwwxFbK  I'm sorry if I ask for help


    The one you recorded is a Break the Seal Quest. The one you posted is a different version. They all come in Seal quests like annie told you. Whats wrong with the one you have? Basically they are just the same thing. And its working upon testing it.


  12. 16 hours ago, AnnieRuru said:

    and what is token quest exactly ?

     

    this kind of topic .... I usually lock them up immediately because there are not enough explanation ...

     

     

    https://rathena.org/board/topic/124678-treasure-hunter-quests-regarding-the-taken-quest/

    I went over to rathena forum, you also just say "gimme your token quest script I saw on other server pls help" but you never say how your players gonna get token in the first place


    Welcome back @AnnieRuru ♥

    Sorry. Anyway this is included in rathena/herc trunk. \npc\custom\quests\thq 

    So this is how it works.

     

    You will go there to register yourself as a Treasure Hunter. Once you do. You will able to take the quest/go to their exclusive member token shop. Basically its a point system. Anyway. The main concern is regarding the THQS_QuestNPC.txt. This is the npc in charge of giving you a quest. But its somehow lacking feature. Some server already made possible to re check your the quest you've taken.

    Let me provide you screenshot.

    Okay this is me taking a quest
    image.png.fe98e78e0e72b601c613389bd11ab991.png

    Lets say i selected Aww shoot!
    image.png.70abbfea9427f9879e5d820f50f9d229.png 

    image.png.17bf3a8dc22e9a5a3ef848b04390b18a.png

     

    Now i already taken the quest and for some reason i forgot what it is..

    The option i will have is to talk again to the same NPC and cancel my quest (pay the fine)image.png.b38d8afe23aa811f05239db57c9baef7.png
     

    This is what im requesting. An option to recheck what quest you've taken.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.