Jump to content

Angery Woodpecker

Members
  • Content Count

    12
  • Joined

  • Last visited

  • Days Won

    1

Angery Woodpecker last won the day on June 25 2019

Angery Woodpecker had the most liked content!

About Angery Woodpecker

  • Rank
    Member

Profile Information

  • Gender
    Not Telling
  • Emulator
    Hercules
  1. what bWolfie meant is that instead of using a character variable to do the quest, you can use a global variable and write it as if it was any quest you ever made. Ex: .GuildID = getcharid( CHAR_ID_GUILD ); if $MyGuildQuestStep[.GuildID] == 0{ mes "Do you want to start this quest?"; if(select("YES:NO")==2){ close; } mes "You started this quest"; $MyGuildQuestStep[.GuildID] = 1; close; } since that is a global variable and you want to make a hunting quest, make this variable increase for every kill until it reaches the amount you want.
  2. Guys, if there is no way to do that I need to know too. Thanks in advance.
  3. Hi, I want to make a script that is affected by the player luk, the problem is that I can only read the base luk, while I wanted to read the base luk + bonus from equipment + bonus from status change. Is there any way to do that? Thank you!
  4. Hello, so here is the whole story: we had this specific monster that could spawn only at night, so we made a script that checks every 10 minutes if it is night, then spawn the said monster. The problem is that this monster is for a quest, and it is required to tame this monster, but it seems that the ::OnKill event wasn't triggered this way, so we had to put another check there to count how many mobs are alive. tl;dr is there anyway to detect if a monster was tamed via script? I think it would require a source modification, but not sure where (thought this is a harder solution for a specific problem). Thanks
  5. What I usually do in cases like yours is to use attachrid() on every index of the info arrays, then do something for each player In your case, I think that you will need to run this loop twice: on the first time, you will for(blablabla){ attachrid(); if(BloodQuest != 6){ announce strcharinfo(0)+" needs to talk to the NPC first"; end; } } then in the second loop for(blablabla){ attachrid(); warp "map", x, y; } That way you wont need to use SQL. Search in the forum/downloads for the addrid() script command (plugin?), it may help a bit.
  6. Hmm I'll check it if it works it will solve this kind of problem for me. Thank you o/
  7. Oh :/ Well, that would be useful when using menus inside loops, because it prints each message line after line and, after some time, you need to scroll down the message window, and using a next button in this case would make things a bit annoying (extra click).
  8. Good morning Anyone knows if is there anyway to clear a message window without using the next/close buttons (followed by another mes command)? Thanks o/
  9. I'm not sure if I understood what you want. If you are talking about day/night time durations, there is a configuration somewhere to modify it. But if you are talking about making the time go faster, I think it is not "possible", but you could do it from zero with a NPC controlling it. Since the time you want is 1/12 of the original, maybe a npc that triggers every 83 ms (OnTimer83:) could increase a variable for seconds by 1, then after 3 increases it increase again to avoid desynchronization. OnTimer83: ++$sec; ++$secsinc; if($secsinc == 3){ $secsinc = 0; ++$sec; } initnpctimer; then do the rest for minutes, hours, etc.
  10. If the items can be repeated: setarray .@items , ....; for(.@i = 0; .@i < 5; ++.@i) getitem .@items[rand(getarraysize(.@items))],1; end;/close; If they cant be repeated: setarray .@items , ....; for(.@i = 0; .@i < 5; ++.@i){ .@removed = rand(getarraysize(.@items)); getitem .@items[.@removed],1; deletearray .@items[.@removed],1; } end;/close; just be sure that you use setarray everytime the script is called, since it removes from the array :3
×
×
  • Create New...

Important Information

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