Jump to content

nanakiwurtz

Members
  • Posts

    1654
  • Joined

  • Last visited

  • Days Won

    66

Community Answers

  1. nanakiwurtz's post in [solved] How to put a redirecting warp portal? was marked as the answer   
    So you want to make a new warp portal?
    Just follow the example from trunk\npc\warps
    This is an example from payon archer map to payon dungeon.

    pay_arche,36,131,0 warp payonwarp048 2,2,pay_dun00,21,183
  2. nanakiwurtz's post in map image was marked as the answer   
    \data\texture\유저인터페이스\worldmap.bmp
  3. nanakiwurtz's post in Rebellion Item Switching was marked as the answer   
    https://github.com/rathena/rathena/blob/master/src/map/battle.cpp#L7117
  4. nanakiwurtz's post in How Do I Make Changes To The Client ? was marked as the answer   
    Instead of asking the steps one by one, you can start reading the tutorial by using the search feature located on upper right side.
    You can start by reading this one.
     
  5. nanakiwurtz's post in Q> Card Remover & Bound Equip/Card was marked as the answer   
    There's no bound card, when a bound card inserted into an equipment, it lose its bound property.
  6. nanakiwurtz's post in Botkiller6 and Miner World error by Myzter of script was marked as the answer   
    1. Replace the pcblock command by using pcblockmove
    2. In Miner World.txt
    // This process creates new mines where were exhausted OnTimer360000: // Each 5 minutes the system check for destroyed mines and re-creates it in new coordinates set .@tmr,0; set .@Page,0; set .@PageSize,10; freeloop(1); while (set(.@tot, query_sql("select map, mines, mtypes from mn_maps limit " + .@Page + "," + .@PageSize,.@map$,.@maxm,.@mtypes))) { for (set .@x,0; .@x < .@tot; set .@x, .@x + 1) { query_sql "select count(*) from mn_mine where map='" + .@map$[.@x] + "'",.@remain; while (.@remain[0] < .@maxm[.@x]) { query_sql "select mclass from mn_class" + (.@mtypes[.@x]==0?"":" where mclass & " + .@mtypes[.@x]) + " order by rand() limit 1",.@nClass; set .@mx,-1; while (.@mx<0) { if (!checkcell (.@map$[.@x],set(.@mx,rand(1,500)),set(.@my,rand(1,500)),cell_chkpass)) set .@mx,-1; } // Probabilities of 30% to create a new mine at this pass... or will be created in a future process if (rand(10) < 3) { query_sql "insert into mn_mine (created, map, mclass, x, y, size) values (now(), '" + .@map$[.@x] + "'," + .@nClass[0] + "," + .@mx + "," + .@my + "," + rand(3,6) + ")"; debugmes "> Mine System: Creating a new mine in " + .@map$[.@x] + "..."; } set .@remain[0], .@remain[0] + 1; } } set .@Page, .@Page + .@PageSize; } freeloop(0); initnpctimer; }
  7. nanakiwurtz's post in PVP, Guild, Emperium Breaker Ladder [ Please Fix ] was marked as the answer   
    Update your server at least to ebaefc14762b519479ec17596dedf8f53cb37388
  8. nanakiwurtz's post in job changer was marked as the answer   
    //===== rAthena Script ======================================= //= Job Master //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.4 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A fully functional job changer. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Fixed reset on Baby job change. //= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. //= 1.3 Kagerou/Oboro added. //= 1.4 Rebellion added. //============================================================ prontera,153,193,6 script Job Master 123,{ function Job_Menu; mes "[Job Master]"; if (Class > Job_Soul_Linker) { mes "No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { mes "Please remove your " + ((checkfalcon()) ? "falcon" : "") + ((checkcart()) ? "cart" : "") + ((checkriding()) ? "Peco" : "") + ((ismounting()) ? "mount" : "") + " before proceeding."; close; } if (.SkillPointCheck && SkillPoint) { mes "Please use all your skill points before proceeding."; close; } .@eac = eaclass(); .@i = ((.ThirdClass) ? roclass(.@eac&EAJ_UPPERMASK) : Class); if (.@i >= Job_Knight && .@i <= Job_Crusader2) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { .@blvl = .Rebirth[0] - BaseLevel; .@jlvl = .Rebirth[1] - JobLevel; mes "You need " + ((.@blvl > 0) ? .@blvl + " more base levels " + ((.@jlvl > 0) ? "/ " : "") : "") + ((.@jlvl > 0) ? .@jlvl + " more job levels " : "") + "to continue."; close; } if (Class > Job_Crusader2) { mes "Switch to third class?"; next; Job_Menu(roclass(.@eac|EAJL_THIRD)); close; } while(1) { mes "Select an option."; next; .@i = select(" ~ ^0055FFRebirth^000000:" + ((.ThirdClass) ? " ~ ^FF0000Third Class^000000" : "") + ": ~ ^777777Cancel^000000"); if (.@i == 3) close; mes "[Job Master]"; mes "Are you sure?"; next; Job_Menu(((.@i == 1) ? Job_Novice_High : roclass(.@eac|EAJL_THIRD))); mes "[Job Master]"; } } .@j1 = roclass(.@eac|EAJL_2_1); .@j2 = roclass(.@eac|EAJL_2_2); if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0], roclass(.@eac|EAJL_THIRD), 99; if (Class == Job_Ninja || Class == Job_Gunslinger) setarray .@exp[0], .@j1, 70; if (.@exp[0] && .SecondExpanded) { if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) { .@blvl = .Rebirth[0] - BaseLevel; .@jlvl = .@exp[1] - JobLevel; mes "You need " + ((.@blvl > 0) ? .@blvl + " more base levels " + ((.@jlvl > 0) ? "/ " : "") : "") + ((.@jlvl > 0) ? .@jlvl + " more job levels " : "") + "to continue."; close; } mes "Switch to " + jobname(.@exp[0]) + "?"; next; Job_Menu(.@exp[0]); close; } if (.@eac&EAJL_2) if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) { mes "No more jobs are available."; close; } if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .JobReq[0]) mes "A job level of " + .JobReq[0] + " is required to change into the 1st Class."; else if (Class == Job_Novice_High && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else { switch(Class) { case Job_Novice: Job_Menu( Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief, Job_SuperNovice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby ); break; case Job_Novice_High: Job_Menu( Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High ); break; case Job_Baby: Job_Menu( Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer, Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief, Job_Super_Baby ); break; default: mes "An error has occurred."; break; } } close; } if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) mes "No more jobs are available."; else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1]) mes "A job level of " + .JobReq[1] + " is required to change into the 2nd Class."; else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) { mes "Switch classes now?"; next; Job_Menu(lastJob + Job_Novice_High); } else Job_Menu(.@j1, .@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; .@menu$ = ""; for (.@i = 0; .@i < getargcount(); .@i++) .@menu$ = .@menu$ + " ~ " + jobname(getarg(.@i)) + ":"; .@menu$ = .@menu$+" ~ ^777777Cancel^000000"; next; .@i = getarg(select(.@menu$) - 1, 0); if (!.@i) close; if ((.@i == Job_SuperNovice || .@i == Job_Super_Baby) && BaseLevel < .SNovice) { mes "[Job Master]"; mes "A base level of " + .SNovice + " is required to turn into a " + jobname(.@i) + "."; close; } mes "[Job Master]"; mes "Are you sure?"; next; } else .@i = getarg(0); if (select(" ~ Change into ^0055FF" + jobname(.@i) + "^000000 class: ~ ^777777" + ((getargcount() > 1) ? "Go back" : "Cancel") + "^000000") == 1) { mes "[Job Master]"; if (.@i == Job_Novice_High && Zeny<500000) { mes "You need 500,000 Zeny to Rebirth!"; close; } mes "You are now " + callfunc("F_InsertArticle", jobname(.@i)) + "!"; if (.@i == Job_Novice_High && .LastJob) lastJob = Class; jobchange .@i; if (.@i == Job_Novice_High) { resetlvl(1); zeny -= 500000; } else if (.@i == Job_Baby) { resetstatus; resetskill; set SkillPoint,0; } specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; if (.Platinum) callsub Get_Platinum; close; } if (getargcount() == 1) return; mes "[Job Master]"; } end; } Get_Platinum: skill "NV_FIRSTAID",1,SKILL_PERM; switch (BaseClass) { case Job_Novice: if (Class != Job_SuperNovice) skill "NV_TRICKDEAD",1,SKILL_PERM; break; case Job_Swordman: skill "SM_MOVINGRECOVERY",1,SKILL_PERM; skill "SM_FATALBLOW",1,SKILL_PERM; skill "SM_AUTOBERSERK",1,SKILL_PERM; break; case Job_Mage: skill "MG_ENERGYCOAT",1,SKILL_PERM; break; case Job_Archer: skill "AC_MAKINGARROW",1,SKILL_PERM; skill "AC_CHARGEARROW",1,SKILL_PERM; break; case Job_Acolyte: skill "AL_HOLYLIGHT",1,SKILL_PERM; break; case Job_Merchant: skill "MC_CARTREVOLUTION",1,SKILL_PERM; skill "MC_CHANGECART",1,SKILL_PERM; skill "MC_LOUD",1,SKILL_PERM; break; case Job_Thief: skill "TF_SPRINKLESAND",1,SKILL_PERM; skill "TF_BACKSLIDING",1,SKILL_PERM; skill "TF_PICKSTONE",1,SKILL_PERM; skill "TF_THROWSTONE",1,SKILL_PERM; break; default: break; } switch (BaseJob) { case Job_Knight: skill "KN_CHARGEATK",1,SKILL_PERM; break; case Job_Priest: skill "PR_REDEMPTIO",1,SKILL_PERM; break; case Job_Wizard: skill "WZ_SIGHTBLASTER",1,SKILL_PERM; break; case Job_Blacksmith: skill "BS_UNFAIRLYTRICK",1,SKILL_PERM; skill "BS_GREED",1,SKILL_PERM; break; case Job_Hunter: skill "HT_PHANTASMIC",1,SKILL_PERM; break; case Job_Assassin: skill "AS_SONICACCEL",1,SKILL_PERM; skill "AS_VENOMKNIFE",1,SKILL_PERM; break; case Job_Crusader: skill "CR_SHRINK",1,SKILL_PERM; break; case Job_Monk: skill "MO_KITRANSLATION",1,SKILL_PERM; skill "MO_BALKYOUNG",1,SKILL_PERM; break; case Job_Sage: skill "SA_CREATECON",1,SKILL_PERM; skill "SA_ELEMENTWATER",1,SKILL_PERM; skill "SA_ELEMENTGROUND",1,SKILL_PERM; skill "SA_ELEMENTFIRE",1,SKILL_PERM; skill "SA_ELEMENTWIND",1,SKILL_PERM; break; case Job_Rogue: skill "RG_CLOSECONFINE",1,SKILL_PERM; break; case Job_Alchemist: skill "AM_BIOETHICS",1,SKILL_PERM; break; case Job_Bard: skill "BA_PANGVOICE",1,SKILL_PERM; break; case Job_Dancer: skill "DC_WINKCHARM",1,SKILL_PERM; break; default: break; } return; OnInit: setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class .ThirdClass = 0; // Enable third classes? (1: yes / 0: no) .SecondExpanded = 0; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) .SNovice = 45; // Minimum base level to turn into Super Novice .LastJob = 1; // Enforce linear class changes? (1: yes / 0: no) .SkillPointCheck = 1; // Force player to use up all skill points? (1: yes / 0: no) .Platinum = 1; // Get platinum skills automatically? (1: yes / 0: no) end; } Untested
  9. nanakiwurtz's post in Get item value [Need Help] was marked as the answer   
    case 4: // Convert Badges
    mes "[Erundek]";
    mes "[So you want to convert your badges to War Badge, huh?]";
    next;
    menu "Bravery Badges to War Badge",bbadge,"Valor Badges to War Badge",vbadge;
    bbadge:
    mes "Input the number of badges you want to convert:";
    next;
    input .@bdg;
    if (.@bdg >= countitem(7828)) {
    getitem 7773, .@bdg;
    delitem 7828, .@bdg;
    mes "Done!";
    } else {
    mes "You have insufficient badges";
    }
    close;
    vbadge:
    mes "Input the number of badges you want to convert:";
    next;
    input .@bdg;
    if (.@bdg >= countitem(7829)) {
    getitem 7773, .@bdg;
    delitem 7829, .@bdg;
    mes "Done!";
    } else {
    mes "You have insufficient badges";
    }
    close;

  10. nanakiwurtz's post in Please help, i've already read every thread related iteminfo was marked as the answer   
    It's better to diff a client from a raw client, not from another source, because you'll never know which diffs has been applied to the client or not.
    You can get a raw client from @Akkarin signature.
  11. nanakiwurtz's post in Question Tortoise Git was marked as the answer   
    Use SourceTree or SmartGit instead, they have a more friendly interface.
  12. nanakiwurtz's post in Client Setup for 05-18-2015 kRO Client was marked as the answer   
    I think your client date is not supported yet. Use a lower client version instead.
    For tutorial, you can check out the Wiki --> https://rathena.org/wiki/
  13. nanakiwurtz's post in Server Killed was marked as the answer   
    Have you tried @RaidNode 's suggestion? https://rathena.org/board/topic/94532-map-server-killed/#entry267397
  14. nanakiwurtz's post in How do I update mapcache on Linux? was marked as the answer   
    On Linux? I have no idea, although you can update your mapcache on Windows, and then transfer it to your Linux
  15. nanakiwurtz's post in Star Gladiator / Soul Linker skill problem was marked as the answer   
    Have you tried to update your server to latest?
    If I remember correctly, there were a bug about SG/SL skills on GitHub Issue.
  16. nanakiwurtz's post in Cant connect to mysql. was marked as the answer   
    If there's no MySQL in your VPS, then maybe it's not installed yet
    yum install mysql mysql-devel mysql-server
  17. nanakiwurtz's post in Whisper Pet Effect was marked as the answer   
    { bonus bFlee,7; skill "TF_HIDING",1; }
  18. nanakiwurtz's post in About Rebellion Skills was marked as the answer   
    Could you please help us to get the info from iRO/kRO/any other official servers?
    Currently we are undermanned, I'd be grateful if you (or anyone) could provide some help to the Devs...
  19. nanakiwurtz's post in Siege Quest Items How-to-Disable Help was marked as the answer   
    \npc\re\guild\invest_npc.txt
  20. nanakiwurtz's post in Checkweight was marked as the answer   
    prontera,100,100,4, script Testing 890,{
    set @npcname$,"[Testing]";
    mes @npcname$;
    mes "Hello!";
    mes "Simple reminder, players having weight more than 1000 is forbidden to go inside the arena";
    next;
    menu "Go Inside",GO_in,"Cancel",Can_x;
    Can_x:
    end;
    GO_in:
    mes @npcname$;
    if (Weight>1000) { "I'm sorry, but your weight is more than 1000.","Please come back again later"; close; }
    mes "Good luck~";
    close2;
    warp "prontera",162,158;
    end;
    }

  21. nanakiwurtz's post in Trying To Create Quest Script was marked as the answer   
    if (readpain2 >= 1) {
    mes "[Pain]";
    mes "Did you capture the tailed beast?";
    menu "Yes", L_YES, "What are those again?", L_list;
    L_YES:
    if (AddaxKills < 2 || TGCKills < 2 || BHZKills < 2 || FabKills < 2) {
    mes "[Pain]";
    mes "I don't see them complete!!";
    close;
    }
    if (AddaxKills >= 2 || TGCKills >= 2 || BHZKills >= 2 || FabKills >= 2 ) {
    mes "[Pain]";
    mes "This is it.....!";
    next;
    mes "Now,";
    mes "Lets go to Uchiha Madara";
    set donepain2, 1;
    close;
    warp "niflheim",304,76;
    end;
    }
    L_list:
    mes "[Pain]";
    mes "Hmmm. You are missing...";
    if (AddaxKills < 2) mes "^FF0000"+(2 - AddaxKills) +"^000000 Addax";
    if (TGCKills < 2) mes "^FF0000"+(2 - TGCKills) +"^000000 Green Teen Chipmunks";
    if (BHZKills < 2) mes "^FF0000"+(2 - BHZKills) +"^000000 Blue Hell Centaur";
    if (FabKills < 2) mes "^FF0000"+(2 - FabKills) +"^000000 Fabilsag";
    close;
    }
    mes "[Pain]";
    mes "Yes?";
    next;
    mes "[" + strcharinfo(0) + "]";
    mes "I want to meet";
    next;
    mes "[" + strcharinfo(0) + "]";
    mes "Uchiha Madara";
    next;
    mes "[Pain]";
    mes "meet Uchiha Madara huh?";
    next;
    mes "[Pain]";
    mes "I'll let you meet him";
    mes "but I need you to hunt/capture this beast";
    next;
    mes "2 Blue Hell Centaur";
    mes "2 Green Teen chipmunks";
    mes "2 Addax";
    mes "1 fabilsag";
    set npc, 1;
    set readpain2, 1;
    next;
    menu "I will!",-,"Are you kidding me?",l_v;
    mes "[Pain]";
    mes "Go now!";
    close;
    l_v:
    mes "[Pain]";
    mes "Do I look like I am kidding?!!!";
    next;
    mes "[Pain]";
    mes "Nimpu";
    mes "Deva path!";
    close2;
    percentheal -100,0;
    end;
    OnNPCKillEvent:
    if (killedrid == 3221) {
    set AddaxKills,AddaxKills + 1;
    if (AddaxKills == 2) announce ""+strcharinfo(0)+" has captured one tailed beast.",bc_all,0x00FF4C;
    }
    else if (killedrid == 3249) {
    set TGCKills,TGCKills + 1;
    if(TGCKills == 2) announce ""+strcharinfo(0)+" has captured one tailed beast.",bc_all,0x00FF4C;
    }
    else if (killedrid == 3218) {
    set BHZKills,BHZKills + 1;
    if(BHZKills == 2) announce ""+strcharinfo(0)+" has captured one tailed beast.",bc_all,0x00FF4C;
    }
    else if (killedrid == 3250) {
    set FabKills,FabKills + 1;
    if(FabKills == 2) announce ""+strcharinfo(0)+" has captured one tailed beast.",bc_all,0x00FF4C;
    }
    end;
    }

  22. nanakiwurtz's post in Finding this NPC(Its already in game, want to disable) was marked as the answer   
    \npc\re\jobs\repair.txt line #60
  23. nanakiwurtz's post in Genius NPC Chatter was marked as the answer   
    //===== rAthena Script ======================================= //= Sample: PCRE //===== By: ================================================== //= MouseJstr //===== Last Updated: ======================================== //= 20100108 //===== Description: ========================================= //= Demonstrates PCRE commands. //============================================================ prontera,152,181,5 script MouseJstr 763,{ // hello Lquote0: npctalk "How do you do. Please state your problem."; end; // computer Lquote1: switch(rand(4)) { case 0: npctalk "Do computers worry you?"; break; case 1: npctalk "What do you think about machines?"; break; case 2: npctalk "Why do you mention computers?"; break; case 3: npctalk "What do you think machines have to do with your problem?"; break; } end; // name Lquote2: npctalk "I am not interested in names"; end; // sorry Lquote3: switch(rand(3)) { case 0: npctalk "Please don't apologize"; break; case 1: npctalk "Apologies are not necessary"; break; case 2: npctalk "What feelings do you have when you apologize"; break; } end; // I remember $@p2$ Lquote4: switch(rand(6)) { case 0: npctalk "Do you often think of "+$@p2$+"?"; break; case 1: npctalk "Does thinking of "+$@p2$+" bring anything else to mind?"; break; case 2: npctalk "What else do you remember?"; break; case 3: npctalk "Why do you recall "+$@p2$+" right now?"; break; case 4: npctalk "What in the present situation reminds you of "+$@p2$+"?"; break; case 5: npctalk "What is the connection between me and "+$@p2$+"?"; break; } end; // do you remember Lquote5: switch (rand(4)) { case 0: npctalk "Did you think I would forget "+$@p2$+" ?"; break; case 1: npctalk "Why do you think I should recall "+$@p2$+" now"; break; case 2: npctalk "What about "+$@p2$+""; break; case 3: npctalk "You mentioned "+$@p2$+""; break; } end; // if Lquote6: switch(rand(4)) { case 0: npctalk "Do you really think its likely that "+$@p2$+""; break; case 1: npctalk "Do you wish that "+$@p2$+"?"; break; case 2: npctalk "What do you think about "+$@p2$+"?"; break; case 3: npctalk "Really-- if "+$@p2$+"?"; break; } end; // i dreamt Lquote7: switch(rand(3)) { case 0: npctalk "Really-- "+$@p2$+""; break; case 1: npctalk "Have you ever fantasized "+$@p2$+" while you were awake?"; break; case 2: npctalk "Have you dreamt "+$@p2$+" before?"; break; } end; // dream about Lquote8: npctalk "How do you feel about "+$@p2$+" in reality?"; end; // dream Lquote9: switch(rand(4)) { case 0: npctalk "What does this dream suggest to you?"; break; case 1: npctalk "Do you dream often?"; break; case 2: npctalk "What persons appear in your dreams?"; break; case 3: npctalk "Don't you believe that dream has to do with your problem?"; break; } end; // my mother Lquote10: switch(rand(2)) { case 0: npctalk "Who else in your family "+$@p2$+""; break; case 1: npctalk "Tell me more about your family"; break; } end; // my father Lquote11: switch(rand(3)) { case 0: npctalk "Your father"; break; case 1: npctalk "Does he influence you strongly?"; break; case 2: npctalk "What else comes to mind when you think of your father?"; break; } end; // I want Lquote12: switch(rand(3)) { case 0: npctalk "What would it mean if you got "+$@p2$+""; break; case 1: npctalk "Why do you want "+$@p2$+""; break; case 2: npctalk "Suppose you got "+$@p2$+" soon"; break; } end; // I am glad Lquote13: switch(rand(3)) { case 0: npctalk "How have I helped you to be "+$@p2$+""; break; case 1: npctalk "What makes you happy just now"; break; case 2: npctalk "Can you explain why you are suddenly "+$@p2$+""; break; } end; // I am sad Lquote14: switch(rand(2)) { case 0: npctalk "I am sorry to hear you are depressed"; break; case 1: npctalk "I'm sure its not pleasant to be sad"; break; } end; // $@p2 are like "+$@p3$+" Lquote15: npctalk "What resemblance do you see between "+$@p2$+" and "+$@p3$+""; end; // "+$@p2$+" is like "+$@p3$+" Lquote16: switch(rand(4)) { case 0: npctalk "In what way is it that "+$@p2$+" is like "+$@p3$+""; break; case 1: npctalk "What resemblance do you see?"; break; case 2: npctalk "Could there really be some connection?"; break; case 3: npctalk "How?"; break; } end; // alike Lquote17: switch(rand(2)) { case 0: npctalk "In what way?"; break; case 1: npctalk "What similarities are there?"; break; } end; // same Lquote18: npctalk "What other connections do you see?"; end; // I was "+$@p2$+" Lquote19: switch(rand(3)) { case 0: npctalk "Were you really?"; break; case 1: npctalk "Perhaps I already knew you were "+$@p2$+""; break; case 2: npctalk "Why do you tell me you were "+$@p2$+" now?"; break; } end; // was I Lquote20: switch(rand(3)) { case 0: npctalk "What if you were "+$@p2$+" ?"; break; case 1: npctalk "Do you thin you were "+$@p2$+""; break; case 2: npctalk "What would it mean if you were "+$@p2$+""; break; } end; // I am Lquote21: switch(rand(2)) { case 0: npctalk "In what way are you "+$@p2$+""; break; case 1: npctalk "Do you want to be "+$@p2$+" ?"; break; } end; // am I Lquote22: switch(rand(4)) { case 0: npctalk "Do you believe you are "+$@p2$+""; break; case 1: npctalk "Would you want to be "+$@p2$+""; break; case 2: npctalk "You wish I would tell you you are "+$@p2$+""; break; case 3: npctalk "What would it mean if you were "+$@p2$+""; break; } end; // am Lquote23: switch(rand(2)) { case 0: npctalk "Why do you say AM?"; break; case 1: npctalk "I don't understand that"; break; } end; // are you Lquote24: switch(rand(3)) { case 0: npctalk "Why are you interested in whether I am "+$@p2$+" or not?"; break; case 1: npctalk "Would you prefer if I weren't "+$@p2$+""; break; case 2: npctalk "Perhaps I am "+$@p2$+" in your fantasies"; break; } end; // you are Lquote25: npctalk "What makes you think I am "+$@p2$+" ?"; end; // because Lquote26: switch(rand(3)) { case 0: npctalk "Is that the real reason?"; break; case 1: npctalk "What other reasons might there be?"; break; case 2: npctalk "Does that reason seem to explain anything else?"; break; } end; // were you Lquote27: switch(rand(3)) { case 0: npctalk "Perhaps I was "+$@p2$+""; break; case 1: npctalk "What do you think?"; break; case 2: npctalk "What if I had been "+$@p2$+""; break; } end; // I can't Lquote28: switch(rand(2)) { case 0: npctalk "Maybe you could "+$@p3$+" now"; break; case 1: npctalk "What if you could "+$@p3$+" ?"; break; } end; // I feel Lquote29: npctalk "Do you often feel "+$@p2$+" ?"; end; // I felt Lquote30: npctalk "What other feelings do you have?"; end; // $@p1$ I $@p2$ you $@p3$ Lquote31: npctalk "Perhaps in your fantasy we "+$@p3$+" each other?"; end; // why don't you Lquote32: switch(rand(3)) { case 0: npctalk "Should you "+$@p3$+" yourself?"; break; case 1: npctalk "Do you believe I don't "+$@p3$+""; break; case 2: npctalk "Perhaps I will "+$@p3$+" in good time"; break; } end; // yes Lquote33: switch(rand(3)) { case 0: npctalk "You seem quite positive"; break; case 1: npctalk "You are sure?"; break; case 2: npctalk "I understand"; break; } end; // no Lquote34: switch(rand(3)) { case 0: npctalk "Why not?"; break; case 1: npctalk "You are being a bit negative"; break; case 2: npctalk "Are you saying NO just to be negative?"; break; } end; // someone Lquote35: npctalk "Can you be more specific?"; end; // everyone Lquote36: switch(rand(4)) { case 0: npctalk "surely not everyone"; break; case 1: npctalk "Can you think of anyone in particular?"; break; case 2: npctalk "Who for example?"; break; case 3: npctalk "You are thinking of a special person?"; break; } end; // always Lquote37: switch(rand(4)) { case 0: npctalk "Can you think of a specific example?"; break; case 1: npctalk "When?"; break; case 2: npctalk "What incident are you thinking of?"; break; case 3: npctalk "Really-- always?"; break; } end; // what Lquote38: switch(rand(5)) { case 0: npctalk "Why do you ask?"; break; case 1: npctalk "Does that question interest you?"; break; case 2: npctalk "What is it you really want to know?"; break; case 3: npctalk "What do you think?"; break; case 4: npctalk "What comes to your mind when you ask that?"; break; } end; // perhaps Lquote39: npctalk "You do not seem quite certain"; end; // are Lquote40: switch(rand(2)) { case 0: npctalk "Did you think they might not be "+$@p2$+""; break; case 1: npctalk "Possibly they are "+$@p2$; break; } end; // default Lquote41: switch(rand(6)) { case 0: npctalk "Very interesting"; break; case 1: npctalk "I am not sure I understand you fully"; break; case 2: npctalk "What does that suggest to you?"; break; case 3: npctalk "Please continue"; break; case 4: npctalk "Go on"; break; case 5: npctalk "Do you feel strongly about discussing such things?"; break; } end; OnInit: defpattern 1, "([^:]+):.*\\shello.*", "Lquote0"; defpattern 1, "([^:]+):.*\\scomputer.*", "Lquote1"; defpattern 1, "([^:]+):.*\\sname.*", "Lquote2"; defpattern 1, "([^:]+):.*\\ssorry.*", "Lquote3"; defpattern 1, "([^:]+):.*\\si\\s+remember\\s+(.*)", "Lquote4"; defpattern 1, "([^:]+):.*\\sdo\\s+you\\s+remember\\s+(.*)", "Lquote5"; defpattern 1, "([^:]+):.*\\sif\\s+(.*)", "Lquote6"; defpattern 1, "([^:]+):.*\\si\\s+dreamt\\s+(.*)", "Lquote7"; defpattern 1, "([^:]+):.*\\sdream\\s+about\\s+(.*)", "Lquote8"; defpattern 1, "([^:]+):.*\\sdream\\s+(.*)", "Lquote9"; defpattern 1, "([^:]+):.*\\smy\\s+mother\\s+(.*)", "Lquote10"; defpattern 1, "([^:]+):.*\\smy\\s+father\\s+(.*)", "Lquote11"; defpattern 1, "([^:]+):.*\\si\\s+want\\s+(.*)", "Lquote12"; defpattern 1, "([^:]+):.*\\si\\s+am\\s+glad\\s+(.*)", "Lquote13"; defpattern 1, "([^:]+):\\s+(.*)\\s+i\\s+am\\s+sad\\s+(.*)", "Lquote14"; defpattern 1, "([^:]+):\\s+(.*)\\s+are\\s+like\\s+(.*)", "Lquote15"; defpattern 1, "([^:]+):\\s+(.*)\\s+is\\s+like\\s+(.*)", "Lquote16"; defpattern 1, "([^:]+):.*\\salike\\s+(.*)", "Lquote17"; defpattern 1, "([^:]+):.*\\ssame\\s+(.*)", "Lquote18"; defpattern 1, "([^:]+):.*\\si\\s+was\\s+(.*)", "Lquote19"; defpattern 1, "([^:]+):.*\\swas\\s+i\\s+(.*)", "Lquote20"; defpattern 1, "([^:]+):.*\\si\\s+am\\s+(.*)", "Lquote21"; defpattern 1, "([^:]+):.*\\sam\\s+i\\s+(.*)", "Lquote22"; defpattern 1, "([^:]+):.*\\sam\\s+(.*)", "Lquote23"; defpattern 1, "([^:]+):.*\\sare\\s+you\\s+(.*)", "Lquote24"; defpattern 1, "([^:]+):.*\\syou\\s+are\\s+(.*)", "Lquote25"; defpattern 1, "([^:]+):.*\\sbecause\\s+(.*)", "Lquote26"; defpattern 1, "([^:]+):.*\\swere\\s+you\\s+(.*)", "Lquote27"; defpattern 1, "([^:]+):.*\\si\\s+(cant|can't|cannot)\\s+(.*)", "Lquote28"; defpattern 1, "([^:]+):.*\\si\\s+feel\\s+(.*)", "Lquote29"; defpattern 1, "([^:]+):.*\\si\\s+felt\\s+(.*)", "Lquote30"; defpattern 1, "([^:]+):.*\\si\\s+(.*)\\s+you\\s+(.*)", "Lquote31"; defpattern 1, "([^:]+):.*\\swhy\\s+(don't|dont)\\s+you\\s+(.*)", "Lquote32"; defpattern 1, "([^:]+):.*\\syes\\s+(.*)", "Lquote33"; defpattern 1, "([^:]+):.*\\sno\\s+(.*)", "Lquote34"; defpattern 1, "([^:]+):.*\\ssomeone\\s+(.*)", "Lquote35"; defpattern 1, "([^:]+):.*\\severyone\\s+(.*)", "Lquote36"; defpattern 1, "([^:]+):.*\\salways\\s+(.*)", "Lquote37"; defpattern 1, "([^:]+):.*\\swhat\\s+(.*)", "Lquote38"; defpattern 1, "([^:]+):.*\\sperhaps\\s+(.*)", "Lquote39"; defpattern 1, "([^:]+):.*\\sare\\s+(.*)", "Lquote40"; defpattern 1, "([^:]+).*)", "Lquote41"; activatepset 1; end; } Taken from /doc/sample/npc_test_pcre.txt
  24. nanakiwurtz's post in Orb Exchanger NPC was marked as the answer   
    prontera,155,180,3 script Exchanger 1002,{
    mes "Hi, what do you want?";
    next;
    menu "Exchange 3 "+getitemname(7257)+" to 1 "+getitemname(7255)+"",a1,
    "Exchange 3 "+getitemname(7257)+" to 1 "+getitemname(7256)+"",a2,
    "Exchange 1 "+getitemname(7255)+" to 3 "+getitemname(7257)+"",a3,
    "Exchange 1 "+getitemname(7256)+" to 3 "+getitemname(7257)+"",a4,
    "Cancel",quit;
    quit:
    mes "Come again later!";
    close;
    quit2:
    mes "Thank you!";
    close;
    a1:
    if (countitem(7257)<3) {
    mes "Sorry, but you need 3 "+getitemname(7257);
    goto quit;
    } else {
    delitem 7257,3;
    getitem 7255,1;
    goto quit2;
    }
    a2:
    if (countitem(7257)<3) {
    mes "Sorry, but you need 3 "+getitemname(7257);
    goto quit;
    } else {
    delitem 7257,3;
    getitem 7256,1;
    goto quit2;
    }
    a3:
    if (countitem(7255)<1) {
    mes "Sorry, but you need 1 "+getitemname(7255);
    goto quit;
    } else {
    delitem 7255,1;
    getitem 7257,3;
    goto quit2;
    }
    a4:
    if (countitem(7256)<1) {
    mes "Sorry, but you need 1 "+getitemname(7256);
    goto quit;
    } else {
    delitem 7256,1;
    getitem 7257,3;
    goto quit2;
    }
    }

  25. nanakiwurtz's post in R> put code to get item was marked as the answer   
    You can use this http://rathena.org/board/topic/87212-utility-promotional-code/ 
×
×
  • Create New...