b_giveinvitems (g1) 5468 9

O temacie

Autor pawbuj

Zaczęty 27.10.2011 roku

Wyświetleń 5468

Odpowiedzi 9

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
mam skrypt, który jest logiczny, jednak nie działa. chodzi o wyswietlanie nazw przedmiotów podczas dialogu, np.odbieramy mapę etc..

co robię nie tak?func void B_GiveInvItems(var C_NPC giver, var C_NPC taker, var int itemInstance, var int amount)
{
   PrintDebugNpc   (PD_ZS_DETAIL,   "B_GiveInvItems");

   //-------- Gegenstand übertragen --------
   Npc_RemoveInvItems   (giver,   itemInstance,   amount);
   CreateInvItems      (taker,   itemInstance,   amount);

   //-------- Meldung ausgeben --------
   var string msg0;
   var string msg1;
   var string msg2;
   var string itemname;
   
      itemname = item.name;//kommt von createinvitems
   if   Npc_IsPlayer(giver)
   {
      if (itemInstance == ItMiNugget)
      {
         
      msg0 = ConcatStrings (taker.name," odebrał: ");
      msg1 = ConcatStrings (IntToString(amount),  "bryłek rudy.");
      
      
      //PrintScreen   (msg1, 3,72,"FONT_OLD_10_WHITE.TGA",5);
      //msg = ConcatStrings(IntToString(amount), _STR_MESSAGE_ORE_GIVEN);
         //PrintScreen   (msg, 3,_YPOS_MESSAGE_GIVEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_GIVEN);
      
      PrintScreen (msg0, 2,68,"FONT_OLD_10_WHITE.TGA",4);            
      //PrintScreen   (str2, 3,66,"FONT_OLD_10_WHITE.TGA",3);
      PrintScreen (msg1, 2,72,"FONT_OLD_10_WHITE.TGA",4);   
      PrintScreen ("m", 8,74,"PAWBUJ2.TGA",4);//reka zgody   
         
         
         }
      
      else
      {
          if amount == 1
          {
      msg0 = ConcatStrings (taker.name," odebrał: ");
      msg1  = ConcatStrings (itemname,  "");
      //msg1= ConcatStrings (msg,  "bryłek rudy.");
      PrintScreen (msg0, 2,61,"FONT_OLD_10_WHITE.TGA",4);            
      //PrintScreen   (str2, 3,66,"FONT_OLD_10_WHITE.TGA",3);
      PrintScreen (msg1, 2,65,"FONT_OLD_10_WHITE.TGA",4);   
      PrintScreen ("m", 8,65,"PAWBUJ2.TGA",3);//reka zgody          
             
             //msg = ConcatStrings(IntToString(amount), _STR_MESSAGE_ITEM_GIVEN);
             //PrintScreen   (msg, 3,_YPOS_MESSAGE_GIVEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_GIVEN);
         }  
         else
          {
      msg0 = ConcatStrings (taker.name," odebrał: ");
      msg1 = ConcatStrings (IntToString(amount),itemname);
      
      PrintScreen (msg0, 2,61,"FONT_OLD_10_WHITE.TGA",4);            
      //PrintScreen   (str2, 3,66,"FONT_OLD_10_WHITE.TGA",3);
      PrintScreen (msg1, 2,65,"FONT_OLD_10_WHITE.TGA",4);   
      PrintScreen ("m", 8,65,"PAWBUJ2.TGA",3);//reka zgody          
              //msg = ConcatStrings(IntToString(amount),_STR_MESSAGE_ITEMS_GIVEN);
             //PrintScreen   (msg, 3,_YPOS_MESSAGE_GIVEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_GIVEN);
         };  
      };
   }
   else if Npc_IsPlayer(taker)
   {
      if (itemInstance == ItMiNugget)
      {
      msg0 = ConcatStrings (giver.name," przekazał Ci: ");
      msg1 = ConcatStrings (IntToString(amount),  "bryłek rudy.");
      
      
      //PrintScreen   (msg1, 3,72,"FONT_OLD_10_WHITE.TGA",5);
      //msg = ConcatStrings(IntToString(amount), _STR_MESSAGE_ORE_GIVEN);
         //PrintScreen   (msg, 3,_YPOS_MESSAGE_GIVEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_GIVEN);
      
      PrintScreen (msg0, 2,74,"FONT_OLD_10_WHITE.TGA",4);            
      //PrintScreen   (str2, 3,66,"FONT_OLD_10_WHITE.TGA",3);
      PrintScreen (msg1, 2,78,"FONT_OLD_10_WHITE.TGA",4);   
      PrintScreen ("m", 8,78,"PAWBUJ2.TGA",3);//reka zgody      
         
         //msg = ConcatStrings(IntToString(amount), _STR_MESSAGE_ORE_TAKEN);
         //PrintScreen   (msg, 3,_YPOS_MESSAGE_TAKEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_TAKEN);
      }
      else
      {
          if amount == 1
          {
      msg0 = ConcatStrings (giver.name," przekazał Ci: ");
      msg1  = ConcatStrings (itemname,  "");
      //msg1= ConcatStrings (msg,  "bryłek rudy.");
      PrintScreen (msg0, 2,74,"FONT_OLD_10_WHITE.TGA",4);            
      //PrintScreen   (str2, 3,66,"FONT_OLD_10_WHITE.TGA",3);
      PrintScreen (msg1, 2,78,"FONT_OLD_10_WHITE.TGA",4);   
      PrintScreen ("m", 8,78,"PAWBUJ2.TGA",3);//reka zgody          
             
                //msg = ConcatStrings(IntToString(amount), _STR_MESSAGE_ITEM_TAKEN);
             //PrintScreen   (msg, 3,_YPOS_MESSAGE_TAKEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_TAKEN);
         }  
         else
          {
      msg0 = ConcatStrings (giver.name," odebrał ");
      msg1 = ConcatStrings (IntToString(amount),itemname);
      
      PrintScreen (msg0, 1,75,"FONT_OLD_10_WHITE.TGA",4);            
      //PrintScreen   (str2, 3,66,"FONT_OLD_10_WHITE.TGA",3);
      PrintScreen (msg1, 3,78,"FONT_OLD_10_WHITE.TGA",4);   
      PrintScreen ("m", 8,78,"PAWBUJ2.TGA",3);//reka zgody   
             //msg = ConcatStrings(IntToString(amount),_STR_MESSAGE_ITEMS_TAKEN);
             //PrintScreen   (msg, 3,_YPOS_MESSAGE_TAKEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_TAKEN);
         };
      };
   };   
};
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

