Page 3 of 3

Re: Dialogi w grze

Posted: Sat May 22, 2010 7:51 am
by Radzio
Bo to kod, którego umieszczenie trzeba przemyśleć, a nie walić bezmózgie kopiuj/wklej.

Re: Dialogi w grze

Posted: Sat May 22, 2010 10:51 am
by Mezrox
Dzięki za kod poinformuje czy działa jak tylko skończę wcześniejszą misję w której mam problem tego typu:

Code: Select all

every 0$1 do
begin
if GetTech(tech_SpacAnom ,3)=state_researched
then AddMedal('med2',1);AddMedal('med1',1);AddMedal('med3',1);


Wait(10$0);
GiveMedals('Main');
SaveCharacters(Mez,'Mez');
nie wiem dlaczego po 10 min kończę grę mimo że nie opracowałem anomalii i to właśnie tą bazę chce zapisać by w następnej misja ja odtworzyć.

Re: Dialogi w grze

Posted: Sat May 22, 2010 10:56 am
by Serpent

Code: Select all

every 0$1 do
begin
if GetTech(tech_SpacAnom ,3)=state_researched
then AddMedal('med2',1);AddMedal('med1',1);AddMedal('med3',1);


Wait(10$0);
GiveMedals('Main');
SaveCharacters(Mez,'Mez');
Zmień na:

Code: Select all

every 0$1 trigger Researched(3,tech_SpacAnom) do
begin
Wait(10$0);
AddMedal('med2',1);AddMedal('med1',1);AddMedal('med3',1);
GiveMedals('Main');
SaveCharacters(Mez,'Mez');
end;

Re: Dialogi w grze

Posted: Sat May 22, 2010 4:02 pm
by Mezrox
No to sprawy maja się tak:
1. Kod na zapis bazy działa/nie działa, nie wiem czy dobrze go wprowadziłem ale przy wczytaniu pokazuje się tylko skład i czasami 1(z wielu) baraki, tylko że amerykańskie a ja gram po stronie Rosjan, a jeśli chodzi o wczytanie bazy(używam kodu
pana Moonstrider ;) ) to nie za bardzo rozumiem o co chodzi w poszczególnych liczbach (chodzi o te w nawiasach kwadratowych) i nie wiem co zrobić by zmienić nację wczytywanych budynków.

1b. co do kodu na zapis budynków to mógłbym prosić o pomoc w dodaniu komendy zapisującej bunkry/Automatyczne wierze + broń próbowałem ale nie za bardzo wiem gdzie wstawić dodatkowy warunek, na sam koniec czy po else?

2. cały czas mam problem z dodaniem medalu za zabicie gościa o Iden. JMM mam taki kod:

Code: Select all

every 0$1 do
If IsDead(JMM) then
AddMedal('med2',1)
else
AddMedal('med2',-1);
Oj rozpisałem się, mam nadzieje że jasno wyraziłem problem, proszę o pomoc

Re: Dialogi w grze

Posted: Sat May 22, 2010 4:07 pm
by Serpent

Code: Select all

Every 0$1 trigger IsDead(JMM) do
 Begin
AddMedal('med2',1)
else
AddMedal('med2',-1);
 End;

Re: Dialogi w grze

Posted: Sat May 22, 2010 4:32 pm
by Leszcz
A to nie tak?

Code: Select all


Every 0$1 trigger IsDead(JMM) do
Begin
AddMedal('med2',1)
end
else
begin
AddMedal('med2',-1);
End;

End bez ";" ma chyba być, to nie pomyłka :)

Re: Dialogi w grze

Posted: Sat May 22, 2010 9:58 pm
by Axoris
Leszcz, to nie tak. Serpent dobrze napisał.

Re: Dialogi w grze

Posted: Sun May 23, 2010 7:31 am
by Gwrhkhsh
W gruncie rzeczy to i Mezrox na początku dobrze napisał. Jak po every jest tylko if, to nie potrzeba begin end;. Problem polega na tym, że gra sprawdza to tylko raz, na samym początku. Na końcu misji, przed GiveMedals, wpisz:

Code: Select all

if IsDead(JMM) then AddMedal('med2', 1) else AddMedal('med2', -1);
i skasuj ten swój kod.

Re: Dialogi w grze

Posted: Sun May 23, 2010 7:51 am
by Leszcz
Aaa... no tak, ja to tak miałem zapisane w swoim modzie :)

Code: Select all

every 0$1 trigger [Blablabla] do
begin
//[Blablabla]jest to to co ma wywołać koniec misji

if IsDead(JMM) then
Begin
AddMedal('med2',1)
end
else
begin
AddMedal('med2',-1);
End;
//dalsza część rozdawania medali
U mnie działa :)

Re: Dialogi w grze

Posted: Sun May 23, 2010 7:59 am
by Gwrhkhsh
Działa, bo jest dobrze. Chodzi mi tylko o to, że te wszystkie beginy są zupełnie niepotrzebne. Im kod krótszy, tym lepszy.

Re: Dialogi w grze

Posted: Sun May 23, 2010 9:49 am
by Moonstrider

Code: Select all

