wyświetlanie zmiennej jako ciągu znaków 4631 12

O temacie

Autor pawbuj

Zaczęty 5.01.2010 roku

Wyświetleń 4631

Odpowiedzi 12

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
czy da się zrobić, aby zmienna wyświetlała się jako nazwa czegoś, np.

var int weapon;
weapon  = item.name//gdzie item został znaleziony przez npc

później skrypt:[codebox]PrintScreen (ConcatStrings ("Odebrano  Ci: ", IntToString(weapon)),-1,-1,"FONT_OLD_20_WHITE.TGA",1);[/codebox]

niestety wywala błąd, jak to obejść
 


pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
dodałem cos takiego i nie działa, tylko jest błąd. próbuje, aby nazwa miecza sie wyświetlałą na ekranie - niestety tutaj bez pomocy innych moderów sobie nie poradzę, bo nie znam komend [codebox]   if (Npc_GetDistToItem(self,item) < 500)
         {
            var string wepo;
            wepo = item.name;
            AI_TakeItem   (self, item);
            B_Say      (self, self, "$ITAKEYOURWEAPON");      
            PrintScreen (ConcatStrings ("Oręż oddany: ", IntToString(wepo)),-1,-1,"FONT_OLD_20_WHITE.TGA",1);
            AI_EquipBestMeleeWeapon(self);
            AI_EquipBestRangedWeapon(self);
         };
      };
   };[/codebox]
 

Jurigag

Jurigag

Użytkownicy
posty869
Propsy285
ProfesjaSkrypter
  • Użytkownicy
Nauczcie sie podawać treści błędu, to o wiele bardziej ułatwia, my nie jesteśmy jasnowidzami, przynajmniej ja :)

Poza Poza tym w tym Npc_GetDistToItem nie powinno być instancji npca i instancji itemka? A nie self, item?
 
Skrypter/Tester - Szukasz testera/skryptera - Pisz !

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
PrintScreen (ConcatStrings ("Oręż oddany: ", IntToString(wepo)),-1,-1,"FONT_OLD_20_WHITE.TGA",1);na
PrintScreen (ConcatStrings ("Oręż oddany: ", wepo),-1,-1,"FONT_OLD_20_WHITE.TGA",1);Jak już jest var string, to po co IntToString?




FUNC INT Npc_GetDistToItem (VAR C_NPC npc, VAR C_ITEM item) { return 0; };
Jeżeli item to C_ITEM to ma dobrze...


EDIT:
Możliwe, że trzeba będzie zrobic coś takiego:
var int bron;
bron = Hlp_GetInstanceID (item);
wepo = bron.name;
PrintScreen (ConcatStrings ("Oręż oddany: ", wepo),-1,-1,"FONT_OLD_20_WHITE.TGA",1);

EDIT2:
To było tylko przypuszczenie na zaś  :)  .
 
Spoiler

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
maciek działa, dziękuwa.

tu masz pełen sprawny skrypt.
Cytuj


a jeżeli bym chciał zrobić tak z c_npc, to coś się zmienia w tym szyku?   [codebox]if (Npc_GetDistToItem(self,item) < 500)
         {
            var string wepo;
            wepo = item.name;
            
            AI_TakeItem   (self, item);
            B_Say      (self, self, "$ITAKEYOURWEAPON");      
            PrintScreen (ConcatStrings ("Oręż oddany: ", wepo),-1,-1,"FONT_OLD_20_WHITE.TGA",1);
            AI_EquipBestMeleeWeapon(self);
            AI_EquipBestRangedWeapon(self);
         };
      };
   };[/codebox]
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

wyświetlanie zmiennej jako ciągu znaków
#6 2010-01-05, 20:18(Ostatnia zmiana: 2010-01-05, 20:24)
PrintScreen (ConcatStrings ("Oręż oddany: ", IntToString(wepo)),-1,-1,"FONT_OLD_20_WHITE.TGA",1);na
PrintScreen (ConcatStrings ("Oręż oddany: ", wepo),-1,-1,"FONT_OLD_20_WHITE.TGA",1);Jak już jest var string, to po co IntToString?




FUNC INT Npc_GetDistToItem (VAR C_NPC npc, VAR C_ITEM item) { return 0; };
Jeżeli item to C_ITEM to ma dobrze...


EDIT:
Możliwe, że trzeba będzie zrobic coś takiego:
var int bron;
bron = Hlp_GetInstanceID (item);
wepo = bron.name;
PrintScreen (ConcatStrings ("Oręż oddany: ", wepo),-1,-1,"FONT_OLD_20_WHITE.TGA",1);

Nie var INT, tylko var C_ITEM.

Chyba będzie trzeba zrobić tutorial o typach zmiennych bo widać niektórzy nawet tego nie rozróżniają :lol2:

Tak w ogóle to można napisać to dużo prościej, funkcja Hlp_GetInstanceID nie jest potrzebna a być może nawet nieprawidłowa. No i nie zdefiniowałeś zmiennej tekstowej wepo tylko od razu jej użyłeś.

PrintScreen (ConcatStrings ("Oręż oddany: ", item.name),-1,-1,"FONT_OLD_20_WHITE.TGA",1);ewentualnie
var string nazwabroni;
nazwabroni = item.name;
PrintScreen (ConcatStrings ("Oręż oddany: ", nazwabroni),-1,-1,"FONT_OLD_20_WHITE.TGA",1);

Oczywiście całość będzie działać tylko jeśli zmienna item rzeczywiście przechowuje broń o którą ci chodzi. A tego wcale taki pewny bym nie był. Jeśli nie, będzie trzeba umieścić odpowiednią zmienną już tam gdzie ta broń jest odbierana.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Avallach, sposób , który ja podałem to pewniak - działa

a jak zrobimy z npc, aby ich nazwa ich sie wyświetlała?
 


Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
a jak zrobimy z npc, aby ich nazwa ich sie wyświetlała?
Podobnie. var C_NPC npc; npc = Hlp_GetNpc(npcInstance);
PrintScreen (ConcatStrings ("NPC: ", npc.name),-1,-1,"FONT_OLD_20_WHITE.TGA",1);

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
[codebox]var C_NPC npc;    npc = Hlp_GetNpc(npcInstance);
PrintScreen (ConcatStrings (npc.name,"odebrał ci ", item.name),-1,-1,"FONT_OLD_20_WHITE.TGA",1);[/codebox]


coś takiego jakby działało, aby wyświetlała mi się nazwa npc , text i nazwa itema - było by spoko
 

maciejG

maciejG

Użytkownicy
posty450
Propsy1
  • Użytkownicy
Bardziej:
var string str1;
var string str2;
str1 = ConcatStrings (npc.name," odebrał ci ");
str2 = ConcatStrings (str1,item.name);
PrintScreen (str2,-1,-1,"FONT_OLD_20_WHITE.TGA",1);
 
Spoiler

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
super, dzięki działa
 


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