… | |
… | |
948 | if (op->env) |
948 | if (op->env) |
949 | { |
949 | { |
950 | if (env->map == NULL) |
950 | if (env->map == NULL) |
951 | return; |
951 | return; |
952 | |
952 | |
953 | if (env->type == PLAYER) |
|
|
954 | esrv_del_item (env->contr, op->count); |
|
|
955 | |
|
|
956 | if (!(op = op->insert_at (env, op))) |
953 | if (!(op = op->insert_at (env, op))) |
957 | return; |
954 | return; |
958 | } |
955 | } |
959 | |
956 | |
960 | // elmex Tue Aug 15 17:46:51 CEST 2006: Prevent bomb from exploding |
957 | // elmex Tue Aug 15 17:46:51 CEST 2006: Prevent bomb from exploding |
… | |
… | |
1601 | } |
1598 | } |
1602 | |
1599 | |
1603 | /* charm */ |
1600 | /* charm */ |
1604 | if (QUERY_FLAG (spell, FLAG_NO_ATTACK) && !QUERY_FLAG (head, FLAG_FRIENDLY)) |
1601 | if (QUERY_FLAG (spell, FLAG_NO_ATTACK) && !QUERY_FLAG (head, FLAG_FRIENDLY)) |
1605 | { |
1602 | { |
|
|
1603 | INVOKE_OBJECT (KILL, head, ARG_OBJECT (caster)); |
|
|
1604 | |
1606 | /* Prevent uncontolled outbreaks of self replicating monsters. |
1605 | /* Prevent uncontrolled outbreaks of self replicating monsters. |
1607 | Typical use case is charm, go somwhere, use aggravation to make hostile. |
1606 | Typical use case is charm, go somwhere, use aggravation to make hostile. |
1608 | This could lead to fun stuff like mice outbreak in bigworld and server crawl. */ |
1607 | This could lead to fun stuff like mice outbreak in bigworld and server crawl. */ |
1609 | CLEAR_FLAG (head, FLAG_GENERATOR); |
1608 | CLEAR_FLAG (head, FLAG_GENERATOR); |
1610 | head->set_owner (op); |
1609 | head->set_owner (op); |
1611 | set_spell_skill (op, caster, spell, head); |
1610 | set_spell_skill (op, caster, spell, head); |