|
| | Autor | Mensaje |
|---|
legendario2009 Aprendiz


 Edad: 23 Puntos de Actividad: 1758
Cantidad de envíos: 71 Fecha de inscripción: 21/02/2009
Nº. de Miembro: 49 Respeto por el Foro:
 | Tema: No funciona Dom 05 Jul 2009, 2:27 pm | |
| Buenas, he hecho este script, que lo que hace es que si tienes algunos de los objetos mencionados en el inventario, no te venda el posadero nada, pero si no los tienes que te los venda, pero me da la sensación de que esta incomplento, porque no funciona ¿donde esta el fallo? | Código: | #include "nw_i0_tool"
int StartingConditional() {
// Comprobar si el PJ que habla tiene los objetos en su inventario if(!HasItem(GetPCSpeaker(), "bebe_agua")) TakeGoldFromCreature(50, GetPCSpeaker(), TRUE); return FALSE; if(!HasItem(GetPCSpeaker(), "bebe_cerveza")) TakeGoldFromCreature(150, GetPCSpeaker(), TRUE); return FALSE; if(!HasItem(GetPCSpeaker(), "bebe_grog")) TakeGoldFromCreature(200, GetPCSpeaker(), TRUE); return FALSE;
return TRUE; }
|
|
|  | | legendario2009 Aprendiz


 Edad: 23 Puntos de Actividad: 1758
Cantidad de envíos: 71 Fecha de inscripción: 21/02/2009
Nº. de Miembro: 49 Respeto por el Foro:
 | Tema: Re: No funciona Vie 10 Jul 2009, 7:24 pm | |
| |
|  | | Ender Patos@

 Edad: 20 Puntos de Actividad: 1001
Cantidad de envíos: 11 Fecha de inscripción: 31/08/2009
Nº. de Miembro: 100 Respeto por el Foro:
 | Tema: Re: No funciona Lun 31 Ago 2009, 1:25 am | |
| No entiendo muy bien donde va ese guión y lo que quieres hacer. Hay sale que quita dinero y retorna falso en el condicional de una conversación (supongo), si NO POSEES ESE OBJETO. Ten en cuenta que con la admiración estas negando la siguiente función. Si precisamente querías esto, el error debe estar en otro sitio. pero si te has equivocado con la admiración prueba esto: | Código: |
#include "nw_i0_tool"
int StartingConditional() {
// Comprobar si el PJ que habla tiene los objetos en su inventario if(HasItem(GetPCSpeaker(), "bebe_agua")) TakeGoldFromCreature(50, GetPCSpeaker(), TRUE); return FALSE; if(HasItem(GetPCSpeaker(), "bebe_cerveza")) TakeGoldFromCreature(150, GetPCSpeaker(), TRUE); return FALSE; if(HasItem(GetPCSpeaker(), "bebe_grog")) TakeGoldFromCreature(200, GetPCSpeaker(), TRUE); return FALSE;
return TRUE; } |
También puedes directamente, en el archivo que abre la tienda negarlo:
| Código: | #include "nw_i0_plot"
void main() { if(!HasItem(GetPCSpeaker(), "bebe_agua")) { AssignCommand(OBJECT_SELF,SpeakString( "No pienso abrirte la tienda por tener es objeto, fuera de aqui")); return; } object oStore = GetNearestObject(OBJECT_TYPE_STORE); if (GetIsObjectValid(oStore) == TRUE) { gplotAppraiseOpenStore(oStore, GetPCSpeaker()); } else PlayVoiceChat(VOICE_CHAT_CUSS); } |
Este ejemplo mio no iria en condicional de una conversación, si no en la acción, y si tienes ese objeto con tag "bebe_agua" el tendero te diria esas palabras y automáticamente se cerraría la conversación Es una pena que estén cerrados muchos temas, aunque algunos están muy bien, hay mucho código que depurar. |
|  | | Gonar Patos@

 Edad: 35 Puntos de Actividad: 527
Cantidad de envíos: 18 Fecha de inscripción: 09/02/2011
Nº. de Miembro: 132 Respeto por el Foro:
 | Tema: Re: No funciona Jue 10 Feb 2011, 12:57 am | |
| No entiendo en que situación usarias esto, yo lo haria de otra manera, pero bueno. Haciendolo tal y como tu, en un condicional el codigo seria asi corrigiendo errores, depurando y mejorando el tema economico: | Código: | #include "nw_i0_tool" int StartingConditional() { object oPC = GetPCSpeaker(); int iDevolver = TRUE; // Comprobar si el PJ que habla tiene los objetos en su inventario y ademas si puede pagarlos. if(!HasItem(oPC, "bebe_agua") && GetGold(oPC) >= 50) { TakeGoldFromCreature(50, oPC, TRUE); iDevolver = FALSE; } if(!HasItem(oPC, "bebe_cerveza") && GetGold(oPC) >= 150) { TakeGoldFromCreature(150, oPC, TRUE); iDevolver = FALSE; } if(!HasItem(oPC, "bebe_grog") && GetGold(oPC) >= 200) { TakeGoldFromCreature(200, oPC, TRUE); iDevolver = FALSE; } return iDevolver; } |
Ahora bien como dice Ender, deberias de meterlo en una acción, y tu script para que funcione (Prefiero como te dice Ender) como tu lo tenias previsto, seria asi:
| Código: | #include "nw_i0_tool" void main() { object oPC = GetPCSpeaker(); // Comprobar si el PJ que habla tiene los objetos en su inventario y ademas si puede pagarlos. if(!HasItem(oPC, "bebe_agua") && GetGold(oPC) >= 50) TakeGoldFromCreature(50, oPC, TRUE); if(!HasItem(oPC, "bebe_cerveza") && GetGold(oPC) >= 150) TakeGoldFromCreature(150, oPC, TRUE); if(!HasItem(oPC, "bebe_grog") && GetGold(oPC) >= 200) TakeGoldFromCreature(200, oPC, TRUE); } |
|
|  | | |
Temas similares |  |
|
| | Permiso de este foro: | No puedes responder a temas en este foro.
| |
| |
| |