b_giveinvitems (g1)
#1 2011-10-27, 22:36(Ostatnia zmiana: 2011-10-28, 22:55)
func void B_GiveInvItems(var C_NPC giver, var C_NPC taker, var int itemInstance, var int amount)
{
PrintDebugNpc (PD_ZS_DETAIL, "B_GiveInvItems");

//-------- Gegenstand übertragen --------
Npc_RemoveInvItems (giver, itemInstance, amount);
CreateInvItems (taker, itemInstance, amount);

//-------- Meldung ausgeben --------
var string msg0;
var string msg1;
var string msg2;
var string itemname;

itemname = itemInstance.name;//kommt von createinvitems
if Npc_IsPlayer(giver)
{
if (itemInstance == ItMiNugget)
{

msg0 = ConcatStrings (taker.name," odebrał: ");
msg1 = ConcatStrings (IntToString(amount), "bryłek rudy.");
msg2 = ConcatStrings (msg0,msg1);


PrintScreen (msg2, 2,72,"FONT_OLD_10_WHITE.TGA",4);
PrintScreen ("m", 8,74,"PAWBUJ2.TGA",4);//reka zgody


}

else
{
if amount == 1
{
msg0 = ConcatStrings (taker.name," odebrał: ");
msg1 = ConcatStrings (itemname, "");
msg2 = ConcatStrings (msg0,msg1);



PrintScreen (msg2, 2,65,"FONT_OLD_10_WHITE.TGA",4);
PrintScreen ("m", 8,65,"PAWBUJ2.TGA",3);//reka zgody

}
else
{
msg0 = ConcatStrings (taker.name," odebrał: ");
msg1 = ConcatStrings (IntToString(amount),itemname);
msg2 = ConcatStrings (msg0,msg1);

PrintScreen (msg2, 2,61,"FONT_OLD_10_WHITE.TGA",4);
PrintScreen ("m", 8,65,"PAWBUJ2.TGA",3);//reka zgody

};
};
}
else if Npc_IsPlayer(taker)
{
if (itemInstance == ItMiNugget)
{
msg0 = ConcatStrings (giver.name," przekazał Ci: ");
msg1 = ConcatStrings (IntToString(amount), "bryłek rudy.");




PrintScreen (msg0, 2,74,"FONT_OLD_10_WHITE.TGA",4);
PrintScreen (msg1, 2,78,"FONT_OLD_10_WHITE.TGA",4);
PrintScreen ("m", 8,78,"PAWBUJ2.TGA",3);//reka zgody

}
else
{
if amount == 1
{
msg0 = ConcatStrings (giver.name," przekazał Ci: ");
msg1 = ConcatStrings (itemname, "");
//msg1= ConcatStrings (msg, "bryłek rudy.");
PrintScreen (msg0, 2,74,"FONT_OLD_10_WHITE.TGA",4);
//PrintScreen (str2, 3,66,"FONT_OLD_10_WHITE.TGA",3);
PrintScreen (msg1, 2,78,"FONT_OLD_10_WHITE.TGA",4);
PrintScreen ("m", 8,78,"PAWBUJ2.TGA",3);//reka zgody

//msg = ConcatStrings(IntToString(amount), _STR_MESSAGE_ITEM_TAKEN);
//PrintScreen (msg, 3,_YPOS_MESSAGE_TAKEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_TAKEN);
}
else
{
msg0 = ConcatStrings (giver.name," odebrał ");
msg1 = ConcatStrings (IntToString(amount),itemname);

PrintScreen (msg0, 1,75,"FONT_OLD_10_WHITE.TGA",4);
//PrintScreen (str2, 3,66,"FONT_OLD_10_WHITE.TGA",3);
PrintScreen (msg1, 3,78,"FONT_OLD_10_WHITE.TGA",4);
PrintScreen ("m", 8,78,"PAWBUJ2.TGA",3);//reka zgody
//msg = ConcatStrings(IntToString(amount),_STR_MESSAGE_ITEMS_TAKEN);
//PrintScreen (msg, 3,_YPOS_MESSAGE_TAKEN,"FONT_OLD_10_WHITE.TGA",_TIME_MESSAGE_TAKEN);
};
};
};
};

