var c NPC i wywołanie zminnej w warunku if 6593 16

O temacie

Autor pawbuj

Zaczęty 29.12.2011 roku

Wyświetleń 6593

Odpowiedzi 16

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
chcę dopytać jak mozna powołać się w warunku na zmienną cNPC. Konkretny przykład:
 
var C_NPC oponent; oponent = Hlp_GetNpc(Nov_1331_BaalTaran); i wywołanie tej zmiennej C_NPC w warunku nie może się odbyć np. w nastepujący sposób
if (oponent == Hlp_GetNpc(Nov_1331_BaalTaran))
można to ominąć gdzie to każdego polecenia przypisujemy danego NPC, ale jest to dość nieekonomiczne, jeżeli NPC należy do grupy np. oponent.
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Nie wiem czy się nie mylę ale dlaczego przyrównywać CAŁEGO npc zajmuje to niepotrzebnie kompa jak już sprawdzasz to sprawdzaj id postaci i je porównuj.

if (oponent.ID == Hlp_GetNpc(Nov_1331_BaalTaran).ID)

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
umówmy się , że sprawdzę wasze sugestie i podam rozwiazanie jakie w praktyce sprawdziło się
 

Zysk

Zysk

Użytkownicy
posty606
Propsy451
  • Użytkownicy
W moim tutorialu o magicznej broni jest funkcja, która sprawdza, czy dwie zmienne var c_npc wskazują na tą samą postać.

Ale w tym wypadku chyba wystarczy (i prawdopodobnie jest lepiej) po prostu sprawdzić:
Hlp_GetInstanceID(oponent) == Nov_1331_BaalTaran
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

var c NPC i wywołanie zminnej w warunku if
#4 2011-12-29, 18:17(Ostatnia zmiana: 2011-12-29, 18:19)
Dlaczego uważasz że jest to lepsze od mojej propozycji?

var INT oponent;
oponent = Nov_1331_BaalTaran;

...

