-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Does item pickup have a victim (picking up items marked as theft) #717
Comments
Interestingly Gothic 2 does But I guess the player being the "victim" when picking up an item might be strange? |
I guess the culprit might be living in Npc::takeItem, which does |
At least the Gothic 1 script assesses theft differently depending on whether a victim is set or not. if (npc_canseenpc(self, other)) { printdebugnpc(pd_zs_check, "...NSC kann den Dieb sehen!"); if (hlp_isvaliditem(item) && (!hlp_isvalidnpc(victim))) { printdebugnpc(pd_zs_check, "...Item wurde aufgehoben!"); // Item picked up ... } else { printdebugnpc(pd_zs_check, "...Taschendiebstahl!"); //pickpocket ... } This causes NPC around an item to tell the player that something is getting stolen right now and also indicates that victim is not always set in the perception process. So adapt the sent passivePerc accordingly to not transmit the player as victim when picking up items. GameScript::invokeState() already removed the default setting of other=npc for the !other case in commit 3fc5c39 ("damage from faling") as part of the fix for Try#18, so do the same for the current default victim setting. This fixes Try#717.
At least the Gothic 1 script assesses theft differently depending on whether a victim is set or not. if (npc_canseenpc(self, other)) { printdebugnpc(pd_zs_check, "...NSC kann den Dieb sehen!"); if (hlp_isvaliditem(item) && (!hlp_isvalidnpc(victim))) { printdebugnpc(pd_zs_check, "...Item wurde aufgehoben!"); // Item picked up ... } else { printdebugnpc(pd_zs_check, "...Taschendiebstahl!"); //pickpocket ... } This causes NPC around an item to tell the player that something is getting stolen right now and also indicates that victim is not always set in the perception process. So adapt the sent passivePerc accordingly to not transmit the player as victim when picking up items. GameScript::invokeState() already removed the default setting of other=npc for the !other case in commit 3fc5c39 ("damage from faling") as part of the fix for Try#18, so do the same for the current default victim setting. This fixes Try#717.
At least the Gothic 1 script assesses theft differently depending on whether a victim is set or not. if (npc_canseenpc(self, other)) { printdebugnpc(pd_zs_check, "...NSC kann den Dieb sehen!"); if (hlp_isvaliditem(item) && (!hlp_isvalidnpc(victim))) { printdebugnpc(pd_zs_check, "...Item wurde aufgehoben!"); // Item picked up ... } else { printdebugnpc(pd_zs_check, "...Taschendiebstahl!"); //pickpocket ... } This causes NPC around an item to tell the player that something is getting stolen right now and also indicates that victim is not always set in the perception process. So adapt the sent passivePerc accordingly to not transmit the player as victim when picking up items. GameScript::invokeState() already removed the default setting of other=npc for the !other case in commit 3fc5c39 ("damage from faling") as part of the fix for Try#18, so do the same for the current default victim setting. This fixes Try#717.
At least the Gothic 1 script assesses theft differently depending on whether a victim is set or not. if (npc_canseenpc(self, other)) { printdebugnpc(pd_zs_check, "...NSC kann den Dieb sehen!"); if (hlp_isvaliditem(item) && (!hlp_isvalidnpc(victim))) { printdebugnpc(pd_zs_check, "...Item wurde aufgehoben!"); // Item picked up ... } else { printdebugnpc(pd_zs_check, "...Taschendiebstahl!"); //pickpocket ... } This causes NPC around an item to tell the player that something is getting stolen right now and also indicates that victim is not always set in the perception process. So adapt the sent passivePerc accordingly to not transmit the player as victim when picking up items. GameScript::invokeState() already removed the default setting of other=npc for the !other case in commit 3fc5c39 ("damage from faling") as part of the fix for Try#18, so do the same for the current default victim setting. This fixes Try#717.
At least the Gothic 1 script assesses theft differently depending on whether a victim is set or not. if (npc_canseenpc(self, other)) { printdebugnpc(pd_zs_check, "...NSC kann den Dieb sehen!"); if (hlp_isvaliditem(item) && (!hlp_isvalidnpc(victim))) { printdebugnpc(pd_zs_check, "...Item wurde aufgehoben!"); // Item picked up ... } else { printdebugnpc(pd_zs_check, "...Taschendiebstahl!"); //pickpocket ... } This causes NPC around an item to tell the player that something is getting stolen right now and also indicates that victim is not always set in the perception process. So adapt the sent passivePerc accordingly to not transmit the player as victim when picking up items. GameScript::invokeState() already removed the default setting of other=npc for the !other case in commit 3fc5c39 ("damage from faling") as part of the fix for Try#18, so do the same for the current default victim setting. This fixes Try#717.
At least the Gothic 1 script assesses theft differently depending on whether a victim is set or not. if (npc_canseenpc(self, other)) { printdebugnpc(pd_zs_check, "...NSC kann den Dieb sehen!"); if (hlp_isvaliditem(item) && (!hlp_isvalidnpc(victim))) { printdebugnpc(pd_zs_check, "...Item wurde aufgehoben!"); // Item picked up ... } else { printdebugnpc(pd_zs_check, "...Taschendiebstahl!"); //pickpocket ... } This causes NPC around an item to tell the player that something is getting stolen right now and also indicates that victim is not always set in the perception process. So adapt the sent passivePerc accordingly to not transmit the player as victim when picking up items. GameScript::invokeState() already removed the default setting of other=npc for the !other case in commit 3fc5c39 ("damage from faling") as part of the fix for Try#18, so do the same for the current default victim setting. This fixes Try#717.
In Gothic 1 every time I pick up an item from the ground (i.e. a berry at the startpoint) while a Npc looks, he'll shout "Behind you!".
Tracking that down to b_assesstheft(), I can see:
So the condition (hlp_isvaliditem(item) && (!hlp_isvalidnpc(victim)) should be true to indicated something picked up, but isn't, leading to the pickpocket branch.
I'm not yet sure what part is wrong though.
The text was updated successfully, but these errors were encountered: