Jump to content

Haziel

Content Moderator
  • Posts

    639
  • Joined

  • Last visited

  • Days Won

    88

Posts posted by Haziel

  1. Every string variable should end with $.
    Like: #bankpoints$

    Examples:
      name  - permanent character integer variable
      name$ - permanent character string variable
     @name  - temporary character integer variable
     @name$ - temporary character string variable
     $name  - permanent global integer variable
     $name$ - permanent global string variable
    $@name  - temporary global integer variable
    $@name$ - temporary global string variable
     .name  - NPC integer variable
     .name$ - NPC string variable
    .@name  - scope integer variable
    .@name$ - scope string variable
     #name  - permanent local account integer variable
     #name$ - permanent local account string variable
    ##name  - permanent global account integer variable
    ##name$ - permanent global account string variable
    
    
    • Upvote 1
  2. Here.
    As simple as that.

    Please, when posting scripts, use the codebox.

    prontera,147,171,5	script	Soul Link Santa	718,{
    	set .@n$,"^0000FF[ Soul Linker NPC ]^000000";
    	set .@time, 300000; // the buff last 5 minutes
    	set @itemcost,7179;
    	
    	mes .@n$;
    	mes "Hello "+strcharinfo(0)+",do";
    	mes "You want me to Soul Link you? It cost 10m per link <3";
    	
    	switch(select("Yes:No")) {
    		case 1:
    			if(!countitem(@itemcost)) goto l_noitem;
    			delitem @itemcost, 1;
    			switch ( basejob ) {
    				case Job_Alchemist: set .@spirit, 445; break;
    				case Job_Monk: set .@spirit, 447; break;
    				case Job_Star_Gladiator: set .@spirit, 448; break;
    				case Job_Sage: set .@spirit, 449; break;
    				case Job_Crusader: set .@spirit, 450; break;
    				case Job_SuperNovice: set .@spirit, 451; break;
    				case Job_Knight: set .@spirit, 452; break;
    				case Job_Wizard: set .@spirit, 453; break;
    				case Job_Priest: set .@spirit, 454; break;
    				case Job_Bard: case Job_Dancer: set .@spirit, 455; break;
    				case Job_Rogue: set .@spirit, 456; break;
    				case Job_Assassin: set .@spirit, 457; break;
    				case Job_Blacksmith: set .@spirit, 458; break;
    				case Job_Hunter: set .@spirit, 460; break;
    				case Job_Soul_Linker: set .@spirit, 461; break;
    		default:
    				if ( upper == 1 && baselevel < 70 ) set .@spirit, 494;
    			}
    			if ( .@spirit ) {
    				sc_start4 sc_spirit, .@time, 5, .@spirit,0,0;
    				skilleffect .@spirit, 5;
    			}
    		case 2:
    			mes .@n$;
    			mes "Okay,goodbye!";
    			close;
    	}
    l_noitem:
    	mes .@n$;
    	mes "You need one " + getitemname(@itemcost) + " for a Soul Link.";
    	close;
    }
    
  3. Well, on item script just:

    if (BaseLevel < 70) bonus bAllStats,3;
    

    It reads: If BaseLevel is less than 70, give All Stats + 3.

    And, for limiting it on certain maps, it's better to disable the item on that specific map, but, you can:

    if (strcharinfo(3) != "prontera") bonus bAllStats,3;
    

    It reads: If current map isn't prontera, give All Stats + 3.

     

    But if it's several maps, I, again, would prefer to use db/item_noequip.txt.

    • Upvote 1
  4. Harmony Vanguard has both source and client modifications, badly hard to get them out without having the proper Harmony installation files, or even, the files from before the changes.
    My advice would be, actually, rebuild your emulator, but you can try to see the .diff from the installation files and revert all the changes file by file.

  5. ._. Azeroth...

    addrid(<type>{,<flag>{,<parameters>}});
    

    Look:

    This command will attach other RIDs to the current script without detaching the
    invoking RID. It returns 1 if successful and 0 upon failure.
    

    And then:

    <type> determines what RIDs are attached:
     0: All players in the server.
    

    It means, once you run this command, your current script will be attached to everyone in the whole server, so, WHATEVER the script does after it, if it's possible, will be delivered to EVERYONE.

    As I said:

    Add all players in the server to the script RID, send your message and end it.
    
  6. Add all players in the server to the script RID, send your message and end it.

    addrid(<type>{,<flag>{,<parameters>}});
    
    This command will attach other RIDs to the current script without detaching the
    invoking RID. It returns 1 if successful and 0 upon failure.
    
    <type> determines what RIDs are attached:
     0: All players in the server.
     1: All players in the map of the invoking player, or the invoking NPC if no player is attached.
     2: Party members of a specified party ID.
        [ Parameters: <party id> ]
     3: Guild members of a specified guild ID.
        [ Parameters: <guild id> ]
     4: All players in a specified area of the map of the invoking player (or NPC).
        [ Parameters: <x0>,<y0>,<x1>,<y1> ]
     Account ID: If type is Account ID, attach the specified account ID.
    
    <flag> can prevent certain players from being attached:
     0: Players are always attached. (default)
     1: Players currently running another script will not be attached.
    

    Otherwise, you could just query players online, then, make a for using getusers(1) as a limit, sending the message to everyone.

×
×
  • Create New...