Page 2 of 3
Re: Dialogi w grze
Posted: Mon May 17, 2010 8:33 pm
by Serpent
Mezrox wrote:
1. Czy można za pomocą SAILA tworzyć Ropę np. tak jak skrzynki(wydaje się mi że gdzieś kiedyś czytałem że nie, ale wolę się na 100% upewnić);?
Spróbuj
CreateOilXY.
Mezrox wrote:
2.W jaki sposób zmniejszyć HP budynku po dojściu gościa do Arei najlepiej do "czerwoności"?
Spróbuj SetLives(ident budynku,ilość hp(poniżej 1000));
Mezrox wrote:
3. Czy można zapisać całą bazę(którą się samemu wybuduję) tak by odczytać ją w późniejszych misjach? Domyślam się że to długi kod, więc proszę o 1 budynek.
Nie wiem czy się tak da,ale o ile dobrze pamietam w 8 misji am wczytuje sie położenie budynków wybudowanych w misji 4,radziłbym ci tam zajrzeć

Re: Dialogi w grze
Posted: Wed May 19, 2010 7:00 pm
by Mezrox
Dzięki, Ropa co prawda nie działa ale reszta się przydała.
Mam problem typu Error:
http://img691.imageshack.us/img691/5686/errorn.png co mam zrobić? Wiele razy poprawiałem mapę i tak wyskakuje to samo, edytor nic nie wykrywa...
@ po tym błędzie edytor wyświetla "Range check error" -pojawia się przy każdej misji którą chce odtworzyć edytorem// wcześniej działały... co to znaczy?
Re: Dialogi w grze
Posted: Wed May 19, 2010 7:51 pm
by Serpent
Co do tego skrina,to błąd polega na tym że jest błąd z komenda placeunitarea.Sprawdź czy wszystko jest dobrze z tymi komendami w sailu i czy stworzyłeś aree w odpowiednim miejscu.
Re: Dialogi w grze
Posted: Wed May 19, 2010 8:02 pm
by Mezrox
Największym problemem jest to że teraz wszędzie mam "check error" i żadna mapa się nie otwiera...

nie wiem co mogę zrobić bo zaczynać od początku to mnie grom trafi. mój mod wygląda tak:
http://www.speedyshare.com/files/22524582/mods.rar
_-wszystkie prblemy zaczeły się pojawiać gdy przebudowałem mapę 02 bu dodać identy do budynków, męczyłem się bu wyskakiwał potem ten błąd, a teraz nic nie działa.
Re: Dialogi w grze
Posted: Wed May 19, 2010 8:42 pm
by Serpent
Mapy są uszkodzone ale tylko 01 i 02.Musisz zrobić nowe mapy ale sail i pliki z nim powiązane są w folderach 01_nowy i 02_nowy,wystarczy wkleić je do zrobionych map i będzie można dalej robić moda.Naprawiłem natomiast mapę 04 bo nie miałeś pliku
colors.txt.
Pamiętaj na przyszłość żeby robić
backupy map co pozwoli unikać takich sytuacji.
LINK:
http://www.sendspace.pl/file/e4c014b71140b3c0b6cf262
Re: Dialogi w grze
Posted: Thu May 20, 2010 7:12 pm
by Mezrox
Po tym całym zamieszaniu mam problem z edytorem. gdy naciskam "Go to mode" wyskakuje :
http://img215.imageshack.us/i/beztytuuzpg.png/ i jak tu się nie poddać z tworzeniem moda jak wszystko przeciwko tobie.
Re: Dialogi w grze
Posted: Thu May 20, 2010 7:22 pm
by Antitheus
Edytor jest bardzo dziwną maszyną i chociaż na pozór wydaje się łatwy w obsłudze i przyjazny to wcale taki nie jest.
W plikach moda wszystko musi być załączone i zedytowane bez najmniejszego błędu. Misje musza być prawidłowo ponumerowane i oznaczone a postaci zdefiniowane. Najmniejsze niedociągnięcie powoduje niewiadomy error.
Dlatego proponuję robić 1 rzecz, testować, druga rzecz, testować itd. Dzięki temu będziemy wiedzieli gdzie popełniamy błąd i takowy error nas mocno nie zdziwi. Pozornie zajmuje to więcej czasu, jednak na prawdę pomaga.
A co do samego edytora to liczba wyskakujących dziwnych błędów lub niezaskakujących kodów mimo względnej poprawności bardzo demotywuje. Jednak wytrwali zostają nagrodzeni

