Nie działa bez funkcji, nie działa z funkcją. Mam już dość.
Co do "return true" to w tej funkcji jest co innego "return list" - a "zwróć prawdę" to chyba konkretne polecenie, nie wiem, gdzie by je należało wstawiać, jeśli nie ma go w danej funkcji...
W funkcji Lorda z demo ze statkiem (poniżej fragment) jest return true, ale zauważ, że jest po tych StartSimpleJob, a nie po funkcjach...
Wszystko jedno, mam tego dość!
StartSimpleJob("Hafen")
return true
end
end
function Hafen()
if IsNear("k1", "myShip", 7800) then
Logic.ExecuteInLuaLocalState("Camera.RTS_FollowEntity(" .. Logic.GetEntityIDByName("myShip") .. ")")
Path:new(Logic.GetEntityIDByName("myShip"), GetEntitiesNamedWith("Wo"), nil, nil, nil, nil, true)
Path:new(Logic.GetEntityIDByName("Welle"), GetEntitiesNamedWith("Wo"), nil, nil, nil, nil, true)
DestroyEntity("k1")
StartSimpleJob("Schiffsverkehr")
StartSimpleJob("Hafen2")
StartSimpleJob("Rotar1")
return true
end
end
Offline
Przyjaciel-Friend
... no tak, nie zdazylam wyslac
przenioslam tekst do poprzedniego postu.
nie wiem, na dzisiaj nie wiem co z tym 'return true'
wydaje mi sie, ze to jest po kazdych zmianach typu: kreuj, zniszcz (destroy entity), itd. i po warunkach ...
nie czuje tego
obejrzyj statek na Loch_Ness
w skrypcie jest kawalek o stworzeniu statku i nadanie mu skryptowej nazwy, wlasnie po to, zeby byl rozpoznawalny przez skrypt.
tymczasem...
ze skryptu LordaFWD
Path:new(Logic.GetEntityIDByName("Welle"), GetEntitiesNamedWith("Wo"), nil, nil, nil, nil, true)
to jest sciezka dla morskiej fali wytworzonej przez statek > entity E_Kogge (chyba)
twoj skrypt rozpisalabym tak:
---------------------------------------------------------------------------------------
function Mission_FirstMapAction()
-- init players in singleplayer games only
if Framework.IsNetworkGame() ~= true then
Startup_Player()
Startup_StartGoods()
Startup_Diplomacy()
end
-- create quests
do
local MapName = Framework.GetCurrentMapName()
local ScriptName = "Maps\\ExternalMap\\"..MapName.."\\QuestSystemBehavior.lua"
Script.Load(ScriptName)
CreateQuests()
end
if IsNear("MS", "HA", 2000) then
Path:new(Logic.GetEntityIDByName("MS"), GetEntitiesNamedWith("W"), nil, nil, nil, nil, true)
end
function GetEntitiesNamedWith(_name)
local list = {};
local i = 1;
local bFound = true;
while bFound do
local entity = Logic.GetEntityIDByName(_name .. i);
if entity ~= 0 then
table.insert(list, entity);
else
bFound = false;
end
i = i + 1;
end
return list;
end
end
--------------------------------------------------------------
Ostatnio edytowany przez sisi (2009-11-05 21:41:35)
Offline
Tak było na początku...
Bez funkcji, tylko to, co napisane w tym skrypcie...
Obejrzę w L_N_3.
A propos, parę minut temu obejrzałam skrypt z L_N_2, skąd wzięłaś funkcję czasu?????!!!
Sprawdziłaś, czy działa?
Offline
Przyjaciel-Friend
..." Tak było na początku..." - hmmm, brakowalo chyba end, albo bylo nie w tym miejscu ...
funkcje czasu wzielam z wiki.
moze i dziala, ale nie jestem w stanie wyswietlic jej w grze, wiec jaki z tego uzytek?
u Ciebie tez sie nie wyswietla, rozumiem...
... takie urywki wiedzy. jedynie dobrze przygotowane, to te 'Fragmenty' zrobione prze Citybuildera alias Saladin alias Tamarlan . podane sa w taki sposob, zeby mozna bylo z tego skorzystac i cos z tego zrozumiec. a reszta...
miedzy soba wymieniaja sie jednak informacjami;
no i dobre jest to forum http://www.siedler-games.de o ile zna sie niemiecki
Offline
Skopiowałam Twoją propozycję, ale też nie działa.
To była ostatnia próba, tak jak pisałam wcześniej, samo "pływanie" bez pomysłu na wykorzystanie, jest tylko chwilową zabawką, obejdę się bez niej.
Nie czuję tych skryptów zupełnie, czuję się przez to gorsza, wpadam w kompleksy i zaczynam mieć dość całej zabawy. Wolę przestać, zanim mi to całkiem obrzydzi robienie czegokolwiek.
Kilkanaście lat temu nie odpuściła bym, ale teraz mój umysł nie funkcjonuje już tak jak dawniej, a w dodatku bardzo łatwo wpadam w zły nastrój, albo wręcz zalewam się łzami, tak jak teraz. Z takiego niby błahego powodu.
Wezmę się za sadzenie drzewek na mapie M.E. - to mi zawsze dobrze robi. Dobranoc.
Offline
Przyjaciel-Friend
tez mialam problem z ta funkcja 'IsNear', widocznie cos zle rozpisujemy... w ogole nie rozumiem dlaczego wpisujesz to do FMA ?
nie mialam natomiast zadnego problemu z przywolaniem funkcji w questach poprzez Reward_MapScriptFunction
http://www.artceramika.eu/thesettlers/_Statek.zip
Offline
Z pewnością dobrze rozumiemy, w demo Lorda to przecież widać. Jeżeli A zbliży się do B na odległość 2000, to wtedy....
Ale od zrozumienia do poprawnego użycia jest jak dla mnie droga nie do pokonania.
Funkcje z Instrukcji są bardzo dobrze opisane i wszystkie, które użyłam działają. Równie dobrze opisana jest funkcja AI Building Order - gdybym umiała, wysłałabym autorowi list dziękczynny. A te "forumowe"nie.
Wpisuję to na końcu, po end.
Albo tak:
----------------------------------------------------------------------------------------------------------------------
function Mission_FirstMapAction()
-- init players in singleplayer games only
if Framework.IsNetworkGame() ~= true then
Startup_Player()
Startup_StartGoods()
Startup_Diplomacy()
end
-- create quests
do
local MapName = Framework.GetCurrentMapName()
local ScriptName = "Maps\\ExternalMap\\"..MapName.."\\QuestSystemBehavior.lua"
Script.Load(ScriptName)
CreateQuests()
end
end
function MS()
if IsNear("MS", "HA", 2000) then
Path:new(Logic.GetEntityIDByName("MS"), GetEntitiesNamedWith("Ws"), nil, nil, nil, nil, true)
end
end
function GetEntitiesNamedWith(_name)
local list = {};
local i = 1;
local bFound = true;
while bFound do
local entity = Logic.GetEntityIDByName(_name .. i);
if entity ~= 0 then
table.insert(list, entity);
else
bFound = false;
end
i = i + 1;
end
return list;
end
Albo tak:
----------------------------------------------------------------------------------------------------------------------
function Mission_FirstMapAction()
-- init players in singleplayer games only
if Framework.IsNetworkGame() ~= true then
Startup_Player()
Startup_StartGoods()
Startup_Diplomacy()
end
-- create quests
do
local MapName = Framework.GetCurrentMapName()
local ScriptName = "Maps\\ExternalMap\\"..MapName.."\\QuestSystemBehavior.lua"
Script.Load(ScriptName)
CreateQuests()
end
if IsNear("MS", "HA", 2000) then
Path:new(Logic.GetEntityIDByName("MS"), GetEntitiesNamedWith("W"), nil, nil, nil, nil, true)
end
function GetEntitiesNamedWith(_name)
local list = {};
local i = 1;
local bFound = true;
while bFound do
local entity = Logic.GetEntityIDByName(_name .. i);
if entity ~= 0 then
table.insert(list, entity);
else
bFound = false;
end
i = i + 1;
end
return list;
end
end
Offline
Hi, Hi, Hi, ale jestem roztrzepana!!!!
Pływa!
Użyłam wersji z funkcją MS() - a teraz zgadnij, czego NIE zrobiłam??
Nawiasem mówiąc, mam odłożoną mapę, w której cała flotylla powinna pływać - ale nie wiem, czy to jest możliwe... w opisie Lorda jest "pierwsza droga" i "druga droga", w jego demo pływają chyba trzy statki, czyli może być więcej niż jeden... ale o ile więcej...
Offline
Przyjaciel-Friend
czemu jestes roztrzepana? co zmienilas, ze zaczelo dzialac? nie wywolalas funkcja?
... no , wlasnie. probowalam zmienic funkcje path, dorzucilam dwie nowe i teraz statki same sie rwa do plywania, juz niczego nie kontroluje. IsNear wcale nie dziala.
podobnie jak przy AIBuild Reward jest wywolywany razem z Tigger, a nie po zrealizowaniu Goal
zajrzalas do mojego statku?
Offline
Tak, nie wywołałam funkcji. Kiedy dodałam Reward_MapScript statek natychmiast popłynął.
Który statek, ten z L_N_2? Otworzyłam skrypt, ale nic z niego nie zrozumiałam....
Ale tam chyba wszystko działa jak należy, to w kolejnej wersji coś się rozjechało?
Offline
Przyjaciel-Friend
tak w nowej wersji mapki "_Statek"
wczoraj zrobilam mala mapke testowa
http://www.bialyjednorozec.pun.pl/viewt … d=924#p924
http://www.artceramika.eu/thesettlers/_Statek.zip
Offline
sisi napisał:
tak w nowej wersji mapki "_Statek"
wczoraj zrobilam mala mapke testowa
http://www.bialyjednorozec.pun.pl/viewt … d=924#p924
http://www.artceramika.eu/thesettlers/_Statek.zip
Super! Dwa statki już pływają, to może i więcej można... I chciało Ci się zrobić znowu ładną, pełną mapkę - polubiłaś typowy "mapping"?
Nie zajrzałam jeszcze do skryptu Twojej mapki, bo wojowałam potem ze swoją mapą, na której wymyśliłam coś chyba dość fajnego, a nie chciało mi w pełni zadziałać. Ale się udało w końcu, a ponieważ mapa ze strefy M.E. to utknęłam na niej na długo...
Offline
Przyjaciel-Friend
mapping... co innego zrobic duza mape i gre, a co innego mala testowa mapke. lysa mapa jakos nie pobudza wyobrazni tzn. pobudza, zeby ja przyozdobic
'IsNear' w dalszym ciagu mi nie dziala, a powinna i to bez wywolania funkcji questami.
... to co? czekam na kolejna mape?
Offline
Jeszcze trochę...
nie zdążyłam wczoraj dojść do dość istotnej funkcji umieszczonej już we właściwym czasie, ponadto nie uzupełniłam dialogów, postacie mówią głosem tylko "prosimy o przysłanie nam tych surowców" albo "mamy dla ciebie zadanie", jest jeszcze parę powtarzalnych, nudnych questów do zrobienia... trzeba też jeszcze troszkę uzupełnić krajobraz o jakieś "ozdobne" elementy.
"Jeżeli blisko" ... hmmm... jesteś pewna, że powinno działać bez questu? Niby zapis mówi, że tak, ale czy u Lorda działa gdzieś samo to polecenie, nie obudowane funkcją w lua lub questem?
Offline
Przyjaciel-Friend
'IsNear' > Lord w ogole pracuje bez questow. ta funkcja (path: ) uruchamia sie gdy k1 (marcus) podjedzie do myship (statek) na zadana odleglosc ...
nie mialam czasu sie tym dzisiaj zajac, wiem tylko, ze to powinno dzialac z racji zapisu w lua. coz, na wszystko przyjdzie czas.
Ostatnio edytowany przez sisi (2009-11-07 20:04:39)
Offline