Big War mod - czyli dysputa na temat SAILa

Wszystko o modach, patchach i błędach w OW oraz ogólnym programowaniu.
User avatar
Xero Rozbójca
Soldier level 6
Soldier level 6
Posts: 391
Joined: Sun Mar 08, 2009 5:13 pm
Location: Szukaj w kioskach...

Post by Xero Rozbójca »

2 Moduły:

moduł pierwszy "New1":

Code: Select all

export xero,jan,maciej,dawid,robert;

starting
begin
ComEnterUnit(sol, arm);
ComEnterUnit(sol1, bunkier2);
ComEnterUnit(sol2, am_wieza1);
ComEnterUnit(sol3, am_wieza);
ComEnterUnit([doc, doc1], am_lab);
ComEnterUnit(sol4, bunkier1);
ComEnterUnit(sol5, bunkier);
ComEnterUnit([mech, mech1], am_factory);
ComEnterUnit([ru_doc, ru_doc1], ru_lab);
ComEnterUnit(soldat3, ru_wieza);
ComEnterUnit(soldat2, ru_wieza1);
ComEnterUnit(soldat1, ru_wieza2);
ComEnterUnit(soldat, ru_wieza3);
xero=CreateCharacter('xero');
jan=CreateCharacter('jan');
maciej=CreateCharacter('maciej');
dawid=CreateCharacter('dawid');
robert=CreateCharacter('robert');
ComEnterUnit(rusek, ru_arm);
PlaceUnitArea([xero,jan,maciej,dawid,robert], start, false);
ComMoveToArea([xero,jan,maciej,dawid,robert], widok);
Wait(0$1);
InGameOn;
Say(xero, 'xero');
ChangeMissionObjectives('koppa');
ComMoveToArea([xero,jan,maciej,dawid,robert], rozmowa);
end;

every 0$1 trigger isInArea(xero, widok) do
Begin
DialogueOn;
Say(sol5, 'straznik');
Say(xero, 'xero1');
Say(sol5, 'straznik1');
DialogueOff;
end;

every 0$1 trigger See(1, mark) do
Begin
InGameOn;
Say(xero, 'xero2');
ComMoveUnit(mark, xero);
Say(mark, 'mark');
Say(mark, 'mark1');
Say(xero, 'xero3');
Say(mark, 'mark2');
InGameOff;
end;
Moduł drugi "New2"

Code: Select all

every 0$45 do
Begin
enable;
  CreateCratesAnywhere(3, true);
end;

every 1$20 do
Begin
enable;
  CreateCratesAnywhere(5, true);
end;
"Osoby, stawiające więcej niż trzy znaki interpunkcyjne obok siebie, mają problemy ze zdrowiem psychicznym."

Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

Wymień:

Code: Select all

PlaceUnitArea([xero,jan,maciej,dawid,robert], start, false); 
na:

Code: Select all

for un in [xero,jan,maciej,dawid,robert] do
PlaceUnitArea(un, start, false);
Wstaw jeszcze w linijce między starting i begin:

Code: Select all

var un;
Więcej błędów nie znalazłem (ten nie powinien mieć nic wspólnego z dzieleniem przez zero, ale możesz spróbować).

[ Dodano: 12.07.2009 17:05 ]
Testując mod, który mi wysłałeś, sprawdziłem, iż mapa jest zepsuta (musiałeś ją zapisać po wejściu w Game Mode z SAILem). Ma wkompilowany jakiś kod w siebie. Po usunięciu SAILa dostałem Division by 0, a innym razem coś tam z RevealFogArea xD
User avatar
Xero Rozbójca
Soldier level 6
Soldier level 6
Posts: 391
Joined: Sun Mar 08, 2009 5:13 pm
Location: Szukaj w kioskach...

Post by Xero Rozbójca »

czyli mapy nie da się uratować już?
A po co to 'un' ?
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

Nie.


Ponieważ PlaceUnitArea przyjmuje tylko integer (innymi słowy nie przyjmuje list). Dlatego rozbijam listę na integery z ident. un i każdą kolejną postać podaję jako parametr tej funkcji.
User avatar
Xero Rozbójca
Soldier level 6
Soldier level 6
Posts: 391
Joined: Sun Mar 08, 2009 5:13 pm
Location: Szukaj w kioskach...