początek troche zmieniłem ale reszty mi sie nie chce ;d  jutro całość poprawie błąd był w przypisywaniu
itemname = item.name;
nie masz tutaj zmiennej item ;p  zmienna z item`em funkcji to itemInstance

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

b_giveinvitems (g1)
#2 2011-10-28, 21:01(Ostatnia zmiana: 2011-10-28, 21:51)
no tak, ale zmiany dotyczą bryłek rudy "itminugget", które w obecnej formie działają.


mnie wiem jak skorelować iteminstacne z  item, name , aby działało.

szczerze poiwiedziawszy bardzo dziwi mnie , ze nie działa ten skryptr, gdyz wzorowałem się na wersji z g2nk.
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Zrobiłem całe dawanie przedmiotów ...

i nawet napisałem żebyś zwrócił uwagę na linijkę

itemname = item.name;
ze zmieniłem na

itemname = itemInstance.name;
...

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Rafał

wiem i tak wkleiłem,ale wywalało błąd. nie można chyba połaczyć iteminstance w iteminstance.name, tak juz wczesniej próbowałem.
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
To spróbuj tak

var c_item Itemm;
itemm = Npc_GetInvItem (self, itemInstance);
itemname = itemm.name;

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

b_giveinvitems (g1)
#6 2011-10-29, 14:08(Ostatnia zmiana: 2011-10-30, 12:45)
To spróbuj tak

var c_item Itemm;
itemm = Npc_GetInvItem (self, itemInstance);
itemname = itemm.name;
wywala func does not return an instance,, mam przeczucie, ze nie obędzie sie bez ikarusa.

testuje moda dalej i jednak wyskakuja nazwy itemów, jednak nie te, które są oddawane/sprzedawane. nie wiem czym jest to podyktowane- niestety nie mam czasu dalej tego drążyć , a chce w listopadzie wydac moda.
 

IceMan

IceMan

Użytkownicy
posty68
Propsy11
Profesjabrak
  • Użytkownicy
Witam,
Przepraszam za odkopanie tematu, ale borykam się z tym samym problemem a widzę że tutaj też go nie rozwiązano.
Ktoś ma jakiś pomysł?

Kiedy daje:
itemname = item.name; - nazwy nie są pokazywane, lub jakieś przypadkowe typu szczotka/smażone mięso etc.itemname = itemInstance.name; - nie może połączyć, jest błąd: Unknow identifier NAMEvar c_item Itemm;
itemm = Npc_GetInvItem (self, itemInstance);
itemname = itemm.name;
Tutaj func does not return an instance

@pawbuj rozwiązałeś to jakoś?
 

Splash

Splash

Moderator
posty4211
Propsy3414
ProfesjaNierób
  • Moderator
Funkcja Npc_GetInvItem przeszukuje ekwipunek i jeśli znajdzie oczekiwany przedmiot, przypisuje (nie zwraca) jego id instancji do instancji item.
Npc_GetInvItem(self, itemInstance);
Print(item.name);
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

IceMan

IceMan

Użytkownicy
posty68
Propsy11
Profesjabrak
  • Użytkownicy
Działa perfekcyjnie, dzięki wielkie!
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry