Przyjaciel-Friend
most LordaFWD jest zrobiony z tych wlasnie elementow. zobacz jak sobie poradzil...
http://www.bialyjednorozec.pun.pl/viewt … d=745#p745
screen z mapy Dwoch przyjaciol cz.2 - "Zwei Freunde Teil2"
Offline
sisi napisał:
most LordaFWD jest zrobiony z tych wlasnie elementow. zobacz jak sobie poradzil...
http://www.bialyjednorozec.pun.pl/viewt … d=745#p745
screen z mapy Dwoch przyjaciol cz.2 - "Zwei Freunde Teil2"
Nie umiałabym tego zrobić - te "kamienie" są ułożone "w powietrzu" ja tak nie potrafię. No i w tej strefie, w której to robię, nie ma takich zgrabnych kamieni.
A zresztą nie wiedziałabym, jak w takim przypadku poprowadzić drogę do mostu.
Oni nie tylko znają skrypt, ale potrafią też posługiwać się znakomicie samym Edytorem - przy robieniu wodospadu jest w Instrukcji pokazane, jak dopasować wodospad do skały wodospadu, ustawiając współrzędne - przy wodospadzie umiem to zrobić, bo trzeba poprostu wpisać takie same współrzędne, jakie ma skała.
Ale ustawiać kamienie jeden na drugim, w dwóch czy nawet trzech piętrach?! O nie, to nie dla mnie!
Offline
Przyjaciel-Friend
... a nie da rady skopiowac to co on zrobil? przynajmniej fragmenty?
Offline
W Edytorze jest Reward_Create_Effect, jeśli dobrze napisałam - jest tam między innymi efekt E_SickSheep; próbowałam użyć tego Reward, z różnymi efektami, ale mapa (mała testowa, tylko do tego) wtedy nie działa, to znaczy wyłącza opcje budowy, jak zwykle, kiedy coś jest nie tak.
Co za licho? Używałam efektów, ale w skrypcie, tym kiedyś znalezionym przez Ciebie, ale wydaje mi się, że i tego, co jest w Edytorze też używałam i działało - może to było we wcześniejszej wersji QSB?
Offline
Przyjaciel-Friend
nie wiem...
ja problemu chorych owiec jeszcze nie rozwiazalam. sa funkcje, zeby byly chore 'Logic.MakeAnimalsIll', nawet settlersi moga byc chorzy. niestety, nie umiem tych funkcji wprowadzic w zycie...
http://forums-de.ubi.com/eve/forums/a/t … 7761071066
efekt dziala na przyklad na tej zasadzie:
function Chore()
local _EntityID = GetEntityId("owca01")
local x, y = Logic.GetEntityPosition(_EntityID)
I02ID1 = Logic.CreateEffect(EGL_Effects.E_SickSheep, x, y, 0 )
end
(efekt 'przypisany do ziemi)
ale nie zawsze udaje mi sie taki efekt zniszczyc, mimo ze funkcja jest poprawna
ale zobacz co znalazlam
drobiazdzek, ale cieszy...
wstaw do lokalnego skryptu lua KeyBindings_ToggleClock(), tak zeby wygladalo jak to:
function Mission_LocalOnMapStart()
KeyBindings_ToggleClock()
end
i sama zobacz!
----------------------------------------------------------------------------------------------
no i znalazlam, o chorych owcach i krowach
http://forums-de.ubi.com/eve/forums/a/t … 7121075166
function MakeAnimalIll()
local EntityTyp = Logic.GetNumberOfEntitiesOfTypeOfPlayer(1,Entities.A_X_Sheep01)
if EntityTyp > 0 then
EntityTypIDs = {Logic.GetPlayerEntities(1, Entities.A_X_Sheep01, 48, 0)}
CountedIDs = EntityTypIDs[1]
for i = 2,CountedIDs do
EntityID = EntityTypIDs[i]
Logic.MakeFarmAnimalIll (EntityID, true)
end
end
end
Logic.HealEntity
MakeFarmAnimalsSick(5) -- ID gracza 5
-- Funktion:
function MakeFarmAnimalsSick(_playerID)
local CowID = {Logic.GetPlayerEntitiesInCategory(_playerID, EntityCategories.CattlePasture)}
if #CowID ~= 0 then
for i = 1, #CowID do
if not Logic.IsFarmAnimalIll(CowID[i]) then
Logic.MakeFarmAnimalIll(CowID[i])
end
end
else
return 0
end
local SheepID = {Logic.GetPlayerEntitiesInCategory(_playerID, EntityCategories.SheepPasture)}
if #SheepID ~= 0 then
for i = 1, #SheepID do
if not Logic.IsFarmAnimalIll(SheepID[i]) then
Logic.MakeFarmAnimalIll(SheepID[i])
end
end
else
return 0
end
end
pytanie jak to teraz uzyc?
Ostatnio edytowany przez sisi (2010-09-17 03:42:35)
Offline
Przyjaciel-Friend
Czas Settlersów
ze stron: http://www.siedler-games.de/forum/ ()
http://www.siedler-games.de/forum/siedl … monat.html
i moze jeszcze dwie funkcje ogolne,
pierwsza to ta, ktora pozwala Thordhalowi odnalezc owce i zagonic do zagrody sasiada
ReplaceEntityToPlayer
ex. ReplaceEntityToPlayer( 4, "owca1", Entities.A_X_Sheep01)
function ReplaceEntityToPlayer(_Player,_Objekt,_Typ)
_Objekt = GetEntityId(_Objekt)
local Position = GetPosition(_Objekt)
local Orientation = Logic.GetEntityOrientation(_Objekt)
local ObjektName = Logic.GetEntityName(_Objekt)
DestroyEntity(_Objekt)
return CreateEntity(_Player, _Typ, Position, ObjektName, Orientation)
end
ReplaceEntity
ex. ReplaceEntity( "owca1", Entities.A_Bird01)
function ReplaceEntity( _entity, _type)
_entity = GetEntityId(_entity);
local pos = GetPosition(_entity);
local player = Logic.EntityGetPlayer(_entity);
local orientation = Logic.GetEntityOrientation(_entity);
local name = Logic.GetEntityName(_entity);
DestroyEntity(_entity);
CreateEntity(player, _type, pos, name, orientation);
end
Ostatnio edytowany przez sisi (2010-09-15 20:59:23)
Offline
Ooooo.... ale masz pamięć! Kiedy grałaś tą misję z Thordalem i owcami??!
Jak wrócę, wczytam się - narazie nic nie rozumiem, ale nie mam za wiele czasu. Zaraz idę z mamą do kawiarni.
Czy czas - to to, co na przykład u Sokratesa, na czerwono data zmienna w lewym rogu?? To by było fajne.
Offline
Przyjaciel-Friend
... niestety, czas u Sokratesa zwiazany jest z funkcja InitTimeSystem(), ktorej do dzisiaj nie umiem wyswietlic w grze.
http://wiki.siedler-aek.de/user_funktionen/timesystem
ten to jest czas ogolny, ktory ulatawia przeliczanie czasu przy tworzeniu questow. wiesz, ze jeden dzien trwa 5 sekund, jeden tydzien 35 sekund, jeden miesiac 150 sekund.
jesli chcesz postawic choinke 24 grudnia, to mozesz latwo sobie przeliczyc czas ... i uzyc TiggerTime lub TiggerOnQuestSucessWaiting
wypisuje tutaj te funkcje, zeby nie stracic ich z oka. czesto mam tak, ze przypominam sobie cos co widzialam i nie moge tego odnalezc. tak mam teraz z funkcja do tworzenia lasu... gdzies juz o tym czytalam
Ostatnio edytowany przez sisi (2010-09-17 14:16:56)
Offline
Przyjaciel-Friend
... animacja osadnikow, glownie Spouses
TaskList (te sprawdzone, napotkane...)
TL_WORKER_FESTIVAL_TALK_TO_COMPANY
TL_WORKER_FESTIVAL_APPLAUD_SPEECH
TL_SPOUSE_FESTIVAL_CHECK_FOR_ENTERTAINMENT
TL_SPOUSE_WAIT_FOR_SYNC_AND_APPLAUD
TL_SETTLER_WAIT_THEN_WALK
TL_BACHLORETTE_LEAVE_KEEP
TL_BACHLORETTE_FESTIVAL_DANCE
jedna z funkcji:
function CreateFigurki()
ReplaceEntity("FiG1", Entities.U_SpouseS01);
ReplaceEntity("FiG2", Entities.U_SpouseS02);
ReplaceEntity("FiG3", Entities.U_SpouseS03);
ReplaceEntity("FiG4", Entities.U_SpouseF01);
ReplaceEntity("FiG5", Entities.U_SpouseF02);
ReplaceEntity("FiG6", Entities.U_SpouseF03);
for i = 1, 6 do
local figurkiID = Logic.GetEntityIDByName("FiG"..i)
Logic.SetTaskList(figurkiID, TaskLists.TL_WORKER_FESTIVAL_TALK_TO_COMPANY)
end
end
wraz z funkcja ogolna
function ReplaceEntity( _entity, _type)
_entity = GetEntityId(_entity);
local pos = GetPosition(_entity);
local player = Logic.EntityGetPlayer(_entity);
local orientation = Logic.GetEntityOrientation(_entity);
local name = Logic.GetEntityName(_entity);
if Logic.IsLeader(_entity) == 1 then
Logic.DestroyGroupByLeader(_entity);
else
Logic.DestroyEntity(_entity);
end
return CreateEntity(player, _type, pos, name, orientation);
end
i moze byc tez muzyka:
Logic.ExecuteInLuaLocalState("StartEventMusic(MusicSystem.EventFestivalMusic, 1)")
Ostatnio edytowany przez sisi (2010-11-27 14:05:13)
Offline
Przyjaciel-Friend
Briefing i polskie ogonki
(nie pamietam czy to juz bylo...)
do zapisania w Global_lua, najlepiej gdzies na koncu ( funkcja globalna)
------------------------============---------------------------------------------------
function Umlaute(_text)
local texttype = type(_text);
if texttype == "string" then
_text = string.gsub( _text, "Ó", "\195\147" );
_text = string.gsub( _text, "ó", "\195\179" );
_text = string.gsub( _text, "Ą", "\196\132" );
_text = string.gsub( _text, "ą", "\196\133" );
_text = string.gsub( _text, "Ć", "\196\134" );
_text = string.gsub( _text, "ć", "\196\135" );
_text = string.gsub( _text, "Ę", "\196\152" );
_text = string.gsub( _text, "ę", "\196\153" );
_text = string.gsub( _text, "Ł", "\197\129" );
_text = string.gsub( _text, "ł", "\197\130" );
_text = string.gsub( _text, "Ń", "\197\131" );
_text = string.gsub( _text, "ń", "\197\132" );
_text = string.gsub( _text, "Ś", "\197\154" );
_text = string.gsub( _text, "ś", "\197\155" );
_text = string.gsub( _text, "Ź", "\197\185" );
_text = string.gsub( _text, "ź", "\197\186" );
_text = string.gsub( _text, "Ż", "\197\187" );
_text = string.gsub( _text, "ż", "\197\188" );
return _text
elseif texttype == "table" then
for k, v in pairs(_text) do
_text[k] = Umlaute( v );
end
return _text;
else
return _text;
end
end
---------------------------------------------------------------------------------
ale zeby poprawnie zadzialala nalezy w skrypcie lokalnym wymienic niemieckie czcionki na polskie
_text = string.gsub( _text, "Ó", "\195\147" );
_text = string.gsub( _text, "ó", "\195\179" );
_text = string.gsub( _text, "Ą", "\196\132" );
_text = string.gsub( _text, "ą", "\196\133" );
_text = string.gsub( _text, "Ć", "\196\134" );
_text = string.gsub( _text, "ć", "\196\135" );
_text = string.gsub( _text, "Ę", "\196\152" );
_text = string.gsub( _text, "ę", "\196\153" );
_text = string.gsub( _text, "Ł", "\197\129" );
_text = string.gsub( _text, "ł", "\197\130" );
_text = string.gsub( _text, "Ń", "\197\131" );
_text = string.gsub( _text, "ń", "\197\132" );
_text = string.gsub( _text, "Ś", "\197\154" );
_text = string.gsub( _text, "ś", "\197\155" );
_text = string.gsub( _text, "Ź", "\197\185" );
_text = string.gsub( _text, "ź", "\197\186" );
_text = string.gsub( _text, "Ż", "\197\187" );
_text = string.gsub( _text, "ż", "\197\188" );
kodowanie w UTF-8, czyli skrypt lua trzeba zapisac w tym formacie (bez BOM)
Ostatnio edytowany przez sisi (2015-06-27 09:26:33)
Offline
Polskie ogonki były, nie pamiętam, chyba zamieszczone na Forum Settlers tym polskim...
Offline