Jump to content

Kenpachi

Members
  • Posts

    764
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Kenpachi

  1. You can use the GetTime() function combined with the OnClockXXXX labels. This would look like this: prontera,150,168,2 script Mr.Monday 911,{ //=========================== Settings ==================================== set .@changername$,"[ Mr.Monday ]";// YOU MAY CHANGE THE NAME OF THE NPC set .tcgid,7227; set @tcgamount,1; //======================= Settings End ==================================== //************************************************************************* mes .@changername$; mes "Hello "+strcharinfo(0)+" ,"; mes "What a wonderful day is today"; mes "Do you know that today is Monday?"; mes "Monday means Moon day, that's a fact."; next; mes "Hmm, Hey I got this unsual item "; mes "when I was wandering around the "; mes "wood It looks blackish in colour and it scared me"; next; switch(select("Do you still have it?:I got to go dude")) { case 1: mes .@changername$; mes "Sure but I don't have it right now"; mes "My brother have it"; mes "I can tell you where my brother is but"; next; switch(select("But what?:Cancel")) { case 1: mes .@changername$; mes "You have to help me find something"; mes "I really love a hat ^FF0000 Earmuff ^000000"; mes "can you find the material for me?"; next; switch(select("I have it right now:Cancel")) { case 1: mes .@changername$; mes "Okay let me check if"; mes "you have the material"; next; mes .@changername$; mes "Rustle... Rustle..."; if((countitem(724) > 0) && (countitem(949) > 499) && (countitem(5001) > 0)) { delitem 724,1; delitem 949,500; delitem 5001,1; next; mes .@changername$; getitem .tcgid,@tcgamount; //Change to next Item! mes "Here take this and see my big brother"; mes "Mr. Tuesday. Take this and he will talk to you"; close; } else { mes .@changername$; mes "Sorry you have to get the items first!"; close; } case 2: mes .@changername$; mes "Okay goodbye!"; close; } case 2: mes .@changername$; mes "Okay goodbye!"; close; } case 2: mes .@changername$; mes "Okay goodbye!"; close; } // Enabling OnClock0655: // 06:55 AM if(GetTime(4) == 1) // Monday EnableNPC("Mr.Monday"); End(); // Enabling OnClock1805: // 06:05 PM if(GetTime(4) == 1) // Monday DisableNPC("Mr.Monday"); End(); }[/codeBOX]
  2. Try this: prontera,150,168,2 script Mr.Monday 911,{ //=========================== Settings ==================================== set .@changername$,"[ Mr.Monday ]";// YOU MAY CHANGE THE NAME OF THE NPC set .tcgid,7227; set @tcgamount,1; //======================= Settings End ==================================== //************************************************************************* mes .@changername$; mes "Hello "+strcharinfo(0)+" ,"; mes "What a wonderful day is today"; mes "Do you know that today is Monday?"; mes "Monday means Moon day, that's a fact."; next; mes "Hmm, Hey I got this unsual item "; mes "when I was wandering around the "; mes "wood It looks blackish in colour and it scared me"; next; switch(select("Do you still have it?:I got to go dude")) { case 1: mes .@changername$; mes "Sure but I don't have it right now"; mes "My brother have it"; mes "I can tell you where my brother is but"; next; switch(select("But what?:Cancel")) { case 1: mes .@changername$; mes "You have to help me find something"; mes "I really love a hat ^FF0000 Earmuff ^000000"; mes "can you find the material for me?"; next; switch(select("I have it right now:Cancel")) { case 1: mes .@changername$; mes "Okay let me check if"; mes "you have the material"; next; mes .@changername$; mes "Rustle... Rustle..."; if((countitem(724) > 0) && (countitem(949) > 499) && (countitem(5001) > 0)) { delitem 724,1; delitem 949,500; delitem 5001,1; next; mes .@changername$; getitem .tcgid,@tcgamount; //Change to next Item! mes "Here take this and see my big brother"; mes "Mr. Tuesday. Take this and he will talk to you"; close; } else { mes .@changername$; mes "Sorry you have to get the items first!"; close; } case 2: mes .@changername$; mes "Okay goodbye!"; close; } case 2: mes .@changername$; mes "Okay goodbye!"; close; } case 2: mes .@changername$; mes "Okay goodbye!"; close; } } [/codeBOX](untested)
  3. else { mes .@changername$; mes "Sorry you have to get the items first!"; close; case 2: mes .@changername$; mes "Okay goodbye!"; close; } You lack of the closing curly bracket for the else tree. -> else { mes .@changername$; mes "Sorry you have to get the items first!"; close; } case 2: mes .@changername$; mes "Okay goodbye!"; close; } EDIT: After reading the script again and again I think there are some other bracket issues. For example there is an switch without cases which is closing after the case of another switch... switch(select("I have it right now:Cancel")) {
  4. Auch wenn das Problem schon behoben ist, hier noch mal die Lösung. http://nachtwolke.com/nn/dev/rsu/ Ich denke mal nicht, dass ich das noch ins Deutsche übersetzen muss...
  5. Klar gibt es einen englischen Client: iRO. Ansonsten gibt es auch ein Translation-Projekt. (KLICK) Vom Entwicklerteam ist auch eine - zu rAthena passende - Client SVN geplant; das wird aber noch ein wenig dauern, bis wir uns da alle einig sind.
  6. OnInit is executed when the map server loads the NPC. Let's make this more clear. Example: - script Freebies -1,{ OnPCLoginEvent: if(!#FREEBIES) { GetItem(501, 5); GetItem(502, 5); GetItem(503, 5); Set(#FREEBIES, 1); } End(); } - script LoginAnnounce -1,{ OnPCLoginEvent: Announce(StrCharInfo(0) + " has logged in.", bc_all); End(); } This is bad because the event queue for this event type has now reached its maximum (2). Try joining them into just one event: - script Freebies -1,{ OnPCLoginEvent: // 1st: Announce login Announce(StrCharInfo(0) + " has logged in.", bc_all); // 2nd: Check freebies if(!#FREEBIES) { GetItem(501, 5); GetItem(502, 5); GetItem(503, 5); Set(#FREEBIES, 1); } // Event ends End(); }
  7. You have to many different OnPCLoginEvent events. Either you raise MAX_EVENTQUEUE in ../map/map.h (requires re-compiling) or you join all you different OnPCLoginEvent events into one (max. two).
  8. Could you please provide some details? Warm wind changes your attack element depending on the skill level; since items can't level up I I don't know what you're thinking of.
  9. While flying over the entries I wasn't able to spot errors. I'd suggest to disbale those items and re-enable them step by step and check which one causes the error.
  10. @reloadskilldb or restart your server.
  11. Two possibilites: 1. Higher the EXP points given by monsters (mob_db) For example higher the EXP of every mob by 10%: UPDATE `mob_db` SET `EXP` = `EXP` * 1.1 2. Lower the required value to level up (exp.txt) Let's explain exp.txt for 3rd jobs. 150 - Max level for those jobs 4054:4055:4056:4057:4058:4059:4060:4061:4062:4063:4064:4065:4066:4067:4068:4069:4070:4071:4072:4073:4074:4075:4076:4077:4078:4079:4080:4081:4082:4083:4084:4085:4086:4087:4096:4097:4098:4099:4100:4101:4102:4103:4104:4105:4106:4107:4108:4109:4110:4111:4112:4190:4191 - All job IDs for this EXP table 0 - Is it a job or base EXP table? (0 = base | 1 = job) 10 - Required EXP from level 1 to level 2 18 - Required EXP from level 2 to level 3 ... and so on ...
  12. Should still work. http://rathena.org/wiki/Custom_Pets
  13. For the delay check your skill_cast_db. For the reconnect thingy you have to edit the source...
  14. You have an item with an bonus that does not exist. For example or something like that.BTW; Is this an error that exists with a blank version of rAthena or did you already add custom stuff?
  15. Sei nicht so neugierig, du Zitronenbaum!
  16. Same with Firefox. (Theme: IPB Unlimited) IP Board theme works fine. I'll just use this one.
  17. The drop down menu is available but "SVN" still opens a 2nd line.
  18. Hi there. With a resolution of 1280x1024 the menu bar grows into a second line which is obviously no proper behaviour.
  19. It does. We decided to merge exp.txt and exp2.txt into one file to prevent errors.
  20. We don't have to mass move something unless you decide to add the sub-categories to "eAthena Bug Archive", too. (If you decide to do so I'm willing to move all that topics.) It ratains the version and inside the database the ID is updated to the according ID in that project? In my opinion that's nice behaviour. (Maybe I misunderstood you?)
  21. Here is an updated (but untested) version. //Made by Lunar //Version 1.0 //12.28.08 - shop hat_shop -1,501:50 prontera,150,150,4, script Hat Quest 999,{ set @i,0; mes "[shop Quest NPC]"; mes "Please Select Ur Item Quest?"; mes "Select only one."; callshop "hat_shop",1; npcshopattach "hat_shop"; end; OnBuyItem: if(.BuildQuest) { for(set .e,0; !compare(getarg(.e+1) + "","cash"); set .e,.e+2) {} npcshopadditem "hat_shop",getarg(.e+2),getarg(.e)*compare(getarg(.e+1) + "","cash"); setarray .Shop[.i],getarg(.e+2); set .i,.i+1; goto Hat_Setup; } if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Hat_Setup; } for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Hat_Setup; } mes "[shop Quest NPC]"; mes "I require the following:"; for(set @i,0; !compare(getarg(@i+1) + "","cash"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]"; if(getarg(@i)) mes "^FF0000" + ((#CASHPOINTS>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Cash Points"; mes "^000000In exchange, I will give you:^0000FF"; for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i)); switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) { case 1: for(set @i,0; !compare(getarg(@i+1) + "","cash"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) { next; mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + "."; mes "Please obtain ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000."; close; } if(cash < getarg(@i)) { next; mes "You do not have enough cash."; mes "Please obtain ^FF0000" + (getarg(@i)-cash) + " more cash^000000."; close; } for(set @i,0; !compare(getarg(@i+1) + "","cash"); set @i,@i+2) delitem getarg(@i),getarg(@i+1); set #CASHPOINTS,#CASHPOINTS - getarg( @i ); for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1); if (compare(getarg(@i,0) + "","announce")) announce strcharinfo(0) + " Have Make Quest " + getitemname(@bought_nameid) + "!",bc_all; close; case 2: set @bottomview, getlook(3); set @topview, getlook(4); set @midview, getlook(5); addtimer 1000, strnpcinfo(3)+"::On_Leave"; set @equip,getiteminfo(@bought_nameid, 5); set @view, getiteminfo(@bought_nameid, 11); if(@equip != -1 && @view > 0) { if(@equip & 1) atcommand "@changelook 3 " + @view; if(@equip & 256) atcommand "@changelook 1 " + @view; if(@equip & 512) atcommand "@changelook 2 " + @view; } next; goto OnBuyItem; case 3: close; } On_Leave: atcommand "@changelook 1 " + @topview; atcommand "@changelook 2 " + @midview; atcommand "@changelook 3 " + @bottomview; set @equip,0; set @view,0; set @topview,0; set @midview,0; set @bottomview,0; end; OnInit: npcshopitem "hat_shop",0,0; set .BuildQuest,1; set .i,1; Hat_Setup: switch(.i) { default: set .BuildQuest,0; set .e,0; set .i,0; end; case 1: callsub OnBuyItem,7539,100,7420,120,7227,200,1000,"Cash",30000,1,"announce"; } }
  22. This error is caused by all calls of compare() inside your script. compare() wants to compare two strings. Not an integer and a string. Change the getarg(.e+1) and getarg(.e+0) inside the compare() functions to getarg(.e+1) + "" or getarg(.e+0) + "", this will force the script engine to cast it as string.
×
×
  • Create New...