if (oponent == Nov_1331_BaalTaran)
{
Proste porównywanie indeksów, jak działają wyjaśniłem w poprzednim poście i jednym tutku :D

Zysk

Zysk

Użytkownicy
posty606
Propsy451
  • Użytkownicy
to zależy od

...


póki co, to ten kod wygląda jakby i tak nic nie robił.
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Cytuj
Dlaczego uważasz że jest to lepsze od mojej propozycji?

var INT oponent;
oponent = Nov_1331_BaalTaran;

...

if (oponent == Nov_1331_BaalTaran)
{

Proste porównywanie indeksów, jak działają wyjaśniłem w poprzednim poście i jednym tutku  

Nie lepiej by było tak:
var INT oponent;
oponent = Nov_1331_BaalTaran;
var C_NPC othernpc;

...

if (othernpc == oponent)
{

IMPROWIZUJĘ! Nie wiem, czy tak zadziała.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

var c NPC i wywołanie zminnej w warunku if
#7 2011-12-29, 20:31(Ostatnia zmiana: 2011-12-29, 20:32)
Cytuję na wypadek gdybyś edytował posta:
Spoiler
Nie lepiej by było tak:
var INT oponent;
oponent = Nov_1331_BaalTaran;
var C_NPC othernpc;

...

if (othernpc == oponent)
{

IMPROWIZUJĘ! Nie wiem, czy tak zadziała.

Nie, nie zadziała :|
Przecież porównujesz dwa różne typy (int i c_npc), oczywiście wywali błąd (nawet gdyby to nie było błędne, nie byłoby absolutnie żadnego powodu żeby uważać to za lepszą konstrukcję). Po co się wypowiadasz skoro jak sam piszesz tylko zgadujesz?

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
sprawdziłem różne wersje i u mnie działa proste:

if (self.id == oponent.id)


dziekuję, że zaangażowaliście się w ten temat
 

eto

eto

Użytkownicy
-Banany pod pokładem? -SĄĄĄĄĄĄ
posty1741
Propsy1793
ProfesjaLvl designer
  • Użytkownicy
  • -Banany pod pokładem? -SĄĄĄĄĄĄ
Cytuj
IMPROWIZUJĘ! Nie wiem, czy tak zadziała.

a moim zdaniem lepiej byłoby tak:

var int gothic_kurwa;
int gothic_kurwa tresc japierdole;
const japierdole=
"co z tego, ze nie umiem kompletnie nic,
mam mało postów i nie chce tak dalej żyć,
nie wiem, czy tak zadziała, tępe chuje
ja nic nie wiem, bo przecież, IMPROWIZUJĘ"

polaking_karne_kutasy_za_chujowe_posty_na_forum = MILJON PIEDŻZSET STO DZIEWIENDŻSET;
const int, zmienne vary, lepiej kurwa zmywaj gary function;

kurwa end.

improwizuje, żeby nie było
 
Niespełniony Level Designer z ambicjami, zmęczeniem i brakiem czasu...

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
jeszcze jedno.

 rozumiem, ze do var C NPC można przypisać tylko jednego NPC . każde kolejne przypisanie do  var C NPC oponent będzie odnosić się do kolejnego NPC.

w takim układzie najlepiej jest wydawać polecenia npc przypisując ich do konkretnej gildii .

poprawi mnie ktoś jeżeli źle myslę.
 


mass1500

mass1500

Użytkownicy
posty149
Propsy11
ProfesjaGracz
  • Użytkownicy
jeszcze jedno.

 rozumiem, ze do var C NPC można przypisać tylko jednego NPC . każde kolejne przypisanie do  var C NPC oponent będzie odnosić się do kolejnego NPC.

jeśli piszesz
oponent = npc1;
to zmienna przyjmuje wartość tego npc-a czyli np. 7
i jeśli piszesz następną funkcję

oponent = npc2;

tak jak wyżej przyjmuje wartość npc-a czyli np. 4 gdyby można było przypisać zmiennej więcej niż jednego npc-a to wyglądało by to mniej więcej tak

oponent = 7;
oponent = 4;
4 = 7;
dlatego wydaje mi się że przypisanie więcej niż jednego npc-a zmiennej jest niemożliwe bo przeczy to matematyce (jeśli jednak się myle to prosze mnię poprawić)

sry za ewentaulne błędy pisze z fona
 

Demonical Monk

Demonical Monk

Użytkownicy
posty145
Propsy152
  • Użytkownicy
Ale to nie matematyka tylko programowanie. To jest zmienna, co oznacza, że można ją zmieniać. Nie stała.

Pseudokod:
x = 1;
print(x); // wyświetli "1"
x = 2;
print(x); // wyświetli "2"

Powyższe odnosi się do większości znanych wam języków programowania.
 

mass1500

mass1500

Użytkownicy
posty149
Propsy11
ProfesjaGracz
  • Użytkownicy
jeśli zmienna może przyjmować 2 wartości jednoczeście to sry nie chciałem tu nikogo w błąd wprowadzać poprostu wyobraziłem sobie jakby to wyglądało i napisałem ale dalej mnie dziwi to gdyż powiedzmy mamy dwie stałe i ijedną zminną
jeśli
1=x
2=x
to
1=2

bardziej logiczne jest już to
1=x
2 != x
1 != 2
ja to rozumiem w ten sposób, bo rozumiem że zmienna może przyjmować różne wartości ale żeby przyjęła dwie wartości w tym samym czasie to musiała by być zbiorem liczb od któreś do któteś, jeśli jest ktoś kto może mi to jakoś sensownie wytłumaczyć że w danym momencie zmienna jest równa np. 1 i 6 to prosiłbym o wytłumaczenie
 

eto

eto

Użytkownicy
-Banany pod pokładem? -SĄĄĄĄĄĄ
posty1741
Propsy1793
ProfesjaLvl designer
  • Użytkownicy
  • -Banany pod pokładem? -SĄĄĄĄĄĄ
Cytuj
jeśli zmienna może przyjmować 2 wartości jednoczeście to sry nie chciałem tu nikogo w błąd wprowadzać poprostu wyobraziłem sobie jakby to wyglądało i napisałem ale dalej mnie dziwi to gdyż powiedzmy mamy dwie stałe i ijedną zminną
taki ze mnie programer jak z ava uzytkownik maxa ale co tam:

jednoczesnie nie moze, ale patrz na kod co dal dm. kod jest wykonywany od gory do dolu tzn.
najpierw x = 1
potem napisz wartosc dla x czyli 1
dopiero potem  x = 2 i juz nie rowna sie 1 tylko 2
teraz znowu zrobisz odniesienie dla aktualnego x, czyli 2, o tej 1 juz komp zapomnial
wiec zawsze x = x, bo dane x w danym momencie moze miec tylko jedna wartosc
 
Niespełniony Level Designer z ambicjami, zmęczeniem i brakiem czasu...

mass1500

mass1500

Użytkownicy
posty149
Propsy11
ProfesjaGracz
  • Użytkownicy
no to dobrze myślałem że nie można przypisać zmiennej dwóch wartości jednicześnie, a jeśli dm chodziło o to że zmienna przymuje różne wartości (nie w rej samej chwili) to wiedziałem, w końcu sama nazwa na to wskazuje :D
 


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