A warto się starać.
Re: Dialogi w grze
Posted: Thu May 20, 2010 8:09 pm
by Serpent
Wygląda to na to że na mapie ustawiony jest źle jakiś element co powoduje zakłócenia w kodzie.
Re: Dialogi w grze
Posted: Fri May 21, 2010 1:12 pm
by Mezrox
Dzięki, wyglądało na to że skład nie miał wyjścia. Proszę o pomoc w tym kodzie:
Code: Select all
// tu wcześniejszy kod
every 0$1 trigger IsInArea(Mez,A6) do
Begin
if filterunitsinarea(A6, FilterAllUnits([[f_alive],[f_side,3],[f_type,unit_human]])) > 6 then
begin
AddMedal('med1',1);
If IsDead(JMM) then
begin
AddMedal('med2',1)
end else AddMedal('med2',-1)
end;
GiveMedals('Main'); ...
a chodzi o to by jeżeli zabiło się dowódcę bazy o iden. "JMM" to dostaje się medal, lecz mi nigdy nie daje tego medalu.
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');
Coś temu brakuje bo nie muszę opracować technologi a i tak kończę, mógłby ktoś rzucić na to okiem?
Re: Dialogi w grze
Posted: Fri May 21, 2010 2:14 pm
by Axoris
Code: Select all
If IsDead(JMM) then
begin
AddMedal('med2',1)
end else AddMedal('med2',-1)
Poprawione:
Code: Select all
If IsDead(JMM) then
AddMedal('med2',1)
else
AddMedal('med2',-1);
end;
Trochę błędów porobiłeś, ale cóż.
Re: Dialogi w grze
Posted: Fri May 21, 2010 2:42 pm
by Moonstrider
Kod na zapis bazy jest dość krótki
Code: Select all
export baza;
var jedn, filtr;
baza=[];
filtr=FilterAllUnits([[f_side,side_bazy],[f_type,3]]);
for jedn in filtr do
Begin
if GetBType(jedn) in [b_lab, b_lab_half, b_lab_full] then
baza=baza^[[GetBType(jedn),GetX(jedn),GetY(jedn),GetDir(jedn),GetBLevel(jedn),GetNation(jedn),GetLabKind(jedn,1),GetLabKind(jedn,2),GetIdent(jedn)]]
else
baza=baza^[[GetBType(jedn),GetX(jedn),GetY(jedn),GetDir(jedn),GetBLevel(jedn),GetNation(jedn),GetIdent(jedn)]];
end;
SaveVariable(baza,'Baza");
jeśli w misji dostępne są jakieś inne budynki z dodatkowymi parametrami, np.: wieżyczki, to wystarczy dodać odpowiednie if, tu dodając GetWeapon (a tak btw, to identycznie można zapisywać środowisko, na które miał wpływ gracz). Następnie wczytanie:
Code: Select all
var baza, jedn;
baza=LoadVariable('Baza',[]);
for jedn in baza do
Begin
bc_type=jedn[1];
bc_level=jedn[5];
uc_side=jedn[6];
if jedn[1] in [b_lab, b_lab_half, b_lab_full] then
Begin
bc_kind1=jedn[7];
bc_kind2=jedn[8];
end;
CreateAndPlaceBuildingXYD(jedn[2],jedn[3],jedn[4]);
end;
Co do tworzenia ropy jak skrzynki:
Code: Select all
CreateResourcesXY(2,ilosc,X,Y,materializacja);
ilosc to liczba od 1 do 5, materializacja 0 lub 1.
Pozatym kod powinien wyglądać tak:
Code: Select all
filterunitsinarea(A6,[[f_alive],[f_side,3],[f_type,unit_human]])
Re: Dialogi w grze
Posted: Fri May 21, 2010 3:37 pm
by Mezrox
Dzięki wielkie, Z tego co rozumiem, a rozumiem to tak że ten kod zapisuje tylko laboratorium, to każdy budynek trzeba zapisać podobnie( można użyć tych samych zmiennych czy trzeba do każdej budowli tworzyć inną?) z tego wynika, że mało rozumiem z tego kodu// muszę znaleźć jakiś poradnik

.
Code: Select all
baza=[];
filtr=FilterAllUnits([[f_side,side_bazy],[f_type,3]]); [b]/// to rozumiem[/b]
for jedn in filtr do
Begin
if GetBType(jedn) in [b_lab, b_lab_half, b_lab_full] then [b]///kod ma się wykonać jeżeli wybudowano laboratorium??[/b]
baza=baza^[[GetBType(jedn),GetX(jedn),GetY(jedn),GetDir(jedn),GetBLevel(jedn),GetNation(jedn),GetLabKind(jedn,1),GetLabKind(jedn,2),GetIdent(jedn)]]
else[b] /// zapisanie budynku ale co oznacza co to juz wykracza poza moją teraźniejszą wiedzę[/b]
baza=baza^[[GetBType(jedn),GetX(jedn),GetY(jedn),GetDir(jedn),GetBLevel(jedn),GetNation(jedn),GetIdent(jedn)]]; [b]///eeee to wszystko to jest tak jak by zmienna dynamiczna, jak w Pascalu? Jeżeli nie to wtf?[/b]
end;
SaveVariable(baza,'Baza");
Metodą prób i błędów coś bym się dowiedział, ale jeżeli ktoś by był miły rozwiać moje wątpliwości to by było giit

.
Re: Dialogi w grze
Posted: Fri May 21, 2010 3:55 pm
by Serpent
Mam lepszy kod:
ZAPIS
///stworz aree o nazwie base_Save
export pom;
export function zapisz_baze;
VAR pom1,i;
begin
pom=FilterUnitsInArea(base_save,[[f_side,1],[f_type,unit_building],[f_ok]]);
pom1=[];
for i in pom do
case GetBType(i) of
b_lab,b_lab_half,b_lab_full:pom1=pom1 ^ [[GetBType(i),GetX(i),GetY(i),GetDir(i),GetBLevel(i),GetNation(i),GetLabKind(i,1),GetLabKind(i,2)]];
b_bunker,b_turret:pom1=pom1 ^ [[GetBType(i),GetX(i),GetY(i),GetDir(i),GetBLevel(i),GetNation(i),GetBWeapon(i)]];
else pom1=pom1 ^ [[GetBType(i),GetX(i),GetY(i),GetDir(i),GetBLevel(i),GetNation(i)]];
end;
SaveVariable(pom1,'Zeta');
end;
To z mojego moda.
Potem trzeba to jeszcze wczytać w kolejne misji
LOAD
Spróbuj tak:
var zakl,x,y,r,tmp,tmp1,zakladna;
var i,blbecci;
///Potem gdzięs w kodzie
if testvariable('Zeta') then zakl=loadvariable('Zeta',[])
else msg('neny Zeta'); //[[GetBType(i),GetX(i),GetY(i),GetDir(i),GetBLevel(i),GetNation(i)]]
x=0;y=0;zakladna=0; //-48,-4
for tmp in zakl do
if validhex(tmp[2]-48,tmp[3]-4)=2 then
case tmp[1] of
b_depot:begin
bc_type=tmp[1];
bc_level=tmp[5];
uc_nation=tmp[6];
tmp1=createandplacebuildingxyd(tmp[2]-48,tmp[3]-4,tmp[4]);
setbname(tmp1,'epsilon');
if tmp1 then begin x=x+tmp[2]-48;y=y+tmp[3]-4;zakladna=zakladna+1;end;
end;
b_lab,b_lab_half,b_lab_full:begin
bc_type=tmp[1];
bc_level=tmp[5];
bc_kind1=tmp[7];
bc_kind2=tmp[8];
uc_nation=tmp[6];
tmp1=createandplacebuildingxyd(tmp[2]-48,tmp[3]-4,tmp[4]);
if tmp1 then begin x=x+tmp[2]-48;y=y+tmp[3]-4;zakladna=zakladna+1;end;
end;
b_bunker,b_turret:begin
bc_type=tmp[1];
bc_level=tmp[5];
uc_nation=tmp[6];
tmp1=createandplacebuildingxyd(tmp[2]-48,tmp[3]-4,tmp[4]);
if tmp1 then placeweaponturret(tmp1,tmp[7]);
if tmp1 then begin x=x+tmp[2]-48;y=y+tmp[3]-4;zakladna=zakladna+1;end;
end;
else begin
bc_type=tmp[1];
bc_level=tmp[5];
uc_nation=tmp[6];
tmp1=createandplacebuildingxyd(tmp[2]-48,tmp[3]-4,tmp[4]);
if tmp1 then begin x=x+tmp[2]-48;y=y+tmp[3]-4;zakladna=zakladna+1;end;
end;
end;
Nie wiem czy zadziała, spróbuj i napisz jak ci poszło.
Re: Dialogi w grze
Posted: Fri May 21, 2010 7:41 pm
by Moonstrider
Twój kod robi to samo, a różni się tym że jest żywcem przekopiowany z misji kampanii.
Mezrox: kod zapisuje wszystkie zwykłe budynki(bez dodatkowych parametrów) oraz laboratoria. Jak coś nie będzie działać, pisz; tbh jeszcze nie testowałem drugiej części - loadu.
Re: Dialogi w grze
Posted: Fri May 21, 2010 8:52 pm
by Serpent
Twój kod coś nie działa,wywala błędy w kompilacji lol
