ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/NPC_Dialogue.pm
(Generate patch)

Comparing deliantra/server/ext/NPC_Dialogue.pm (file contents):
Revision 1.10 by root, Mon Jul 14 23:57:45 2008 UTC vs.
Revision 1.13 by root, Thu Jan 8 04:35:04 2009 UTC

310 } elsif ($cmd eq "trigger") { 310 } elsif ($cmd eq "trigger") {
311 my ($con, $state) = split /\s+/, $args, 2; 311 my ($con, $state) = split /\s+/, $args, 2;
312 $con = $con * 1; 312 $con = $con * 1;
313 313
314 if (defined $state) { 314 if (defined $state) {
315 $self->{npc}->map->trigger ($args, $state); 315 $self->{npc}->map->trigger ($args, $state, $self->{npc}, $self->{ob});
316 } else { 316 } else {
317 my $rvalue = \$self->{npc}{dialog_trigger}{$con}; 317 my $rvalue = \$self->{npc}{dialog_trigger}{$con};
318 $self->{npc}->map->trigger ($con, $$rvalue = !$$rvalue); 318 $self->{npc}->map->trigger ($con, $$rvalue = !$$rvalue, $self->{npc}, $self->{ob});
319 } 319 }
320 320
321 } elsif ($cmd eq "addtopic") { 321 } elsif ($cmd eq "addtopic") {
322 push @kw, split /\|/, $args; 322 push @kw, split /\|/, $args;
323 $self->{add_topic}->(split /\s*\|\s*/, $args) if $self->{add_topic}; 323 $self->{add_topic}->(split /\s*\|\s*/, $args) if $self->{add_topic};
331 } 331 }
332 } 332 }
333 333
334 delete $self->{npc}{$self->{ob}->name}{dialog_state} unless %$state; 334 delete $self->{npc}{$self->{ob}->name}{dialog_state} unless %$state;
335 delete $self->{ob}{dialog_flag} unless %$flag; 335 delete $self->{ob}{dialog_flag} unless %$flag;
336
337 # combine lines into paragraphs
338 $reply =~ s/(?<=\S)\n(?=\w)/ /g;
339 $reply =~ s/\n\n/\n/g;
340 336
341 # ignores flags and npc from replies 337 # ignores flags and npc from replies
342 $reply = join "\n", (map $_->[1], @replies), $reply; 338 $reply = join "\n", (map $_->[1], @replies), $reply;
343 339
344 # now mark up all matching keywords 340 # now mark up all matching keywords
349 last; 345 last;
350 } 346 }
351 } 347 }
352 } 348 }
353 349
350 $self->{npc}->use_trigger ($self->{ob})
351 if $self->{npc}->type == cf::MAGIC_EAR;
352
354 return wantarray ? ($reply, @kw) : $reply; 353 return wantarray ? ($reply, @kw) : $reply;
355 } 354 }
356 } 355 }
357 } 356 }
358 357

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines