Jump to content

Normynator

Developer
  • Posts

    292
  • Joined

  • Days Won

    16

Everything posted by Normynator

  1. jup, scheint alles Absicht zu sein ^^
  2. ohne das jetzt auch nomma zu testen, denke ich ma das es auch mit absicht ist, weil earth strain is schon recht haevy mit dem strip unso, wahrscheinlich is es auch ein balance ding ^^
  3. np np, habs grad auch auf meinem test server probiert, scheint alles korrekt zu sein. Liegt bestimmt am balance ^^
  4. http://irowiki.org/wiki/Earth_Strain naja wenn man sich das im wiki so durch ließt scheint das ja alles mit rechten dingen zu zu gehen
  5. no not yet, was no time ti fix it ^^ i'll fix it as soon as possible
  6. //===== rAthena Script ======================================= //= Job Warper //===== By: ================================================== //= Euphy, edit by Normynator //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A job warper. //============================================================ prontera,153,182,6 script Job Warper 123,{ function Job_Menu; mes "[Job Warper]"; if (Class > 4049) { mes "No more jobs are available."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); mes "[Job Warper]"; } } set .@j1, roclass(.@eac|EAJL_2_1); set .@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]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@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 == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); 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+4001); } else Job_Menu(.@j1,.@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; next; set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set .@i, getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname(.@i))+" Quest Npc!"; if (.@i==4001 && .LastJob) set lastJob, Class; //mes .@i; goto Job; //Warps here !!!! if (.@i==4001 || .@i==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if(.@i > 4000){ warp "valkyrie", 48, 48; }else{ switch(.@i){ case 1: warp "izlude", 52, 137; break; case 2: warp "geffen", 64, 177; break; case 3: warp "pay_arche", 145, 164; break; case 4: warp "prontera", 234, 314; break; case 5: warp "alberta", 36, 42; break; case 6: warp "moc_ruins", 58, 159; break; case 7: warp "prontera", 35, 346; break; case 8: warp "prt_church", 16, 41; break; case 9: warp "geffen", 120, 111; break; case 10: warp "einbroch", 255, 107; break; case 11: warp "hu_in01", 381, 368; break; case 12: warp "in_moc_16", 19, 33; break; case 14: warp "prontera", 156, 356; break; case 15: warp "prt_monk", 184, 16; break; case 16: warp "yuno_in03", 154, 35; break; case 17: warp "cmd_fild07", 196, 117; break; case 18: warp "alde_alche", 27, 185; break; case 19: warp "comodo", 226, 122; break; case 20: warp "comodo", 193, 150; break; } } end; 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 set .ThirdClass,0; // Enable third classes? (1: yes / 0: no) set .SecondExpanded,1; // Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,0; // Get platinum skills automatically? (1: yes / 0: no) end; } I started writing such a script today, this script is based on Euphys JobChanger NPC (credits to him, awesome work^^) At the moment the expanded classes are missing, i am adding them soon
  7. well, yours is much better. Edit: //Script by Normynator v1.1 //v1.1 -- Log - script Gamemaster -1,{ OnWhisperGlobal: if(getgmlevel() >= 10){ if (@whispervar0$ == "Start"){ //------------------------------------------------------------- //------------------$$Config$$--------------------------------- // setarray .@in$[0], "Yggdrasil Berry","Yggdrasil Seed","Apple","White Potion"; //Available Items. set .@choose, 4; //How many can be choosen. //------------------------------------------------------------- mes "Hello."; mes "Items or Log?"; switch(select("Items:Log:Leave")){ case 1: mes "List of Available Items: "; callfunc "List", .@in$; next; mes "You can choose "+.@choose+" items."; mes "How many do you need?"; input .@count; if(.@count > .@choose){ next; mes "Max "+.@choose+"!!"; close; }else for(.@i = .@count; .@i < .@choose; .@i++){ set .@item$[.@i], "empty"; dispbottom "empty @" + .@i; } next; mes "Which items do you want?"; mes "How many do you want?"; mes "List of Available Items: "; callfunc "List", .@in$; for(.@i = 0; .@i < .@count; .@i++){ set .@cheat, 0; input .@item$[.@i]; input .@amount[.@i]; for(.@a = 0; .@a < getarraysize(.@in$); .@a++){ //dispbottom "a"; //dispbottom .@item$[.@i]; if(.@item$[.@i] == .@in$[.@a]){ set .@cheat, 1; } } if(.@cheat == 0){ next; mes "Error!"; close; } //dispbottom .@cheat; } next; mes "Whats the name of the player?"; input .@name$; next; mes "Your Input:"; for(.@i = 0; .@i < .@count; .@i++){ mes .@amount[.@i] + " " + .@item$[.@i]; } mes "Name: " + .@name$; mes ""; mes "Is your input correct?"; if(select("Yes:No") -1) end; next; set .logdate[.z], gettimestr("%Y",21) +gettimestr("%m",21) + gettimestr("%d",21); set .loggm$[.z], strcharinfo(0); set .logplayer$[.z], .@name$; set .@size,getarraysize(.logitem$); for(.@i = 0; .@i < .@choose;.@i++){ set .logamount[.@size + .@i], .@amount[.@i]; set .logitem$[.@size + .@i], .@item$[.@i]; } .z++; set .@account, getcharid(3, .@name$); if(isloggedin(.@account) == 0){ mes "Player is offline"; }else mes "Player is online and got the Item(s)"; for(.@i = 0; .@i < .@count; .@i++){ getitem .@item$[.@i], .@amount[.@i], .@account; } close; case 2: next; mes "Log"; set .@n, 1; set .@c, 0; for(.@i = 0; .@i < getarraysize(.logdate);.@i++){ mes .@n + ". -- " + .logdate[.@i]; mes " Player: " + .logplayer$[.@i]; mes " GM: " + .loggm$[.@i]; for(.@a = 0; .@a < .@choose;.@a++){ if(.logitem$[.@c] != "empty"){ mes " Item: " + .logamount[.@c] + "x " + .logitem$[.@c]; //L: "+ .@c + "|" + .@a + "|" + .@i + "|" + .logitem$[.@c]; } .@c++; } .@n++; } close; case 3: next; mes "Bye ~"; close; } } } } function script List { for(.@i = 0; .@i < getarraysize(getarg(0)); .@i++){ mes getelementofarray(getarg(0), .@i); } return; } I added a Log System
  8. I just made it this way: http://upaste.me/r/4c9b142899108c3d7
  9. the tabs ^^ prontera,151,190,5 script PvP Warper 843,{ or what does "pub" mean? sry i dont get it there are also some "useless" lines prontera,151,190,5 script PvP Warper 843,{ announce ""+strcharinfo(0)+" has entered PvP Arena [Ancient - Nightmare ]", bc_all; warp "guild_vs2.gat",0,0; OnInit: waitingroom "PvP Warper ["+getmapusers("guild_vs2")+"]",0; end; }
  10. http://rathena.org/board/topic/56456-300-monster-challenge/
  11. //Script by Normynator v1.1 prontera,163,172,4 script Guild Reward 79,{ mes "Hi"; query_sql( "SELECT `guild_id` FROM `rathena`.`char` WHERE `char_id` = "+ getcharid(0) , .@guild_id); //mes .@guild_id; query_sql( "SELECT `name`, `guild_lv`, `average_lv` FROM `guild` WHERE `guild_id`= '"+ .@guild_id +"'", .@name$, .@guild_lv, .@guild_av ); .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ .@guild_id +"'", .@name_m$ ); for( .@i = 0; .@i < .@size; .@i++ ){ if( getcharid( 0,.@name_m$[ .@i ] ) ) .@m++; } mes "Guild Name: " + .@name$; mes "Guild Level: " + .@guild_lv; mes "Guild Average Level: " + .@guild_av; mes "Members online: " + .@m; if(.@guild_lv == 50 && .@m == 11 && .@guild_av == 255){ next; if (#GuildReward){ mes "You already got your item."; close; } set #GuildReward, 1; mes "A Berry for you"; getitem 607, 1; close; } close; } Hope it works
  12. //Script by Normynator v1.0 prontera,163,172,4 script Guild Reward 79,{ mes "Hi"; query_sql( "SELECT `guild_id` FROM `rathena`.`char` WHERE `char_id` = "+ getcharid(0) , .@guild_id); //mes .@guild_id; query_sql( "SELECT `name`, `guild_lv` FROM `guild` WHERE `guild_id`= '"+ .@guild_id +"'", .@name$, .@guild_lv ); .@size = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ .@guild_id +"'", .@name_m$ ); for( .@i = 0; .@i < .@size; .@i++ ){ if( getcharid( 0,.@name_m$[ .@i ] ) ) .@m++; } mes "Guild Name: " + .@name$; mes "Guild Level: " + .@guild_lv; mes "Members online: " + .@m; if(.@guild_lv == 50 && .@m == 11){ next; if (#GuildReward){ mes "You already got your item."; close; } set #GuildReward, 1; mes "A Berry for you"; getitem 607, 1; close; } close; } 255/120 all members, or only the members which are online?
  13. http://rathena.org/board/topic/96725-coin-to-coin-exchanger-request-ea/ This script changes Seeds into Berrys, because I like berrys I can change it to Coins if you want to.
  14. just try to kill the if satement
  15. //Script by Normynator v1.1 prontera,140,180,5 script Item 80,{ function EndEvent; if(getgmlevel() >= 99){ .@s = select("Start:Stop:Chancel"); if(.@s == 1){ mes "Start"; set $giveaway, 0; announce "Give away has just started!!", 0; close; }else if(.@s == 2){ mes "Stop"; set $giveaway, 50; EndEvent; close; }else{ close; } } if($giveaway == 50){ mes "All items are gone!"; close; }else{ set .@left, 50 - $giveaway; mes "Hi"; mes .@left + " Items left."; //mes $giveaway; if (#AlreadyGot){ mes "You already got your item."; close; } set #AlreadyGot, 1; mes "An Apple for you"; getitem 512, 1; set $giveaway, $giveaway + 1; if($giveaway == 50){ EndEvent; } close; } EndEvent: announce "Give away has just ended!!", 0; query_sql "DELETE FROM `rathena`.`global_reg_value` WHERE `str`='#AlreadyGot'"; end; } Hope it works
  16. //changed script by Normynator function script refinemain { disable_items; set .@features,getarg(1); mes "[" + getarg(0) + "]"; mes "I'm the Armsmith."; mes "I can refine all kinds of weapons, armor and equipment, so let me"; mes "know what you want me to refine."; next; setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3"; set .@menu$,""; for(set .@i,1; .@i<=10; set .@i,.@i+1) { if(getequipisequiped(.@i)) { set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]"; set .@equipped,1; } set .@menu$, .@menu$ + ":"; } if (.@equipped == 0) { mes "[" + getarg(0) + "]"; mes "I don't think I can refine any items you have..."; close; } set .@part, select(.@menu$); if(!getequipisequiped(.@part)) { //custom check mes "[" + getarg(0) + "]"; mes "You're not wearing"; mes "anything there that"; mes "I can refine."; emotion e_an; close; } //Check if the item is refinable... if(!getequipisenableref(.@part)) { mes "[" + getarg(0) + "]"; mes "I don't think I can"; mes "refine this item at all..."; close; } //Check to see if the items is already +10 if(getequiprefinerycnt(.@part) >= 10) { mes "[" + getarg(0) + "]"; mes "I can't refine this"; mes "any more. This is as"; mes "refined as it gets!"; close; } set .@refineitemid, getequipid(.@part); // save id of the item set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count switch(getequipweaponlv(.@part)){ case 0: //Refine Armor set .@price,2000; set .@material,985; //Elunium set .@safe,4; break; case 1: //Refine Level 1 Weapon set .@price,50; set .@material,1010; //Phracon set .@safe,7; break; case 2: //Refine Level 2 Weapon set .@price,200; set .@material,1011; //Emveretarcon set .@safe,6; break; case 3: //Refine Level 3 Weapon set .@price,5000; set .@material,984; //Oridecon set .@safe,5; break; case 4: //Refine Level 4 Weapon set .@price,20000; set .@material,984; //Oridecon set .@safe,4; break; case 5: //Refine other stuff? set .@price,2000; set .@material,985; //Elunium set .@safe,4; break; } // If the VIP system is enabled, the prices for non-VIP players are considerably higher. if (VIP_SCRIPT && !vip_status(1)) { switch(getequipweaponlv(.@part)) { case 0: set .@price, .@price * 10; break; case 1: set .@price, .@price * 40; break; case 2: set .@price, .@price * 50; break; case 3: set .@price, .@price * 2; break; case 4: set .@price, .@price * 2; break; case 5: set .@price, .@price * 10; break; } } if(.@features != 1) { mes "[" + getarg(0) + "]"; mes "To refine this I need"; mes "one ^003366"+getitemname(.@material)+"^000000 and"; mes "a service fee of " + .@price + " Zeny."; mes "Do you really wish to continue?"; next; if(select("Yes:No") == 2){ mes "[" + getarg(0) + "]"; mes "Yeah..."; mes "There's no need to"; mes "rush. Take your time."; close; } .@g = getequippercentrefinery(.@part); //dispbottom "getequ .@g : " + .@g; if(.@safe == 4){ //dispbottom .@refinerycnt; if(.@refinerycnt >= 4){ mes "Do you want to use Donation-Refiner?"; if(select("Yes:No") == 1){ next; //dispbottom "Check: mit Item"; if(.@refinerycnt == 4){ .@w = 100; .@z = 5; //dispbottom .@w; }else if(.@refinerycnt == 5 ){ .@w = 100; .@z = 10; //dispbottom .@w; }else if(.@refinerycnt == 6 ){ .@w = 80; .@z = 15; //dispbottom .@w; }else if(.@refinerycnt == 7 ){ .@w = 70; .@z = 16; //dispbottom .@w; }else if(.@refinerycnt == 8 ){ .@w = 60; .@z = 18; //dispbottom .@w; }else if(.@refinerycnt == 9 ){ .@w = 50; .@z = 20; //dispbottom .@w; } mes "[" + getarg(0) + "]"; mes "You need: "+ .@z + " " + getitemname( 7179 ); next; if(select("Yes:No") == 1 && ( countitem( 7179 ) > .@z )){ delitem 7179,.@z; .@g = .@w; }else{ mes "[" + getarg(0) + "]"; mes "Not enought " + getitemname( 7179 ); close; } }else{ .@g = .@w; next; } } } if(.@g < 100) { mes "[" + getarg(0) + "]"; mes "Oh no! If I continue to"; mes "refine this, there's a risk it could"; switch(.@material) { case 985: mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000."; break; default: mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,"; mes "or any added special properties."; break; } next; mes "["+getarg(0)+"]"; mes "I can't make it any clearer."; mes "Once a weapon is destroyed,"; mes "there's no getting it back."; mes "You really have a chance to"; mes "^FF0000lose this weapon^000000 forever."; mes "Do you still want to refine?"; next; if(select("Yes:No") == 2){ mes "[" + getarg(0) + "]"; mes "I completely agree..."; mes "I might be a great refiner, but sometimes even I make mistakes."; close; } } if((countitem(.@material) < 1) || (Zeny < .@price)) { mes "[" + getarg(0) + "]"; mes "You don't seem to have"; mes "enough Zeny or "+getitemname(.@material)+"..."; mes "Go get some more. I'll be"; mes "here all day if you need me."; close; } set Zeny, Zeny-.@price; delitem .@material,1; //custom checks if(.@g == 0) { // hacker has removed the item (not changed, why?) mes "[" + getarg(0) + "]"; mes "Look here... you don't have any Items on..."; close; } if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item mes "[" + getarg(0) + "]"; emotion e_an; mes "Wait a second..."; mes "Do you think I'm stupid?!"; mes "You switched the item while I wasn't looking! Get out of here!"; close; } //dispbottom getequippercentrefinery(.@part); wieviel % auf succes! //dispbottom .@refinerycnt; UPGRADELVL! //dispbottom "Check: Versuch zu Upgraden"; if(.@g <= rand(100)) { //dispbottom getequippercentrefinery(.@part); failedrefitem .@part; mes "[" + getarg(0) + "]"; emotion (!rand(5))?e_cash:e_omg; set .@lose,rand(1,3); if (.@lose == 1) { mes "OH! MY GOD!"; mes "Damn it! Not again!"; mes "I'm terribly sorry, but you know practice does make perfect."; mes "Um, right? Heh heh..."; } else if(.@lose == 2) { mes "Nooooooo!"; mes "It broke!"; mes "I-I'm sorry!"; } else { mes "Crap!"; mes "It couldn't take"; mes "much more tempering!"; mes "Sorry about this..."; } close; } mes "["+getarg(0)+"]"; successrefitem .@part; emotion e_heh; set .@win,rand(1,3); if (.@win == 1) { mes "Perfect!"; mes "Heh heh!"; mes "Once again,"; mes "flawless work"; mes "from the master~"; } else if(.@win == 2) { mes "Success...!"; mes "Yet again, my amazing"; mes "talent truly dazzles"; mes "and shines today."; } else { mes "Heh heh!"; mes "I'm all done."; mes "No doubt, my work is"; mes "to your satisfaction."; mes "Sheer, utter perfection~"; } close; } } prontera,140,176,5 script Dunno 74,{ callfunc "refinemain","Dunno",0; end; } Now it should work as a npc, just change the last lines if you want to change location, styl or name
  17. prontera,157,162,5 script disguise 794,{ if (getgmlevel()<99) { mes "^3399FF[Disguise CP]^000000"; mes "Sorry, du hast keine Berechtigung."; close; } mes "^3399FF[Disguise CP]^000000"; mes "Hallo Boss,"; mes "Was möchtest du heute machen?"; switch(select("Event starten:Event stoppen:Anzahl der Runden kalkulieren[^E50000"+$guessrounds+"^000000]:Preis kalkulieren^E50000 ["+getitemname($guessprize)+"]^000000 ^E50000 ["+ $guessprizecount + "]^000000:Nichts")) { case 1: { next; mes "^3399FF[Disguise CP]^000000"; mes "Bestätigen sie durch die Eingabe von START."; input .@confirm$; if (.@confirm$ == "START") { donpcevent "guessAnnouncer::OnGMStart"; dispbottom "START"; close; } mes "Bestätigung fehlgeschlagen"; close; break; } case 2: { next; mes "^3399FF[Disguise CP]^000000"; mes "Bestätigen sie durch die Eingabe von STOP."; input .@confirm$; if (.@confirm$ == "STOP") { donpcevent "guessAnnouncer::OnGMStop"; close; } mes "Bestätigung fehlgeschlagen"; close; break; } case 3: { next; mes "^3399FF[Disguise CP]^000000"; mes "Bitte gib eine neue Nummer ein."; input $guessrounds; if ($guessrounds > 30) set $guessrounds, 30; else if ($guessrounds < 1) set $guessrounds, 1; close; } case 4: { next; mes "^3399FF[Disguise CP]^000000"; mes "Bitte gib eine Preis ID ein."; input .@guessprizeid; if (getitemname(.@guessprizeid) == "null" || getitemname(.@guessprizeid) == "") {next; mes "^3399FF[Disguise CP]^000000"; mes "Error"; mes "This item does not exist in the database..."; close;} set $guessprize, .@guessprizeid; next; mes "^3399FF[Disguise CP]^000000"; mes "Bitte gib die Anzahl der Preise an."; input .@guessprizeamount; if (!.@guessprizeamount) set .@guessprizeamount,1 ; set $guessprizecount,.@guessprizeamount; next; mes "^3399FF[Disguise CP]^000000"; mes "Der Preis wurde zu ^E50000 "+ getitemname($guessprize)+ "^000000 und die Menge ^E50000 " +$guessprizecount+"^000000"; close; } case 5: { next; mes "^3399FF[Disguise CP]^000000"; mes "Schönen Tag noch."; close; } } } prontera,158,162,5 script guessAnnouncer 794,{ mes "Hey the Disguise NPC starts my script!"; close2; //set .@emote, rand(1,30); OnGMStart: announce "Test Message by Normynator",bc_all; end; } Do you see the part I added? If you type "START" the script will not stop at: donpcevent "guessAnnouncer::OnGMStart"; Now it goes on at: prontera,158,162,5 script guessAnnouncer 794,{ mes "Hey the Disguise NPC starts my script!"; close2; //set .@emote, rand(1,30); OnGMStart: announce "Test Message by Normynator",bc_all; end; } Soo there is something missing in your script
  18. Maybe it's because i am tired, but what should happen after: donpcevent "guessAnnouncer::OnGMStart"; Sry if i dont see it O.o
  19. sure, but why do you want an sperat npc instead of an updated npc ?
  20. I tried to make a working script. but I still have the problem that I have to restart the server the make it work but i am still working on the problem prontera,155,160,5 script Guild 70,{ mes "Join Guild!"; if(select("Join:Cancel") -1) end; mes getcharid(3); mes getcharid(0); mes strcharinfo(0); next; atcommand "@kick "+strcharinfo(0); query_sql("INSERT INTO `guild_member` (guild_id, account_id, char_id, position, name) VALUES ('1', "+getcharid(3)+", "+getcharid(0)+", '1', '"+strcharinfo(0)+"')"); query_sql("UPDATE `rathena`.`char` SET `guild_id` = '1' WHERE `char`.`char_id` = "+getcharid(0)); end; } This is not the requested script but maybe you like it too. The script lists all guilds and tell the guildmembers if some1 wants to join. //by Normynator prontera,155,160,5 script Guild 70,{ function makeCategory; function guildMember; query_sql("SELECT guild_id FROM `guild`", @id$); for(.@b = 0; .@b < getarraysize(@id$); .@b++){ dispbottom @id$[.@b]; } mes "[Guild Joiner]"; mes "Which Guild do you want to join?"; set .@selected,select(makeCategory()) -1; next; mes "You selected: " + @gl$[.@selected -1]; mes "Do you want to join this Guild?"; if(select("Yes:No") -1) end; next; mes "The Npc sent a request to the Guild"; query_sql("SELECT name FROM `guild_member` WHERE guild_id = "+ @id$[.@selected - 1], @m$); for(.@a = 0; .@a < getarraysize(@m$); .@a++){ //dispbottom @m$[.@a]; message @m$[.@a], "Player "+ strcharinfo(0)+ " wants to Join your Guild!"; set @m$[.@a], ""; } end; function makeCategory { set .@make_string$,""; for(.@i = 0; .@i < getarraysize(@id$) ; .@i++){ query_sql("SELECT name FROM `guild` WHERE guild_id = "+ @id$[.@i], @gl$); set .@make_string$,.@make_string$+":"+@gl$; } return .@make_string$; } function guildMember { query_sql("SELECT name FROM `guild_member` WHERE guild_id = "+ @id$[.@selected - 1], @m$); return @m$; } }
  21. The script I posted is just a changed part of the original refiner script. Just replace the script-part at /npc/merchants/refine.txt
  22. e_tower,78,80,2 script Endless Reset 406,{ mes "Purification Tower"; mes "Do you want to Reset your Endless Tower Quest?"; if(select("Yes:No") -1){ next; mes "Purification Tower"; mes "Come Back Again."; close; }else{ if(countitem(6127) 1){ mes "You dont have a Purification Stone to Reset your Endless Tower Quest"; close; }else { set .@etower_timer,0; set .@etower_timer2,0; erasequest 60200; erasequest 60201; delitem 6127,1; mes "^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000"; next; set .@etower_timer,0; set .@etower_timer2,0; erasequest 60200; erasequest 60201; mes "^0000ffThe records and aftereffects related to the Endless Tower have been removed. You can generate and enter the Endless Tower again.^000000"; close; warp e_tower,75,108; end; } } } I was too slow xD
  23. I think thats because the script checks every castle after Woe.
  24. for example 1 gold coin for 10 silver coins? prontera,163,174,4 script Exchanger 71,{ mes "[Exchanger]"; mes "Hello, do you want to exchange Seeds into Berrys?"; if (select("Yes:No") -1) end; next; mes "[Exchanger]"; mes "You trade 3 Seeds for 1 Berry"; if (select ("Trade all!:Single trade!") -1){ next; mes "[Exchanger]"; mes "Single trade!"; if(countitem(.req_item) < .req_num){ next; mes "[Exchanger]"; mes "Not enought seeds to exchange"; }else{ next; mes "[Exchanger]"; mes "Successful!"; delitem .req_item, .req_num; getitem .get_item, .get_num; } }else{ next; mes "[Exchanger]"; mes "Trade all!"; next; mes "[Exchanger]"; mes "Successful!"; .@c = (countitem(.req_item) / .req_num); for(.@i = 0; .@i <= .@c ; .@i ++){ delitem .req_item, .req_num; getitem .get_item, .get_num; } } end; OnInit: .req_item = 608; //Item you need to exchange .req_num = 3; //how many? .get_item = 607; //Item you get .get_num = 1; //how many? end; }
  25. http://rathena.org/board/topic/96662-guild-prize-error/
×
×
  • Create New...