Jump to content

DeadlySilence

Members
  • Posts

    181
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by DeadlySilence

  1. It seems your rAthena folder has some wrong/missing subversion information. As the message states, the file is not a working copy (thus, it is not in your version control). You could try a fresh checkout and move your custom/modified stuff to the new folder and see if further updates work.
  2. You could try to execute "svn status" and use "svn revert <filename>" on things you haven't changed. (Warning: The file will be reverted to the latest version from the SVN.)
  3. The Problem is that the chatroom would be created every time the NPC is clicked, but since that's impossible, it throws this error. Try this: prontera.gat,142,180,0 script Petite Room Warper 1156,{ mes "[Petite Room Warper]"; mes "Hello Guys, Im Petite Room Warper"; mes "Do You Want to Use My Service ??"; next; menu "Yes",L_TELEPORT,"No thanks",L_Bye; close; L_TELEPORT: mes "Ok Wait here, I Will Send You To Petite Room"; next; warp "mjolnir_03.gat",208,213; end; L_Bye: mes "Okay,No Problem Thanks"; close; OnInit: waitingroom "Petite Room",0; end; } This way, the waiting room will only be created once.
  4. What exactly is the error message?
  5. What kind of web SQL panel do you use? PHPMyAdmin? If you log in to your web panel, you should be able to select the ragnarok database. Do so and search for some option that is called "SQL" or "Query". Execute this command there: UPDATE `login` SET `user_pass` = MD5(`user_pass`);
  6. It seems you don't have access to the mysql binary. How did you import the sql files (from trunk/sql-files) to create the database in the first place?
  7. Connect to your server with Putty and write mysql -u your_user_name -p and enter your password when prompted. (The same data you use in your config files) You should now be connected to your database. USE rathena_database_name (again, same database as specified in your config files) Then use SELECT `userid`, `user_pass` FROM `login`; if the passwords do not look like someone smashed their head on the keyboard, write UPDATE `login` SET `user_pass` = MD5(`user_pass`); And write SELECT `userid`, `user_pass` FROM `login`; to verify the passwords have been updated correctly.
  8. What emulator and version do you use?
  9. By hash I mean the hash function (http://en.wikipedia.org/wiki/Hash_function) Have a look at your login-table inside your database. If the password for your user is still plain text (e.g. p1 or whatever password you chose), execute this query: UPDATE `login` SET `user_pass` = MD5(`user_pass`);
  10. Have you set the option use_MD5_passwords: yes in conf/login_athena.conf? If yes you have to make a hash of the user's password inside your database.
  11. You could do it like this: x,x,x,x script Healer 1024,{ if (!((@healTime + 30) <= gettimetick(2))) { dispbottom "You have to wait until you can get healed again."; end; } specialeffect2 14; percentheal 100,100; @healTime = gettimetick(2); end; }
  12. Nimm das nächste mal bitte den "code"-Tag, anstelle von "quote", bei Code wird dann die Formatierung beibehalten. (Bei einem Zitat gehen u.a. die Tab in den Kopfzeilen der Skripte kaputt) Das hier sollte funktionieren: prontera,155,161,4 script Sample 757,{ if (!(@friendwarperTime + .friendwarperDelay <= gettimetick(2))) { mes "Du musst leider noch warten bis du meine Dienste erneut in Anspruch nehmen kannst."; close; } if (Zeny < .friendwarperCost) { mes "Du hast leider nicht genügend Geld.", "Ein Warp kostet dich " + .friendwarperCost + " Zeny."; close; } query_sql("SELECT `char_id`, `account_id`, `name` FROM `char` WHERE `char_id` IN (SELECT `friend_id` FROM `friends` WHERE `char_id`='" + getcharid(0) + "')", .@char_id, .@account_id, .@name$); .@total = getarraysize(.@char_id); if (.@total) { for(.@i = 0; .@i < .@total; .@i++) .@menu$ = .@menu$ + ( ( isloggedin( .@account_id[.@i],.@char_id[.@i] ) )?"^0055FF[ ONLINE ]":"^FF0000[ OFFLINE ]" )+" "+.@name$[.@i] +"^000000:"; .@i = select(implode(.@menu$,":")) - 1; if(isloggedin(.@account_id[.@i], .@char_id[.@i])) { getmapxy(.@map$, .@x, .@y, 0, .@name$[.@i]); warp .@map$,.@x,.@y; // Zeny abziehen Zeny = Zeny - .friendwarperCost; // aktuelle Zeit setzen @friendwarperTime = gettimetick(2); end; } else { mes "Deine Freunde sind nicht online."; } } else { mes "Du hast keine Freunde."; } close; // Ausführung bei Initialisierung OnInit: // Delay: 5 Minuten .friendwarperDelay = 60 * 5; // Kosten: 1000 Zeny .friendwarperCost = 1000; end; }
  13. You can use an item script like this: query_sql("INSERT INTO `YOURTABLE` (`acc_id`, `c_points`) VALUES (" + getcharid(3) + ", 0) ON DUPLICATE KEY UPDATE `c_points` = `c_points` + 100"); It will try to create a new row in "YOURTABLE" with the acc_id and zero c_points. If there is already a row with the player's id, it will be updated. The acc_id column has to be either the primary key, or a unique key for it to work.
  14. Whoops, sorry. I wasn't aware that the GM level is still in use. I'm a bit rusty Try this: 2199,Ahura_Mazda,Ahura Mazdah,5,1,,10,,10000,,0,0xFFFFFFFF,7,2,32,,1,1,0,{if (0 < getgmlevel()) { bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; skill "CR_FULLPROTECTION",5; skill "WZ_ESTIMATION",1; skill "ST_FULLSTRIP",5; skill "HW_MAGICPOWER",10; bonus bMaxHPRate,200; bonus bNoKnockback,0; bonus bDelayRate,-20; bonus bSpeedRate,25; bonus bIntravision,0;} },{ {if (0 < getgmlevel()) {sc_start4 SC_ENDURE,60000,10,0,0,1;} },{{if (0 < getgmlevel()) {sc_end SC_ENDURE;} } You used lower than instead of greater than So, any player below GM level 60 got the bonus, but the player above did not. Oh, and how did you use @itembound? I tried @itembound 2199 1 1 and it worked for me.
  15. Aren't you using the latest rAthena revision or why do you use getgmlevel instead of getroupid?
  16. Yes, I mean the size of the array. You already know there can only be X iterations, so a "for" loop would be more suitable, since you know "the script has to repeat the task until either a special condition is met, or the very last iteration is done". "While" loops should be mostly used to iterate through tasks of an undefined maximum length and without a linear growth (.@i grows in a linear fashion), like validating user input and repeat the input prompt until the user enters a valid value. I don't mean this as criticism, I just wanted to suggest an alternative way
  17. In addition to the other people's solution, I suggest to automatically ban non-GMs using the items by using the following item scripts. Angra Manyu: if (0 < getgroupid()) {bonus bAllStats,50; bonus bBaseAtk,3300; bonus bMatkRate,200; bonus2 bHPDrainRate,1000,100; bonus2 bSPDrainRate,1000,20; bonus bHealPower,200; bonus2 bAddRace,RC_NonBoss,100; bonus2 bAddRace,RC_Boss,100; skill "WZ_STORMGUST",10; Skill "WZ_METEOR",10; Skill "WZ_VERMILION",10; skill "GM_SANDMAN",1; bonus bVariableCastrate,-100; bonus bFixedCastrate,-100;} else {atcommand "@block " + strcharinfo(0);} Ahura Mazda: if (0 < getgroupid()) {bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; skill "CR_FULLPROTECTION",5; skill "WZ_ESTIMATION",1; skill "ST_FULLSTRIP",5; skill "HW_MAGICPOWER", 10; bonus bMaxHPRate,200; bonus bNoKnockback,0; bonus bDelayRate,-20; bonus bSpeedRate,25; bonus bIntravision,0;} else {atcommand "@block " + strcharinfo(0);} (untested)
  18. Your version gives an error in case none of the items is in the player's inventory. ([Error]: buildin_countitem: Invalid item '0'.) And a for loop would fit there better, as you have to go to a given maximum amount of loops. (Just my opinion.) - script nodonatemap -1,{ OnInit: setarray .donateitems[0],21849,21850,21851,21852,21267,21268,21269,21270,21271,21272,21273,21274,21275,21276,21277,21278,1316,1588,1932,1987,1833,1700,13435,1500,1600,13080,13079; end; OnPCLoadMapEvent: if ("pvp_n_4-3" == strcharinfo(3)) { for (.@i = 0; .@i < getarraysize(.donateitems); .@i += 1) { if (0 < countitem(.donateitems[.@i])) { warp "SavePoint", 0, 0; dispbottom "You have been kicked from the map because you used the illegal item \"" + getitemname(.donateitems[.@i]) + "\""; end; } } } end; } pvp_n_4-3 mapflag loadevent This should work and also informs the player because of which item he has been kicked from the map.
  19. Whoops, my bad. I forgot to remove a brace. mes "Please remove your"+( (checkfalcon())?"falcon":"")+( (checkcart())?"cart":"")+( (checkriding())?"Peco":"")+"before proceeding."; Now it should work.
  20. That's a great idea. I'll put the latest files into an archive with the next release. I'll release version 2.2 in about one or two hours. Updated again. 2.2: added admin command @bankadmin where the administrators can set the NPC's variables directly (set name, maxInput, maxZeny, interest without reloading scripts) The @bankadmin (exclusively for admins) command supports the following features: @bankadmin <option> returns the current value of an option @bankadmin <option> <value> sets the value of an option Valid options are name, maxinput, maxzeny, interest, whereas name must be a string and the other three have to be integers. The name can also be written with a colour code (like "@bankadmin set name "^F68712Banker^000000"" [please note the the ^000000 after the NPC's name to make the text after the name black again]) //edit: I really shouldn't release stuff at night, I made some mistakes with version 2.2. If you happened to download it already, please download version 2.3 instead. @bankadmin works now. I'm sorry for the inconvenience.
  21. Could you show the updated script here, please?
  22. Ein System für multilinguale Skripte (die ja zu einem Großteil die Übersetzung ausmachen dürften) würde schon Sinn ergeben, jedoch müsste sich erst einmal jemand finden, der dies umsetzt. SVN ist ja dafür gemacht, parallele Arbeiten zu ermöglichen Obwohl Git für sowas viel besser geeignet ist... Aber würden ALLE Leute daran arbeiten können, würde auch viel unbrauchbaren rauskommen und man müsste jemanden finden der a ) sinnvolle von sinnlosen/destruktiven Commits trennt und b ) Dateien zusammenführt, bei denen Konflikte auftreten. Deswegen muss man sich ja für schreibrechte am SVN auch (u.a. mit Referenzen) bewerben und von den Admins/Developern bewertet werden.
  23. Working now: Find: //=========================================================== //=== Mobs //=========================================================== - script trum_v1 -1,{ OnInit: // Target Mobs monster "pvp_n_2-1",0,0,"Gold Eater",1002,5000,"trum_v1::OnThisMobDeath"; end; OnThisMobDeath: monster "pvp_n_2-1",0,0,"Gold Eater",1002,1,"trum_v1::OnThisMobDeath"; getitem 969,5; } Replace with: //=========================================================== //=== Mobs //=========================================================== // monster spawn pvp_n_2-1,0,0,0,0 monster "Gold Eater" 1002,1000,30000,0,"trum_v1::OnThisMobDeath" - script trum_v1 -1,{ OnThisMobDeath: getitem 969,5; }
×
×
  • Create New...