Post by Xero Rozbójca »

Buhahah! Jakie żałosne! Już kiedyś to było pewnie gdy robiłem pierwszą misję z takim atakiem! Tu znowu to samo...

Code: Select all

var s,s1,s2,s3,s4,v,v1;

every 3$50 do
Begin
uc_side=6;
uc_nation=nation_russian;
hc_skills=[4,1,3,0];
hc_class=1;
s=CreateHuman;
s1=CreateHuman;
s2=CreateHuman;
hc_skills=[1,2,5,1];
hc_class=3;
s3=CreateHuman;
s4=CreateHuman;
vc_chassis=ru_medium_tracked;
vc_engine=engine_combustion;
vc_control=control_manual;
vc_weapon=ru_gun;
v=CreateVehicle;
vc_chassis=ru_heavy_tracked;
vc_engine=engine_combustion;
vc_control=control_manual;
vc_weapon=ru_gatling_gun;
v1=CreateVehicle;
PlaceHumanInUnit(s3,v);
PlaceHumanInUnit(s4,v1);
PlaceUnitArea(s,am_crates,false);
PlaceUnitArea(s1,am_crates,false);
PlaceUnitArea(s2,am_crates,false);
PlaceUnitArea(s3,am_crates,false);
PlaceUnitArea(s4,am_crates,false);
PlaceUnitArea(v,am_crates,false);
PlaceUnitArea(v1,am_crates,false);
AddComMoveXY([s,s1,s2,s3,s4,v,v1], 97,25);
AddComAttackUnit([s,s1,s2,s3,s4,v,v1], FilterAllUnits([f_side,4]));
end;
Wjeżdżają do mojej bazy rosjanie atakują co napotkają potem wracają się i atakują swoich -.- lol?
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

Nie dziwię im się, skoro mają nakazane atakować stronę 4 (nie wiem, jaką dałeś ruskim, więc zgaduję, że tą). :P
Poza tym:

Code: Select all

ComAttackUnit(list, integer);
więc musisz najpewniej zastosować moją pętlę :P
User avatar
Xero Rozbójca
Soldier level 6
Soldier level 6
Posts: 391
Joined: Sun Mar 08, 2009 5:13 pm
Location: Szukaj w kioskach...

Post by Xero Rozbójca »

już było ComAttackUnit i to samo ...
A mieli także rozkaz

Code: Select all

 AddComAttackUnit([...],FilterAllUnits([f_side, 4]));
to samo.
Jasno-niebieskich mieli atakować(side 4)
Atakowali, potem wracali się i atakowali swój skład
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

Nie zrozumiałeś mnie.
Chodzi o to, że funkcja:

Code: Select all

ComAttackUnit(list, integer);
nie przyjmuje w drugim argumencie listy!
Tak samo funkcja Add*

Bądź tak miły i spróbuj zastosować pętlę for, której przykład zamieściłem w związku z twoim ostatnim problemem.
User avatar
Xero Rozbójca
Soldier level 6
Soldier level 6
Posts: 391
Joined: Sun Mar 08, 2009 5:13 pm
Location: Szukaj w kioskach...

Post by Xero Rozbójca »

Dobra ;d W końcu dopiero się uczę ;P

Edit

Code: Select all

AddComAttackUnit([soldat1,soldat2,soldat3,soldat4,soldat5,soldat6,soldat7,hg1,hg2,hg3,hg4,hg5],FilterAllUnits([f_side,1]));
end;
Ale look na to, pierwszy temat w Modding Archive przedstawia właśnie tą komendę i FilterAllUnits...

EDIT 2:
http://www.speedyshare.com/696443773.html

Code: Select all

http://www.speedyshare.com/696443773.html
Mod zawiera:
-5 misji
-dużo dialogów
-ciekawe mapy
-itp. :D

