Jump to content

Normynator

Developer
  • Posts

    292
  • Joined

  • Last visited

  • Days Won

    16

Everything posted by Normynator

  1. Hello rAthena I want to share some information with you. It’s about the german Server burningRo I started working on this server around 2 months ago. First everything was fine and I was just a scripter. Later I became an Admin (beside Ragnarok Server Owner). After that it started:More and more cheater appeared because the server wasn't well protected, so everyone could use WPE, .dll injection and all these tools. At that point I started to search cheaters in SQL. Incredibly I found 2-3 cheater, I was really appreciated about finding them but the RoServer Owner decided not to ban them. He was scared of loosing players because they were Leader of a "BIG" guild. So I decided to quit this project because I didn't want to stay on a server which endures cheater/hacker. Luckily not everything was waste of time cause I found some friends in the GM Team. My friends told me nearly daily whats is going on the Server. I left so the RoServer Owner needed a new Secondary-Admin. And he choose a player, who was one of the Cheater(By checking SQL Logs) Everyone in the GM Team knew that but the ServerOwner still wanted THIS player as new Admin. I was still fine with the server, no problems, no aggression (maybe some, because he didn't want to ban the cheater but well) I just left. But when the new Admin decided to attack my friends and ban them for NO reason I got angry. I wanted to start writing reviews and tell everyone about what happened. My first "review" was on ingamers.de a german site for p-servers (also ragnarok). Today I came online and an bRO Admin pmed me on Skype. First he tried to fear me by using his tracing tool. Wasn't really useful because the Phone Number and Adress he found out was probably wrong. Then he wanted me to delete the thread on ingamers.de or he is going to call the police (maybe he as already done it). He also told me, I can get in big trouble if he calls the police because he "found out" that I used a .dll to sniff packages. (I would quote all those to you guys but it is in german and I don't want to translate it the wrong way. It's attached at the end) He told me that this .dll is by WPE or a similar program, but I have never used WPE or have even downloaded it. I also told him that I don't have WPE or similar programs. Then he asked if I am sure about that because the client I downloaded on the server is a .dll injection to sniff sql packages(sounds already weird to me). At that moment I thought that he is just trying to blackmail me because of the bad review on ingamers.de. I asked Dastgir about client, and client does not connect to SQL directly, so he was lying to me. He also told me weird staff about he can call the police because I used his client which "sniffs sql packages". After that he told me again to delete the review within 24 hours or he is going to tell the police everything. The hole time I was really friendly and I told him that I am not going to remove the review and that he can call the police if he wants to. Now he deleted me on Skype again and I am waiting for the police ^^. I wrote this because I want to show you all what happens on this server. Telling you about corrupt admins, cheater, unprotected client and blackmailing people which write bad reviews. Yours sincerely Normynator Attach Skype Conv (sry it's in german)
  2. have you tried this: http://rathena.org/board/topic/95735-increase-item-id-array-size/
  3. this is what im looking for but its not complete does kagero quest warp included in this script? ok here it is: included the alternate 2nd jobs //Job Quest Warper NPC //by: Geiszer "greyman15" //Version 1.0 //Caution: don't touch in if you don't know how to change it.. //-----------------------Script Goes here--------------------// prontera,159,187,3 script Job Quester::Job Quester 733,{ mes "[Job Quest]"; mes "Hello there!"; mes "are you qualified to test your"; mes "self to change your job and"; mes "choose what class do you want?"; next; mes "[Job Quest]"; mes "Then I'm here to help you on your"; mes "trip to your chosen class."; next; mes "[Job Quest]"; mes "Please make a Selection"; next; menu "1st Job Quest",FJob,"2nd Job Quest",SJob,"Alternate Job Quest",ajob,"Super Novice",snov; next; //First Job Quest---------------------------------- FJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Acolyte",aco,"Archer",arch,"Mage",mage,"Merchant",merch,"Swordman",sword,"Thief",thief; next; aco: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,184,36; close; arch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "payon_in02" ,64,66; close; mage: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "geffen_in" ,157,119; close; merch: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alberta_in" ,61,43; close; sword: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "izlude_in" ,74,166; close; thief: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_prydb1" ,47,120; close; //Second Job Quest---------------------------------- SJob: mes "[Job Quest]"; mes "Please Select what class"; mes "will I warp you."; menu "Priest",prst,"Hunter",hunt,"Wizard",wiz,"Blacksmith",blck,"Knight",cav,"Assassin",ass; next; prst: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_church" ,16,36; close; hunt: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "hu_in01" ,382,373; close; wiz: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "gef_tower" ,110,33; close; blck: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "ein_in01" ,19,22; close; cav: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_in" ,82,102; close; ass: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "in_moc_16" ,19,30; close; //Alternate Job Quest-------------------------------------------- ajob: mes "[Job Quester]"; mes "Please select what class"; mes "will I warp you."; menu "Alchemist",alche,"Bard",bard,"Crusader",crus,"Dancer",dance,"Monk",mon,"Rogue",rog,"Sage",sag; next; alche: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "alde_alche" ,27,180; close; bard: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "comodo" ,226,120; close; crus: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_castle" ,45,164; close; dance: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "comodo" ,180,150; close; mon: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "prt_monk" ,59,244; close; rog: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "moc_ruins" ,89,103; close; sag: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "yuno_in02" ,41,61; close; //Super Novice-------------------------------------------- snov: mes "[Job Quest]"; mes "Well good luck to your quest"; warp "aldeba_in" ,219,167; close; } does it have a rebirth warper and 3rd job quests warps? kagerou too? Orginal by Euhpy, edit by Normynator, ever class is included. //===== rAthena Script ======================================= //= Job Warper //===== By: ================================================== //= Euphy, edit by Normynator //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= A functional 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 [email protected], eaclass(); set [email protected], ((.ThirdClass)?roclass([email protected]&EAJ_UPPERMASK):Class); if ([email protected] > 6 && [email protected] < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set [email protected], .Rebirth[0]-BaseLevel; set [email protected], .Rebirth[1]-JobLevel; mes "You need "+(([email protected]>0)[email protected]+" more base levels "+(([email protected]>0)?"/ ":""):"")+(([email protected]>0)[email protected]+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set [email protected], select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if ([email protected]==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu((([email protected]==1)?4001:roclass([email protected]|EAJL_THIRD))); mes "[Job Warper]"; } } set [email protected], roclass([email protected]|EAJL_2_1); set [email protected],roclass([email protected]|EAJL_2_2); if (([email protected]&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray [email protected][0],roclass([email protected]|EAJL_THIRD),99; if (Class == Job_Ninja || Class == Job_Gunslinger) setarray [email protected][0],[email protected],70; if ([email protected][0] && .SecondExpanded) { if (BaseLevel < .Rebirth[0] || JobLevel < [email protected][1]) { set [email protected], .Rebirth[0]-BaseLevel; set [email protected], [email protected][1]-JobLevel; mes "You need "+(([email protected]>0)[email protected]+" more base levels "+(([email protected]>0)?"/ ":""):"")+(([email protected]>0)[email protected]+" more job levels ":"")+"to continue."; close; } mes "Switch to "+jobname([email protected][0])+"?"; next; Job_Menu([email protected][0]); close; } if ([email protected]&EAJL_2) if ([email protected]&(EAJL_UPPER|EAJL_BABY) || roclass([email protected]|EAJL_UPPER) == -1) { mes "No more jobs are available."; close; } if (([email protected]&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([email protected]|EAJL_2_1) == -1 || roclass([email protected]|EAJL_2_2) == -1) mes "No more jobs are available."; else if (!([email protected]&EAJL_2) && JobLevel < .JobReq[1]) mes "A job level of "+.JobReq[1]+" is required to change into the 2nd Class."; else if (.LastJob && lastJob && ([email protected]&EAJL_UPPER)) { mes "Switch classes now?"; next; Job_Menu(lastJob+4001); } else Job_Menu([email protected],[email protected]); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set [email protected]$,""; for(set [email protected],0; [email protected]<getargcount(); set [email protected],[email protected]+1) set [email protected]$, [email protected]$+" ~ "+jobname(getarg([email protected]))+":"; set [email protected]$, [email protected]$+" ~ ^777777Cancel^000000"; next; set [email protected], getarg(select([email protected]$)-1,0); if ([email protected]) close; if (([email protected] == 23 || [email protected] == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname([email protected])+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set [email protected], getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname([email protected])+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname([email protected]))+" Quest Npc!"; if ([email protected]==4001 && .LastJob) set lastJob, Class; //mes [email protected]; goto Job; //Warps here !!!! if ([email protected]==4001 || [email protected]==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if([email protected] > 4000 && [email protected] < 4030 && !4046 && !4047 && !4049){ warp "valkyrie", 48, 48; }else{ switch([email protected]){ 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; case 23: warp "aldebaran", 116, 63; break; case 24: warp "Einbroch Tower", 134,199; break; case 25: warp "alberta", 30,63; break; case 4046: warp "payon", 158, 140; break; case 4047: warp "payon", 215, 102; break; case 4049: warp "morocc", 55,259; break; //==============3rd============================================ case 4054: case 4060: warp "prt_in", 164, 23; break; case 4055: case 4061: warp "morroc", 102, 143; break; case 4056: case 4062: warp "tur_dun01", 157, 54; break; case 4057: case 4063: warp "prt_church", 103, 88; break; case 4058: case 4064: warp "yuno", 129, 156; break; case 4059: case 4065: warp "morroc", 45, 107; break; case 4066: case 4073: warp "prt_castle", 48, 161; break; case 4067: case 4074: warp "gef_tower", 102, 34; break; case 4068: case 4075: warp "alberta", 196, 133; break; case 4069: case 4076: warp "xmas", 161, 209; break; case 4070: case 4077: warp "ve_in", 241, 128; break; case 4071: case 4078: warp "alde_alche", 35, 185; break; case 4072: case 4079: warp "morroc", 156, 70; break; case 4211: case 4212: warp "amatsu", 21, 76; break; case 4215: warp "Hugel", 70,137; 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,1; // 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; }
  4. jup, scheint alles Absicht zu sein ^^
  5. 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 ^^
  6. np np, habs grad auch auf meinem test server probiert, scheint alles korrekt zu sein. Liegt bestimmt am balance ^^
  7. 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
  8. no not yet, was no time ti fix it ^^ i'll fix it as soon as possible
  9. //===== 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 [email protected], eaclass(); set [email protected], ((.ThirdClass)?roclass([email protected]&EAJ_UPPERMASK):Class); if ([email protected] > 6 && [email protected] < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set [email protected], .Rebirth[0]-BaseLevel; set [email protected], .Rebirth[1]-JobLevel; mes "You need "+(([email protected]>0)[email protected]+" more base levels "+(([email protected]>0)?"/ ":""):"")+(([email protected]>0)[email protected]+" more job levels ":"")+"to continue."; close; } while(1) { mes "Select an option."; next; set [email protected], select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if ([email protected]==3) close; mes "[Job Warper]"; mes "Are you sure?"; next; Job_Menu((([email protected]==1)?4001:roclass([email protected]|EAJL_THIRD))); mes "[Job Warper]"; } } set [email protected], roclass([email protected]|EAJL_2_1); set [email protected],roclass([email protected]|EAJL_2_2); if (([email protected]&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray [email protected][0],roclass([email protected]|EAJL_THIRD),99; if (Class == Job_Ninja || Class == Job_Gunslinger) setarray [email protected][0],[email protected],70; if ([email protected][0] && .SecondExpanded) { if (BaseLevel < .Rebirth[0] || JobLevel < [email protected][1]) { set [email protected], .Rebirth[0]-BaseLevel; set [email protected], [email protected][1]-JobLevel; mes "You need "+(([email protected]>0)[email protected]+" more base levels "+(([email protected]>0)?"/ ":""):"")+(([email protected]>0)[email protected]+" more job levels ":"")+"to continue."; close; } mes "Switch to "+jobname([email protected][0])+"?"; next; Job_Menu([email protected][0]); close; } if ([email protected]&EAJL_2) if ([email protected]&(EAJL_UPPER|EAJL_BABY) || roclass([email protected]|EAJL_UPPER) == -1) { mes "No more jobs are available."; close; } if (([email protected]&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([email protected]|EAJL_2_1) == -1 || roclass([email protected]|EAJL_2_2) == -1) mes "No more jobs are available."; else if (!([email protected]&EAJL_2) && JobLevel < .JobReq[1]) mes "A job level of "+.JobReq[1]+" is required to change into the 2nd Class."; else if (.LastJob && lastJob && ([email protected]&EAJL_UPPER)) { mes "Switch classes now?"; next; Job_Menu(lastJob+4001); } else Job_Menu([email protected],[email protected]); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set [email protected]$,""; for(set [email protected],0; [email protected]<getargcount(); set [email protected],[email protected]+1) set [email protected]$, [email protected]$+" ~ "+jobname(getarg([email protected]))+":"; set [email protected]$, [email protected]$+" ~ ^777777Cancel^000000"; next; set [email protected], getarg(select([email protected]$)-1,0); if ([email protected]) close; if (([email protected] == 23 || [email protected] == 4045) && BaseLevel < .SNovice) { mes "[Job Warper]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname([email protected])+"."; close; } mes "[Job Warper]"; mes "Are you sure?"; next; } else set [email protected], getarg(0); if (select(" ~ Want to become a ^0055FF"+jobname([email protected])+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Warper]"; mes "You are getting Warped to "+callfunc("F_InsertArticle",jobname([email protected]))+" Quest Npc!"; if ([email protected]==4001 && .LastJob) set lastJob, Class; //mes [email protected]; goto Job; //Warps here !!!! if ([email protected]==4001 || [email protected]==4023) warp "yuno_in02",88,164; //specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; close; } if (getargcount() == 1) return; mes "[Job Warper]"; } end; } Job: if([email protected] > 4000){ warp "valkyrie", 48, 48; }else{ switch([email protected]){ 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
  10. 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 [email protected]$[0], "Yggdrasil Berry","Yggdrasil Seed","Apple","White Potion"; //Available Items. set [email protected], 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", [email protected]$; next; mes "You can choose "[email protected]+" items."; mes "How many do you need?"; input [email protected]; if([email protected] > [email protected]){ next; mes "Max "[email protected]+"!!"; close; }else for([email protected] = [email protected]; [email protected] < [email protected]; [email protected]++){ set [email protected]$[[email protected]], "empty"; dispbottom "empty @" + [email protected]; } next; mes "Which items do you want?"; mes "How many do you want?"; mes "List of Available Items: "; callfunc "List", [email protected]$; for([email protected] = 0; [email protected] < [email protected]; [email protected]++){ set [email protected], 0; input [email protected]$[[email protected]]; input [email protected][[email protected]]; for([email protected] = 0; [email protected] < getarraysize([email protected]$); [email protected]++){ //dispbottom "a"; //dispbottom [email protected]$[[email protected]]; if([email protected]$[[email protected]] == [email protected]$[[email protected]]){ set [email protected], 1; } } if([email protected] == 0){ next; mes "Error!"; close; } //dispbottom [email protected]; } next; mes "Whats the name of the player?"; input [email protected]$; next; mes "Your Input:"; for([email protected] = 0; [email protected] < [email protected]; [email protected]++){ mes [email protected][[email protected]] + " " + [email protected]$[[email protected]]; } mes "Name: " + [email protected]$; 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], [email protected]$; set [email protected],getarraysize(.logitem$); for([email protected] = 0; [email protected] < [email protected];[email protected]++){ set .logamount[[email protected] + [email protected]], [email protected][[email protected]]; set .logitem$[[email protected] + [email protected]], [email protected]$[[email protected]]; } .z++; set [email protected], getcharid(3, [email protected]$); if(isloggedin([email protected]) == 0){ mes "Player is offline"; }else mes "Player is online and got the Item(s)"; for([email protected] = 0; [email protected] < [email protected]; [email protected]++){ getitem [email protected]$[[email protected]], [email protected][[email protected]], [email protected]; } close; case 2: next; mes "Log"; set [email protected], 1; set [email protected], 0; for([email protected] = 0; [email protected] < getarraysize(.logdate);[email protected]++){ mes [email protected] + ". -- " + .logdate[[email protected]]; mes " Player: " + .logplayer$[[email protected]]; mes " GM: " + .loggm$[[email protected]]; for([email protected] = 0; [email protected] < [email protected];[email protected]++){ if(.logitem$[[email protected]] != "empty"){ mes " Item: " + .logamount[[email protected]] + "x " + .logitem$[[email protected]]; //L: "+ [email protected] + "|" + [email protected] + "|" + [email protected] + "|" + .logitem$[[email protected]]; } [email protected]++; } [email protected]++; } close; case 3: next; mes "Bye ~"; close; } } } } function script List { for([email protected] = 0; [email protected] < getarraysize(getarg(0)); [email protected]++){ mes getelementofarray(getarg(0), [email protected]); } return; } I added a Log System
  11. I just made it this way: http://upaste.me/r/4c9b142899108c3d7
  12. 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; }
  13. http://rathena.org/board/topic/56456-300-monster-challenge/
  14. //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) , [email protected]_id); //mes [email protected]_id; query_sql( "SELECT `name`, `guild_lv`, `average_lv` FROM `guild` WHERE `guild_id`= '"+ [email protected]_id +"'", [email protected]$, [email protected]_lv, [email protected]_av ); [email protected] = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ [email protected]_id +"'", [email protected]_m$ ); for( [email protected] = 0; [email protected] < [email protected]; [email protected]++ ){ if( getcharid( 0,[email protected]_m$[ [email protected] ] ) ) [email protected]++; } mes "Guild Name: " + [email protected]$; mes "Guild Level: " + [email protected]_lv; mes "Guild Average Level: " + [email protected]_av; mes "Members online: " + [email protected]; if([email protected]_lv == 50 && [email protected] == 11 && [email protected]_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
  15. //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) , [email protected]_id); //mes [email protected]_id; query_sql( "SELECT `name`, `guild_lv` FROM `guild` WHERE `guild_id`= '"+ [email protected]_id +"'", [email protected]$, [email protected]_lv ); [email protected] = query_sql( "SELECT `name` FROM `guild_member` WHERE `guild_id`= '"+ [email protected]_id +"'", [email protected]_m$ ); for( [email protected] = 0; [email protected] < [email protected]; [email protected]++ ){ if( getcharid( 0,[email protected]_m$[ [email protected] ] ) ) [email protected]++; } mes "Guild Name: " + [email protected]$; mes "Guild Level: " + [email protected]_lv; mes "Members online: " + [email protected]; if([email protected]_lv == 50 && [email protected] == 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?
  16. 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.
  17. just try to kill the if satement
  18. //Script by Normynator v1.1 prontera,140,180,5 script Item 80,{ function EndEvent; if(getgmlevel() >= 99){ [email protected] = select("Start:Stop:Chancel"); if([email protected] == 1){ mes "Start"; set $giveaway, 0; announce "Give away has just started!!", 0; close; }else if([email protected] == 2){ mes "Stop"; set $giveaway, 50; EndEvent; close; }else{ close; } } if($giveaway == 50){ mes "All items are gone!"; close; }else{ set [email protected], 50 - $giveaway; mes "Hi"; mes [email protected] + " 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
  19. //changed script by Normynator function script refinemain { disable_items; set [email protected],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 [email protected]$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3"; set [email protected]$,""; for(set [email protected],1; [email protected]<=10; set [email protected],[email protected]+1) { if(getequipisequiped([email protected])) { set [email protected]$, [email protected]$ + [email protected]$[[email protected]] + "-" + "[" + getequipname([email protected]) + "]"; set [email protected],1; } set [email protected]$, [email protected]$ + ":"; } if ([email protected] == 0) { mes "[" + getarg(0) + "]"; mes "I don't think I can refine any items you have..."; close; } set [email protected], select([email protected]$); if(!getequipisequiped([email protected])) { //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([email protected])) { 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([email protected]) >= 10) { mes "[" + getarg(0) + "]"; mes "I can't refine this"; mes "any more. This is as"; mes "refined as it gets!"; close; } set [email protected], getequipid([email protected]); // save id of the item set [email protected], getequiprefinerycnt([email protected]); //save refinery count switch(getequipweaponlv([email protected])){ case 0: //Refine Armor set [email protected],2000; set [email protected],985; //Elunium set [email protected],4; break; case 1: //Refine Level 1 Weapon set [email protected],50; set [email protected],1010; //Phracon set [email protected],7; break; case 2: //Refine Level 2 Weapon set [email protected],200; set [email protected],1011; //Emveretarcon set [email protected],6; break; case 3: //Refine Level 3 Weapon set [email protected],5000; set [email protected],984; //Oridecon set [email protected],5; break; case 4: //Refine Level 4 Weapon set [email protected],20000; set [email protected],984; //Oridecon set [email protected],4; break; case 5: //Refine other stuff? set [email protected],2000; set [email protected],985; //Elunium set [email protected],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([email protected])) { case 0: set [email protected], [email protected] * 10; break; case 1: set [email protected], [email protected] * 40; break; case 2: set [email protected], [email protected] * 50; break; case 3: set [email protected], [email protected] * 2; break; case 4: set [email protected], [email protected] * 2; break; case 5: set [email protected], [email protected] * 10; break; } } if([email protected] != 1) { mes "[" + getarg(0) + "]"; mes "To refine this I need"; mes "one ^003366"+getitemname([email protected])+"^000000 and"; mes "a service fee of " + [email protected] + " 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; } [email protected] = getequippercentrefinery([email protected]); //dispbottom "getequ [email protected] : " + [email protected]; if([email protected] == 4){ //dispbottom [email protected]; if([email protected] >= 4){ mes "Do you want to use Donation-Refiner?"; if(select("Yes:No") == 1){ next; //dispbottom "Check: mit Item"; if([email protected] == 4){ [email protected] = 100; [email protected] = 5; //dispbottom [email protected]; }else if([email protected] == 5 ){ [email protected] = 100; [email protected] = 10; //dispbottom [email protected]; }else if([email protected] == 6 ){ [email protected] = 80; [email protected] = 15; //dispbottom [email protected]; }else if([email protected] == 7 ){ [email protected] = 70; [email protected] = 16; //dispbottom [email protected]; }else if([email protected] == 8 ){ [email protected] = 60; [email protected] = 18; //dispbottom [email protected]; }else if([email protected] == 9 ){ [email protected] = 50; [email protected] = 20; //dispbottom [email protected]; } mes "[" + getarg(0) + "]"; mes "You need: "+ [email protected] + " " + getitemname( 7179 ); next; if(select("Yes:No") == 1 && ( countitem( 7179 ) > [email protected] )){ delitem 7179,[email protected]; [email protected] = [email protected]; }else{ mes "[" + getarg(0) + "]"; mes "Not enought " + getitemname( 7179 ); close; } }else{ [email protected] = [email protected]; next; } } } if([email protected] < 100) { mes "[" + getarg(0) + "]"; mes "Oh no! If I continue to"; mes "refine this, there's a risk it could"; switch([email protected]) { 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([email protected]) < 1) || (Zeny < [email protected])) { mes "[" + getarg(0) + "]"; mes "You don't seem to have"; mes "enough Zeny or "+getitemname([email protected])+"..."; mes "Go get some more. I'll be"; mes "here all day if you need me."; close; } set Zeny, [email protected]; delitem [email protected],1; //custom checks if([email protected] == 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([email protected]) != [email protected] || getequipid([email protected]) != [email protected]) { // 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([email protected]); wieviel % auf succes! //dispbottom [email protected]; UPGRADELVL! //dispbottom "Check: Versuch zu Upgraden"; if([email protected] <= rand(100)) { //dispbottom getequippercentrefinery([email protected]); failedrefitem [email protected]; mes "[" + getarg(0) + "]"; emotion (!rand(5))?e_cash:e_omg; set [email protected],rand(1,3); if ([email protected] == 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([email protected] == 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 [email protected]; emotion e_heh; set [email protected],rand(1,3); if ([email protected] == 1) { mes "Perfect!"; mes "Heh heh!"; mes "Once again,"; mes "flawless work"; mes "from the master~"; } else if([email protected] == 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
  20. 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 [email protected]$; if ([email protected]$ == "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 [email protected]$; if ([email protected]$ == "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 [email protected]; if (getitemname([email protected]) == "null" || getitemname([email protected]) == "") {next; mes "^3399FF[Disguise CP]^000000"; mes "Error"; mes "This item does not exist in the database..."; close;} set $guessprize, [email protected]; next; mes "^3399FF[Disguise CP]^000000"; mes "Bitte gib die Anzahl der Preise an."; input [email protected]; if ([email protected]) set [email protected],1 ; set $guessprizecount,[email protected]; 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 [email protected], 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 [email protected], rand(1,30); OnGMStart: announce "Test Message by Normynator",bc_all; end; } Soo there is something missing in your script
  21. Maybe it's because i am tired, but what should happen after: donpcevent "guessAnnouncer::OnGMStart"; Sry if i dont see it O.o
  22. sure, but why do you want an sperat npc instead of an updated npc ?
  23. 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([email protected] = 0; [email protected] < getarraysize(@id$); [email protected]++){ dispbottom @id$[[email protected]]; } mes "[Guild Joiner]"; mes "Which Guild do you want to join?"; set [email protected],select(makeCategory()) -1; next; mes "You selected: " + @gl$[[email protected] -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$[[email protected] - 1], @m$); for([email protected] = 0; [email protected] < getarraysize(@m$); [email protected]++){ //dispbottom @m$[[email protected]]; message @m$[[email protected]], "Player "+ strcharinfo(0)+ " wants to Join your Guild!"; set @m$[[email protected]], ""; } end; function makeCategory { set [email protected]_string$,""; for([email protected] = 0; [email protected] < getarraysize(@id$) ; [email protected]++){ query_sql("SELECT name FROM `guild` WHERE guild_id = "+ @id$[[email protected]], @gl$); set [email protected]_string$,[email protected]_string$+":"[email protected]$; } return [email protected]_string$; } function guildMember { query_sql("SELECT name FROM `guild_member` WHERE guild_id = "+ @id$[[email protected] - 1], @m$); return @m$; } }
  24. The script I posted is just a changed part of the original refiner script. Just replace the script-part at /npc/merchants/refine.txt
  25. 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 [email protected]_timer,0; set [email protected]_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 [email protected]_timer,0; set [email protected]_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
×
×
  • Create New...

Important Information

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