export baza;
var jedn, filtr;
Begin
baza=[];
filtr=FilterAllUnits([[f_side,1],[f_type,3]]);
 for jedn in filtr do
  Begin
   if GetBType(jedn) in [6,7,8] then
    baza=baza^[[GetBType(jedn),GetX(jedn),GetY(jedn),GetDir(jedn),GetBLevel(jedn),GetNation(jedn),GetSide(jedn),GetLabKind(jedn,1),GetLabKind(jedn,2)]]
   else
    if GetBType(jedn) in [32,33] then
     baza=baza^[[GetBType(jedn),GetX(jedn),GetY(jedn),GetDir(jedn),GetBLevel(jedn),GetNation(jedn),GetSide(jedn),GetWeapon(jedn)]]
    else
    baza=baza^[[GetBType(jedn),GetX(jedn),GetY(jedn),GetDir(jedn),GetBLevel(jedn),GetNation(jedn),GetSide(jedn)]];
  end;
SaveVariable(baza,'Baza");
end;

Code: Select all

export baza;
var jedn;
Begin
baza=LoadVariable('Baza',[]);
 for jedn in baza do
  Begin
  uc_side=jedn[7];
  uc_nation=jedn[6];
  bc_type=jedn[1];
  bc_level=jedn[5];
   if jedn[1] in [6,7,8] then
    Begin
    bc_kind1=jedn[8];
    bc_kind2=jedn[9];
    end;
  CreateAndPlaceBuildingXYD(jedn[2],jedn[3],jedn[4]);
  end;
end;
Kod nie kopiuje broni na bunkrach, chociaż wydaje się, że da się napisać kod, który będzie to potrafił. However, nawet programiści altaru nie chcieli sobie tym zawracać głowy, a jak siętym przejęli to im nie wyszło :P Pozatym działa, testowany.

Edit: Acha, jednak się da, w zasadzie bez problemu. Zgubiłem B w GetBWeapon. Natomiast w kolejnej miji trzeba użyć:

Code: Select all

export base;
var jedn, uni;
Begin
baza=LoadVariable('Baza',[]);
 for jedn in baza do
  Begin
  uc_side=jedn[7];
  uc_nation=jedn[6];
  bc_type=jedn[1];
  bc_level=jedn[5];
   if jedn[1] in [6,7,8] then
    Begin
    bc_kind1=jedn[8];
    bc_kind2=jedn[9];
    end;
  uni=CreateAndPlaceBuildingXYD(jedn[2],jedn[3],jedn[4]);
   if jedn[1] in [32,33] then
    PlaceWeaponTurret(uni,jedn[8]);
  end;
end;

Re: Dialogi w grze

Posted: Sun May 23, 2010 1:04 pm
by Mezrox
Wszystko pięknie działa, zarówno kod na medal za zabicie gostka jak i na wczytanie bazy(tyle że tu musiałem zmienić side zapisywanych budynków ;p) jest super.
Tylko czemu przy takim kodzie

Code: Select all

RewardPeople(FilterAllUnits([[f_alive],[f_side,3],[f_type,unit_human]]));
małpy też są nagradzane Expem??

Re: Dialogi w grze

Posted: Sun May 23, 2010 2:03 pm
by Serpent
Mezrox wrote: Tylko czemu przy takim kodzie

Code: Select all

RewardPeople(FilterAllUnits([[f_alive],[f_side,3],[f_type,unit_human]]));
małpy też są nagradzane Expem??
Spróbuj ten kod:

Code: Select all

RewardPeople(FilterAllUnits([[f_alive],[f_side,russian///albo arabian lub americans],[f_type,unit_human]]));
/// to i to po tym wykasuj :D

Re: Dialogi w grze

Posted: Sun May 23, 2010 3:34 pm
by Xero Rozbójca
Mezrox wrote:

Code: Select all

RewardPeople(FilterAllUnits([[f_alive],[f_side,3],[f_type,unit_human]]));
Może zamiast tego. spróbuj:

Code: Select all

RewardPeople(FilterAllUnits([[f_alive],[f_side,3],[f_type,unit_human]])) diff FilterAllUnits([[f_alive],[f_side,3],[f_type,unit_human],[f_class,classtype_apeman]]));
Wydaje mi się, że powinno zadziałać, a jeśli małpy mają profkę np. inżynier,kamikadze,żołnierz,kingkong(LOL) to po

Code: Select all

[f_type,unit_human]
wpisz:

Code: Select all

... [f_and,[f_class,class_apeman_soldier],[f_class,class_apeman_kamikaze],[f_class,class_apeman_engineer]]]));
Ogółem powinno to wyglądać tak:

Code: Select all

RewardPeople(FilterAllUnits([[f_alive],[f_side,3],[f_type,unit_human]])
                   diff FilterAllUnits([[f_alive],[f_side,3],[f_type,unit_human],[f_and,
                                                                                       [f_class,class_apeman_soldier],
                                                                                       [f_class,class_apeman_kamikaze],
                                                                                       [f_class,class_apeman_engineer]]
                                                                                     ]));

KOMPILOWANE, ale NIETESTOWANE!


@down
A może być i tak ;)

@topic
Spróbuj obydwu sposobów ;P

Re: Dialogi w grze

Posted: Sun May 23, 2010 3:59 pm
by Radzio
Mezrox wrote:Tylko czemu przy takim kodzie

Code: Select all

RewardPeople(FilterAllUnits([[f_alive],[f_side,3],[f_type,unit_human]]));
małpy też są nagradzane Expem??
Dlatego, że nie dajesz warunku narodowości. To powinno pomóc (o ile chodzi o Rosjan):

Code: Select all

RewardPeople(FilterAllUnits([[f_alive], [f_side, 3], [f_nation, nation_russian], [f_type, unit_human]]));