Edit 3:
Chcę zrobić selekcję postaci zapisanych w poprzedniej misji ale nie wiem jak,
siedziałem w modding archive z 1,5h i nic nie wymyśliłem. Jest tam pare kodów o tym ale się gryzą gdy próbuję je połączyć. Albo jeden nie działa albo razem nie działają -.-
Warunki do spełnienia:
-Żebym nie mógł wybrać swojego bohatera(już wiem)
-Możliwość wybrania postaci z poprzedniej misji(i jakieś nowe do pomocy)
-Niewybrane postaci nie pojawiały się na planszy..
"Osoby, stawiające więcej niż trzy znaki interpunkcyjne obok siebie, mają problemy ze zdrowiem psychicznym."

Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

1) Tak się dzieje, gdy nie sprawdzam kodu ludzi, do których mam zaufanie.
!Wstydź się NN! :P
Xero, popraw ten błąd u siebie w modzie.
2) Jak znajdę chwilę, to looknę.
3) Zdecyduj się, w ilu miejscach o to pytasz. Dwa tematy i jedna PMka o tym samym..
User avatar
Xero Rozbójca
Soldier level 6
Soldier level 6
Posts: 391
Joined: Sun Mar 08, 2009 5:13 pm
Location: Szukaj w kioskach...

Post by Xero Rozbójca »

Radzio wrote:1) Tak się dzieje, gdy nie sprawdzam kodu ludzi, do których mam zaufanie.
!Wstydź się NN! :P
Xero, popraw ten błąd u siebie w modzie.
2) Jak znajdę chwilę, to looknę.
3) Zdecyduj się, w ilu miejscach o to pytasz. Dwa tematy i jedna PMka o tym samym..
Bo nikt nie zagląda tutaj oprócz Ciebie, a chciałbym aby inni też pomogli

[ Dodano: Nie Lip 26, 2009 2:57 pm ]
Zrobiłem kolejną misję, selekcję postaci, wszystko gra, robię SaveCharacters i tu jest problem:
Zapisuję grupę ludzi(zmienna 'ludq'), których wybrałem przy selekcji(SaveCharacters(ludq, 'ludq'); ) i chcę aby oni mi się pojawili w następnej misji, wczytuję (ludq=CreateCharacter('ludq'); ) a tu nic mi się nie pojawia xd ---- wiem, że źle robię ale inaczej nie wiem jak.
"Osoby, stawiające więcej niż trzy znaki interpunkcyjne obok siebie, mają problemy ze zdrowiem psychicznym."

Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

Jeśli zapisujesz w poprzedniej misji, to ok, jeśli zapisujesz z XX do XX_cont to Ci się nie uda.
User avatar
Xero Rozbójca
Soldier level 6
Soldier level 6
Posts: 391
Joined: Sun Mar 08, 2009 5:13 pm
Location: Szukaj w kioskach...

Post by Xero Rozbójca »

Nie oto chodzi...
Mam misję(06), w której zapisuję ludzi wybranych z selekcji pod zmienną "ludq".
Daję następną misję(07) i nie wiem co wpisać, aby ci ludzie się pojawili ;/ Próbowałem CreateCharacter i CreateCharacterSet ale nic z tego.
"Osoby, stawiające więcej niż trzy znaki interpunkcyjne obok siebie, mają problemy ze zdrowiem psychicznym."

Image
Radzio
Site Administrator
Site Administrator
Poland
Posts: 2898
Joined: Fri Jul 28, 2006 10:58 am
Location: Bialystok, Poland

Post by Radzio »

CreateCharacterSet wczyta Ci tę listę do zmiennej, następnie możesz ich za pomocą pętli for ustawić na mapie, liczę na twoją inwencję.
User avatar
Xero Rozbójca
Soldier level 6
Soldier level 6
Posts: 391
Joined: Sun Mar 08, 2009 5:13 pm
Location: Szukaj w kioskach...

Post by Xero Rozbójca »

Narazie zakończę pracę nad modem, ale nie na zawsze :D
Dorobię kilka misji później..

>>BigWar Beta:)<<
"Osoby, stawiające więcej niż trzy znaki interpunkcyjne obok siebie, mają problemy ze zdrowiem psychicznym."

Image
Post Reply