Dělám už několik let na vlastním modulu a momentálně dodělávám craft. Nejsem zkušený skripter a skripty jsou taky největší brzdou mého projektu, naštěstí jich už moc potřebovat nebudu. :o)
K věci:
Dám sem do code dva skripty - oba plní podobnou funkci, ovšem jeden je funkční a druhý nefunkční a to je taky důvod, proč si nevím rady, neboť netuším, kde je chyba.
Skript č. 1 - funkční
Pozice: OnClose, Placeable (kopie CEPového)
Funkce: Po zavření inventáře placeablu, zkontroluj, zda daný inventář obsahuje předmět a pokud ano, spusť danou konverzaci.
Kód: Vybrat vše
#include "nw_i0_tool"
object oPc = GetLastUsedBy();
int StartingConditional()
{
if(!HasItem(GetObjectByTag("sm_zep_cook_map"), "sm_it_wheat"))
return FALSE;
ActionStartConversation(oPc, "sm_c_mortar");
return TRUE;
}
Pozice: OnClose, Placeable (kopie placeablu Neviditelný objekt)
Funkce: Po zavření inventáře placeablu, zkontroluj, zda daný inventář obsahuje tyto zmíněné předměty a pokud ano, spusť danou konverzaci.
Kód: Vybrat vše
#include "nw_i0_tool"
object oPc = GetLastUsedBy();
int StartingConditional()
{
if(!HasItem(GetObjectByTag("sm_it_pec"), "sm_it_wheat"))
return FALSE;
if(!HasItem(GetObjectByTag("sm_it_pec"), "sm_cook_kvas"))
return FALSE;
if(!HasItem(GetObjectByTag("sm_it_pec"), "sm_cook_salt"))
return FALSE;
if(!HasItem(GetObjectByTag("sm_it_pec"), "DRINK_LOW_WATER"))
return FALSE;
ActionStartConversation(oPc, "sm_c_pec");
return TRUE;
}
Kód: Vybrat vše
void main()
{
object oPC = GetLastClosedBy();
object oPec = GetNearestObjectByTag("sm_it_pec");
if (!GetIsPC(oPC)) return;
if (GetItemPossessedBy(oPec, "sm_cook_flourwheat")== OBJECT_INVALID)
return;
if (GetItemPossessedBy(oPec, "sm_cook_kvas")== OBJECT_INVALID)
return;
if (GetItemPossessedBy(oPec, "sm_cook_salt")== OBJECT_INVALID)
return;
if (GetItemPossessedBy(oPec, "drink_low_water")== OBJECT_INVALID)
return;
ActionStartConversation(oPC, "sm_c_pec");
}
Pokud by si někdo z vás udělal čas a třeba jen několika slovy napsal, v čem je chyba, byl bych mu moc zavázán.
Díky, steel