Jump to content

Zell

Members
  • Posts

    411
  • Joined

  • Last visited

  • Days Won

    28

Everything posted by Zell

  1. Zell

    effect

    You can use hateffects to use any game effect and clean it
  2. View File [Script Command] getdconst & setdconst First of all, yes, I know that this break the "const" concept, but I really miss "static values" in script engine. Yes, I know that we can use $vars but it's a lot pretty using const logic. If you don't know what is a "const", open your db/const.txt file In the end of file, you can add something like this: X_VALUE%TAB%1005 And now, you can call X_VALUE in any script and the script will know that X_VALUE is not a player script, it's a """"global"""" variable, so you can call it with or without a player attached. And now we came to my commands. getdsconst allow you to get a constant dynamically like getd. For sample: .@var = getdconst( "X" + "_" + "VALUE" ); This would return 1005. And now with setdconst we can change those as well. setdconst( "X_VALUE", 2020 ); Remember, when you restar t your server, this constant will be 1005 again! Here another sample script: prontera,150,150,5 Script CommandsTest 90,{ .@const$[0] = "SWORDCLAN"; .@const$[1] = "ARCWANDCLAN"; .@const$[2] = "GOLDENMACECLAN"; for( ; .@i < getarraysize( .@const$ ); .@i++ ) mes "Contant Value of [" + .@const$[.@i] + "] is " + getdconst( .@const$[.@i] ); next; mes "I will now, change all const values to +1"; for( .@i = 0; .@i < getarraysize( .@const$ ); .@i++ ) setdconst( .@const$[.@i], getdconst( .@const$[.@i] ) + 1 ); close; } Submitter Zell Submitted 04/03/2020 Category Source Modifications Video Content Author Zell  
  3. View File [Script Command] npcisnear This commands verify if any NPC is near the distance of a player. Can be useful for some script restrictions. Script Sample: prontera,150,150,5 Script Curious Boy 90,{ .@n$ = "[Curious Boy]"; .@distance = 5; mes .@n$; if(isnpcsnear(getcharid(0), .@distance)) mes "Sorry, I will only talk with you when no NPC is near you!"; else mes "Hi!"; close; } Submitter Zell Submitted 04/02/2020 Category Source Modifications Video Content Author Zell  
  4. Version 1.0.0

    33 downloads

    First of all, yes, I know that this break the "const" concept, but I really miss "static values" in script engine. Yes, I know that we can use $vars but it's a lot pretty using const logic. If you don't know what is a "const", open your db/const.txt file In the end of file, you can add something like this: X_VALUE%TAB%1005 And now, you can call X_VALUE in any script and the script will know that X_VALUE is not a player script, it's a """"global"""" variable, so you can call it with or without a player attached. And now we came to my commands. getdsconst allow you to get a constant dynamically like getd. For sample: .@var = getdconst( "X" + "_" + "VALUE" ); This would return 1005. And now with setdconst we can change those as well. setdconst( "X_VALUE", 2020 ); Remember, when you restar t your server, this constant will be 1005 again! Here another sample script: prontera,150,150,5 Script CommandsTest 90,{ .@const$[0] = "SWORDCLAN"; .@const$[1] = "ARCWANDCLAN"; .@const$[2] = "GOLDENMACECLAN"; for( ; .@i < getarraysize( .@const$ ); .@i++ ) mes "Contant Value of [" + .@const$[.@i] + "] is " + getdconst( .@const$[.@i] ); next; mes "I will now, change all const values to +1"; for( .@i = 0; .@i < getarraysize( .@const$ ); .@i++ ) setdconst( .@const$[.@i], getdconst( .@const$[.@i] ) + 1 ); close; }
    Free
  5. Version 1.0.0

    73 downloads

    This commands verify if any NPC is near the distance of a player. Can be useful for some script restrictions. Script Sample: prontera,150,150,5 Script Curious Boy 90,{ .@n$ = "[Curious Boy]"; .@distance = 5; mes .@n$; if(isnpcsnear(getcharid(0), .@distance)) mes "Sorry, I will only talk with you when no NPC is near you!"; else mes "Hi!"; close; }
    Free
  6. I'm using the same script posted here, its working. You have to make the source edits wich I post, as you can see you are in "source modifications" section, no "Script Section", so you have to modify the source to script works. The script sample will work after you make the source modifies I put in txt file donwload
  7. Hey, I tested and is everything working. Prob you make the wrong changes. Undo and try again to applay the modifies.
  8. View File [Script Command] isselling - Discovery if a npc is selling a item by ID This commands verify if a npc is selling, returning 1 to yes and 0 to no. Its very useful to black market scripts for players who knows item id and don't want to lost time searching where items are sold. Obs: Didn't test the sample script, but you can have a idea in how to use. Sample Script: prontera,150,150,5 Script Who's Selling 90,{ .@n$ = "[Who is Selling]"; mes .@n$; // Its nice to put a delay in this script if you use a lot of stores in one map and in your .npc$ array // I'm using 5 seconds in this sample. if((gettimetick(2) - whosell_delay) < 5) { mes "You have to wait 5 seconds to use me again."; close; } mes "Tell me the item ID you want to know what npc's is selling it!"; input .@id; // You can test this sample with 607 ID whosell_delay = gettimetick(2); for( .@i = 1; .@i < getarraysize(.npcs$); .@i++) { .@found = isselling( getcharid(0), .npcs$[.@i], .@id ); if( .@found ) { next; mes "Ha, this item is " + getitemname( .@id ) + ", right?"; next; mes .@n$; mes "Who is selling it is " + .npcs$[.@i] + "!"; close2; showevent QTYPE_EVENT,QMARK_YELLOW,getcharid(0),.npcs$[.@i]; // Show in npc a ballon to player end; } } next; mes .@n$; mes "No npc selling it :)"; end; OnInit: setarray .npcs$[1],"Store 1","Store 2"; end; } prontera,151,150,5 shop Store 1 90,607:1000 prontera,152,150,5 shop Store 2 90,610:1000 Submitter Zell Submitted 03/31/2020 Category Source Modifications Video Content Author Zell  
  9. Version 1.0.0

    129 downloads

    This commands verify if a npc is selling, returning 1 to yes and 0 to no. Its very useful to black market scripts for players who knows item id and don't want to lost time searching where items are sold. Obs: Didn't test the sample script, but you can have a idea in how to use. Sample Script: prontera,150,150,5 Script Who's Selling 90,{ .@n$ = "[Who is Selling]"; mes .@n$; // Its nice to put a delay in this script if you use a lot of stores in one map and in your .npc$ array // I'm using 5 seconds in this sample. if((gettimetick(2) - whosell_delay) < 5) { mes "You have to wait 5 seconds to use me again."; close; } mes "Tell me the item ID you want to know what npc's is selling it!"; input .@id; // You can test this sample with 607 ID whosell_delay = gettimetick(2); for( .@i = 1; .@i < getarraysize(.npcs$); .@i++) { .@found = isselling( getcharid(0), .npcs$[.@i], .@id ); if( .@found ) { next; mes "Ha, this item is " + getitemname( .@id ) + ", right?"; next; mes .@n$; mes "Who is selling it is " + .npcs$[.@i] + "!"; close2; showevent QTYPE_EVENT,QMARK_YELLOW,getcharid(0),.npcs$[.@i]; // Show in npc a ballon to player end; } } next; mes .@n$; mes "No npc selling it :)"; end; OnInit: setarray .npcs$[1],"Store 1","Store 2"; end; } prontera,151,150,5 shop Store 1 90,607:1000 prontera,152,150,5 shop Store 2 90,610:1000
    Free
  10. Hello, as some know I am leaving the community to grow professionally. I recently closed freelancers with great monetary returns and learning that will help me open my business. It's been 11 years in this community and thanks to the Ragnarok emulators I became a programmer. So that's goodbye, but I don't leave without leaving a new era for those who continue. I'm leaving two of my projects in which I use fake hooks to create new screens, interactions, walk with WASD and other systems. The code is not very clean because I had no idea I was distributing it. I'm back to RO sceneario cause now I have a good job and more free time :c I will not teach how to use (but for experiend user's I can support, just ask in this post your doubts), but I appreciate it if someday someone more experienced guides on how to hook. Emulator: https://bitbucket.org/lukasrmattos/ragnaghostz/src/master/ Launcher & Hook Logic https://bitbucket.org/lukasrmattos/rgzlauncher/src/master/ Sample of system in those projects: https://streamable.com/m8291
  11. A little video compilation with some of those system alive https://streamable.com/m8291
  12. Para mexer no banco de dados do servidor te recomendo fortemente a utilizar essa ferramenta: E esquece esse pessoal tóxico aí. Por mais que a sua pergunta seja fácil de encontrar no google, ninguém nasce sabendo (inclusive a como se usar o google, isso é uma arte) sua dúvida não é tão assombrosa assim. Quando eu comecei a mexer com isso se o pessoal fosse assim em 2009 talvez eu tivesse desistido. Vou te ajudar no raciocinio que você poderia ter tomado para achar o que você precisa. Você quer modificar algo que já existe, certo? Então qual a melhor alternativa? Saber como se cria para saber como se modifica. Então apenas buscando no google "rathena add new item". Na primeira página já tem as respostas para sua pergunta: https://github.com/rathena/rathena/wiki/Custom-Items https://rathena.org/board/topic/83136-adding-custom-items-renewal/ Dessa forma além de você não ter que lidar com certas pessoas e comentários, você ainda resolve rapidamente seu problema sem precisar esperar.
  13. Actually, this is removing instance maps when deleting. If you clone some maps and so delete. When you enter in some instances map are black.
  14. Updated with Mastery Video (+200 masteries) Masteries can completely OP a skill when reaching max level as in sample video
  15. After if (dupmapid < 0) { ShowError("duplicatecreate: Map not found. (%s)\n", mapa); script_pushint(st, 0); return 0; } Add: struct map_data *mapdata = map_getmapdata(dupmapid); int tries = 0; if(x <= 0 || y <= 0) { do { x = rnd()%(mapdata->xs-2)+1; y = rnd()%(mapdata->ys-2)+1; } while(map_getcell(dupmapid,x,y,CELL_CHKNOPASS) || (tries++) < 1000); } if (tries > 1000) { ShowError("duplicatecreate: Impossible to find a valid spot in (%s)\n", mapa); return SCRIPT_CMD_FAILURE; } Didn't test it but should work
  16. I have made a tool to make this. Send me your iteminfo and item db
  17. I think he wants something like this: if( SEX == SEX_MALE ) { setarray .@hair_name$[1],"Emergency Heal Perm", "Aura Blade Cut", "Jupon Katana", "Jupitel Thunder", "Deadly Poison"," Earth Spike"; setarray .@hair_style[1],24, 25, 26, 27, 28, 29; } .@option = select( implode( .@hair_name$, ":" ) ); .@option--; delitem 6707,1; setlook 1,.@hair_style[.@i]; {/code]
  18. Added Dressroom Mod. Players can choose and not just see the styles from dressroom https://streamable.com/n1ncz
  19. New Splash https://streamable.com/n58ma Drag Object System https://streamable.com/dnqgz
  20. Breakpoints are your friend
  21. If the skill list isn't in emulator you need to add it by yourself and the server database editor make things easy to this. I wonder if you you dislike the program (and makes no sense, the program is perfect) or don't know how to use.
  22. The query is right. Can you show the register in the table?
  23. Read in console what is wrong. What I put wound't make the script stops to work.
×
×
  • Create New...