Reply to Problem with hitting
If you don't have an account, just leave the password field blank.
I borrowed the Dink boss script from Cloud Castle 2 and changed it into Dark Dink. I also changed the sword into plain fist. After some fiddling, it's working almost perfectly. However, whenever Dark Dink tries to punch me, he always misses. He might punch around a hundred times and should definitely hit me, but however, he never does, and I can't figure out why. No sound, no blood, no damage, absolutely nothing happens when he punches around. Can anybody help me with this, cause I can't see what's wrong with it. Here's the script:
// Dark Dink void main( void ) { screenlock(1); playmidi("4.mid"); int &mcounter; int &junk; sp_base_walk(¤t_sprite, 940); sp_brain(¤t_sprite, 9); sp_timing(¤t_sprite, 1); sp_speed(¤t_sprite, 2); sp_hitpoints(¤t_sprite, 2000); sp_touch_damage(¤t_sprite, 10); sp_strength(¤t_sprite, 15); SP_DEFENSE(¤t_sprite, 5); sp_base_attack(¤t_sprite, 950); sp_distance(¤t_sprite, 70); sp_range(¤t_sprite, 60); sp_target(¤t_sprite, 1); sp_exp(¤t_sprite, 0); int &dinkx; int &dinky; int &knitx; int &knity; int &diff; int &delay = 8000; loop: wait(100); &delay -= 100; if (&delay > 0) goto loop; &delay = 8000; &junk = random(500, 500); wait(&junk); if (&life < 1) goto loop; &dinkx = sp_x(¤t_sprite, -1); &dinky = sp_y(¤t_sprite, -1); &knitx = sp_x(1, -1); &knity = sp_y(1, -1); &junk = 0; &diff = &dinky; &diff -= &knity; if (&diff < 0) &diff *= -1; if (&diff < 50) { if (&knitx > &dinkx> { freeze(¤t_sprite); sp_seq(¤t_sprite, 966); sp_frame(¤t_sprite, 1); sp_kill_wait(¤t_sprite); sp_nocontrol(¤t_sprite, 1); wait(100); unfreeze(¤t_sprite); &dinkx += 30; &junk = create_sprite(&dinkx, &dinky, 11, 516, 1); sp_seq(&junk, 506); sp_dir(&junk, 6); } else { freeze(¤t_sprite); sp_seq(¤t_sprite, 964); sp_frame(¤t_sprite, 1); sp_kill_wait(¤t_sprite); sp_nocontrol(¤t_sprite, 1); wait(100); unfreeze(¤t_sprite); &dinkx -= 30; &junk = create_sprite(&dinkx, &dinky, 11, 514, 1); sp_seq(&junk, 504); sp_dir(&junk, 4); } } if (&junk < 1) { &diff = &dinkx; &diff -= &knitx; if (&diff < 0) &diff *= -1; if (&diff < 50) { if (&knity > &dinky> { freeze(¤t_sprite); sp_seq(¤t_sprite, 962); sp_frame(¤t_sprite, 1); sp_kill_wait(¤t_sprite); sp_nocontrol(¤t_sprite, 1); wait(100); unfreeze(¤t_sprite); &junk = create_sprite(&dinkx, &dinky, 11, 512, 1); sp_seq(&junk, 502); sp_dir(&junk, 2); } else { freeze(¤t_sprite); sp_seq(¤t_sprite, 968); sp_frame(¤t_sprite, 1); sp_kill_wait(¤t_sprite); sp_nocontrol(¤t_sprite, 1); wait(100); unfreeze(¤t_sprite); &junk = create_sprite(&dinkx, &dinky, 11, 518, 1); sp_seq(&junk, 508); sp_dir(&junk, 8); } } } if (&junk > 0) { playsound(17, 8000, 0, &junk ,0); sp_timing(&junk, 0); sp_speed(&junk, 6); sp_strength(&junk, 20); sp_flying(&junk, 1); sp_range(&junk, 20); sp_script(&junk, "dam-sfb"); &mshadow = create_sprite(&mholdx, &mholdy, 15, 432, 3); sp_brain_parm(&mshadow, &junk); sp_que(&mshadow, -500); sp_nohit(&mshadow, 1); sp_brain_parm(&junk, ¤t_sprite); wait(500); } goto loop; } void hit( void ) { oneloop: int &klife = sp_hitpoints (¤t_sprite, -1); if (&klife < 1401) { freeze(1); freeze(¤t_sprite); sp_touch_damage(¤t_sprite, -1); move_stop(¤t_sprite, 8, 150, 1); move_stop(¤t_sprite, 2, 150, 1); move_stop(¤t_sprite, 4, 170, 1); move_stop(¤t_sprite, 6, 170, 1); sp_dir(¤t_sprite, 6); say_stop("`%This isn't over!", ¤t_sprite); wait(500); int &flame = create_sprite(170, 150, 7, 167, 1); sp_seq(&flame, 167); playsound(24, 22052, 0, 0, 0); int &flame = create_sprite(170, 150, 7, 167, 1); sp_seq(&flame, 167); playsound(24, 22052, 0, 0, 0); //remove rocks hardness and sprite sp_hard(¤t_sprite, 1); draw_hard_map(¤t_sprite); sp_active(¤t_sprite, 0); int &hold = sp_editor_num(¤t_sprite); if (&hold != 0) { //this was placed by the editor, lets make it not come back editor_type(&hold, 1); //kill food forever } //remove the cracks as well, as they would look silly now sp_dir(1, 2); say_stop("You can bet it ain't!", 1); wait(1500); say_stop("What was that all about?", 1); wait(1500); say_stop("Anyway, I gotta get to those blue knights and rescue Libby!", 1); wait(500); say_stop("I hope the word has spread about me rescuing the girls", 1); say_stop("so that the guard will let me see the king.", 1); &events = 4; &exp += 200; say("`%200 EXP GAINED", 1); screenlock(0); unfreeze(1); } else { playmidi("4.mid"); goto mainloop; } } void attack( void ) { playsound(8, 8000, 0, 0, 0); &mcounter = random(4000,0); sp_attack_wait(¤t_sprite, &mcounter); goto loop; }