Forum www.sandbox.fora.pl Strona Główna
  FAQ  Szukaj  Użytkownicy  Grupy  Galerie   Rejestracja   Profil  Zaloguj się, by sprawdzić wiadomości  Zaloguj 

Misja dla początkujących mapperów!

Napisz nowy tematOdpowiedz do tematu Forum www.sandbox.fora.pl Strona Główna -> [FC]Skrypty , Eventy i Triggery
Zobacz poprzedni temat :: Zobacz następny temat
Autor Wiadomość
Sniper
Administrator forum
Administrator forum



Dołączył: 24 Lut 2008
Posty: 343
Przeczytał: 0 tematów

Pomógł: 33 razy
Ostrzeżeń: 0/3

PostWysłany: Pon 21:01, 24 Mar 2008 Temat postu: Misja dla początkujących mapperów!

Zrobimy małą misję:

Ok.! Na początek scenariusz. Spadliśmy z samolotu i jesteśmy w wodzie koło jakiejś wyspy. Nie mamy broni, ale na brzegu był tasak. Przechodzimy przez dżunglę i spotykamy przy pomoście najemników. Pilnują oni łodzi. Trzeba ukraść łódź i wydostać się z wyspy. Proste.


Na początek przesuwamy nasze miejsce startu do wody. Jest to Respawn z zakładki TagPoint:



Teraz w RollupBar w pierwszym dziale wchodzimy do zakładki Entity i w folderze Triggers szukamy „ProximityTrigger” i wstawiamy go tak aby Miejsce startu było w środku.

Teraz tworzymy drugi ProximityTrigger i wstawiamy go na brzegu. W środku tworzymy TagPoint który jest w dziale Objects pod zakładką TagPoint. Koniecznie musimy zmienić mu nazwę na radar1 i kolor na żółty (dla wyróżnienia).



Jeszcze gdzieś na brzegu wstawimy głośniczek misji który jest w zakładce Entity w folderze Sound pod nazwą MissionHint:



Teraz przechodzimy na drugi koniec wyspy i zajmiemy się pomostem. Jest to obiekt który znajduje się w zakładce Brush w folderze outdoor\islanders_structures pod nazwą wooden_pierb. Wstawiamy go żeby wyglądał mniej więcej tak:



Teraz stworzymy łódkę np.: Ponton. Jest on w Entity w folderze Vehicles pod nazwą InflatableBoat. Wstawiamy go na końcu pomostu:



Teraz przechodzimy do Proporties w menu Mission. I wybieramy Create. Zapisujemy jako nazwa mapy map1. Po zapisaniu wybieramy Edit. Teraz postępujemy uważnie i dokładnie bo każdy zły ruch doprowadzi do tego że misja nie zadziała.



Kod:
Pod linijką:  Mission = {
dopisujemy:

   Briefing = 0,
   Objective1  = 0,
   Objective2  = 0,

};

I w całości wygląda to tak:

Mission = {
              Briefing = 0,
   Objective1  = 0,
   Objective2  = 0,

};

Dalej pod linijką:

function Mission:Finish()
   -- go to next mission...
end

Robimy linijkę odstępu i wpisujemy: (oczywiście możesz sobie to skopiować za pomocą CTRL+C i wkleić)

function Mission:Event_init_mission()
   
   -- r_checkSunVis=2;
   -- r_Contrast=0.6;
   -- fov=90;
   -- e_terrain_caustics=0;
   -- hud_panoramic=0;
   -- e_water_ocean=1;
   -- e_shadow_maps=0;
   -- r_VolumetricFog=0;
   -- r_WaterRefractions=0;
   -- r_Contrast=0.65;
end

Znów linijka odstępu i wpisujemy:

-- Ingame Messages (Mission Objectives)







function Mission:Event_objectiveX()

   Hud:AddMessage('xxxxxxxxx’10);
   Hud:SetRadarObjective("yyyyyyyyy");
   Hud:PushObjective({},"zzzzzzzzzzz");
 
end

UWAGA! Gdzie X to numer zadania czyli np:1.
xxxxxxxxx – treść zadania wyświetlana na ekranie gry
yyyyyyyyy – nazwa radaru koniecznie taka sama jak radar. (wielkość liter)
zzzzzzzzzz - treść zadania wyświetlana w dzienniku misji (w grze TAB)

Zatem będzie to wyglądało np.: tak:

-- Ingame Messages (Mission Objectives)



function Mission:Event_objective1()

   Hud:AddMessage('Doplyn do brzegu',10);
   Hud:SetRadarObjective("radar1");
   Hud:PushObjective({},"Doplyn do brzegu");
 
end



Misję drugą robimy podobnie ale dodajemy linijkę:

function Mission:Event_objective2()

   Hud:AddMessage('Ukradnij Lodz',10);
   Hud:SetRadarObjective("radar2");
   Hud:PushObjective({},"Ukradnij Lodz");
   Hud:CompleteObjective("Doplyn do brzegu");
 
end

Jest to linijka, która mówi jaką misję wykonaliśmy poprzednio. Trzeba wpisać dokładnie tą samą treść co w pierwszej misji. Proste nie.

Robimy jeszcze jedną misję np.:

function Mission:Event_objective3()

   Hud:AddMessage('Wydostan sie z wyspy',10);
   Hud:SetRadarObjective("radar3");
   Hud:PushObjective({},"Wydostan sie z wyspy");
   Hud:CompleteObjective("Ukradnij Lodz");
 
end


I na zakończenie misja nieudana:

function Mission:Event_Mission_failure()

      Hud:AddMessage('Niestety zniszczyles lodz i teraz nie masz jak sie wydostac!',10);
      
 
end


A co zrobić , w sytuacji gdy gracz zginie? Bez tego skryptu pewnie po zabiciu gracz pojawia się przy najbliższym respawnie. Jeżeli do naszego skryptu dodamy linijkę

Kod:
function Mission:Event_MissionFailed()   

   if (god) then
      god=nil;
   end   
   local ent = System:GetEntityByName("DelayTrigger20");   
   local pos=new(ent:GetPos());
   local ang=new(ent:GetAngles());
   _localplayer:SetPos(pos);
   _localplayer:SetAngles(ang);
   _localplayer.timetodie=1;   
   
end



da ona nam możliwość, że w przypadku gdy gracz zginie to mapa się wyłącza i trzeba wczytać ostatni zapis. Tak jak jest to w przypadku wszystkich misji w kampanii.

Zapisujemy i przechodzimy dalej. W pierwszym ProximityTrigger1 przy starcie zaznaczamy go i szukamy zakładki ProximityTrigger. Tam zaznaczamy OnEnter i niżej w Mission Handler z listy wybieramy objective1. Jeśli nie będzie tam żadnej listy to cofnij się w poradniku i sprawdź gdzie zrobiłeś błąd.

Ok! Teraz klikamy jeszcze raz na OnEnter i wybieramy Pick New i wskazujemy głośniczek na brzegu ten o nazwie MissionHint. Połączy się on kreską. Wchodzimy do głośniczka i w Entity Proporties na pierwszej pozycji Hint szukamy dźwięku: Languages\missiontalk\mutant\mutant_specific_a_1.wav (co się stało, gdzie ja jestem).

Jeszcze raz w ProximityTrigger1 przy starcie w OnEnter klikamy prawym przyciskiem myszy na MissionHint1 i wybieramy Play.

Teraz klikamy na ProximityTrigger2 i w OnEnter w Mission Handler wybieramy objective2 i później Pick New i wskazujemy na ponton. ProximityTrigger2 musi być trochę większy od pierwszego tak żeby gracz na pewno w niego wszedł. Ustawiamy w nim jeszcze w zakładce
Entity Proporties wartość DimY na 20.
Kopiujemy pierwszy radar i wstawiamy go na pomoście obok łodzi.
Klikamy na łódź i w OnDriverIn ustawiamy objectiv3 i w On OnDeath mission_failure.

Gratulacje najtrudniejszą część masz za sobą. Dla utrudnienia w grze robimy jeszcze tak:
W menu Mission\Proporties Player i w ekwipunku gracza usuń wszystkie bronie.
Na brzegu obok pierwszego radaru połóż maczetę:



Znajdziesz ją w Entity w folderze Pickups pod nazwą PickupMachete. Ładnie ją obróć żeby była wbita. Połóż koło niej jeszcze szkielet. Jest on w Brush\characters\dead\skeleton:



I masz już niezły klimat. Na pomoście stwórz parę kiboli:



I w dżungli parę świń:





Dalej piszę o zachowaniu się inteligencji w grze (AI) ... >>KLIK<<


Post został pochwalony 1 raz

Ostatnio zmieniony przez Sniper dnia Pon 21:20, 24 Mar 2008, w całości zmieniany 2 razy
Powrót do góry
Zobacz profil autora
JackGTA
Administrator forum
Administrator forum



Dołączył: 24 Lut 2008
Posty: 170
Przeczytał: 0 tematów

Pomógł: 10 razy
Ostrzeżeń: 0/3

PostWysłany: Czw 22:38, 10 Lip 2008 Temat postu:

Te świnie to mnie rozbroiły xD Sniper! Ty zboczeńcu! Very Happy

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Gość







PostWysłany: Sob 10:17, 12 Lip 2008 Temat postu:

Poradnik super tylko mam problem.
Pisałem maila do snipera i mnie tu zaprosił więc pisze tu.
Gdy trzeba edytować skrypt misji , klikam edit i nic sie nie dzieje . prosze o szybką pomoc
Powrót do góry
Sniper
Administrator forum
Administrator forum



Dołączył: 24 Lut 2008
Posty: 343
Przeczytał: 0 tematów

Pomógł: 33 razy
Ostrzeżeń: 0/3

PostWysłany: Sob 10:49, 12 Lip 2008 Temat postu:

Załóżmy:

Nasza mapka nazywa się XXX. Przechodzimy do Mission->Proporties i kilkamy CREATE, i w folderze z mapką tworzymy nowy skrypt i nazywamy go jak nasza mapka XXX. Potem klikamy zapisz...

następnie EDIT i tam wklejamy nasze skrypty. Jak już coś zapiszemy klikamy RELOAD, a gdy się na liście nic nie pojawi tzn że zrobiłeś Syntax Error czyli błąd pisowni w skład którego wchodzą:

- polskie znaki
- { brakujące nawiasy
- " brakujące cudzysłowowa

jeśli gdzieś sie zgubiłeś napisz..


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Sniper
Administrator forum
Administrator forum



Dołączył: 24 Lut 2008
Posty: 343
Przeczytał: 0 tematów

Pomógł: 33 razy
Ostrzeżeń: 0/3

PostWysłany: Sob 10:51, 12 Lip 2008 Temat postu:

EDIT* aha, jeśli się nie otwiera po kliknięciu na EDIT, to wchodzimy ręcznie do folderu, i na naszym skrypcie klikamy właściwości, i w otwieranie za pomocą ZMIEŃ i wybierz NOTATNIK i zastosuj...

Post został pochwalony 1 raz
Powrót do góry
Zobacz profil autora
Gość







PostWysłany: Sob 14:08, 12 Lip 2008 Temat postu:

Dziękuje za pomoc wszystko działa
Powrót do góry
Gość







PostWysłany: Sob 14:26, 12 Lip 2008 Temat postu:

Qwde , mam nastepny problem.W skrypcie skopiowalem kod z tego poradnika i gdy wciskam reload wyskakuje mi syntax eroor nie wiem co jest źle zamieszczam tu kod który mam w skrypcie :
Mission = {
Briefing = 0,
Objective1 = 0,
Objective2 = 0,
};


function Mission:OnInit()
-- you may want to load a string-table etc. here...
end

function Mission:OnUpdate()
local i;
local bFinished=1;
for i,objective in Mission do
if (type(objective)~="function") then
if (objective==0) then
bFinished=0;
else
end
end
end
if (bFinished==1) then
self.Finish();
end
end


function Mission:Finish()
-- go to next mission...
end

function Mission:Event_init_mission()

-- r_checkSunVis=2;
-- r_Contrast=0.6;
-- fov=90;
-- e_terrain_caustics=0;
-- hud_panoramic=0;
-- e_water_ocean=1;
-- e_shadow_maps=0;
-- r_VolumetricFog=0;
-- r_WaterRefractions=0;
-- r_Contrast=0.65;
end

-- Ingame Messages (Mission Objectives)




function Mission:Event_objective1()

Hud:AddMessage('Doplyn do brzegu’10);
Hud:SetRadarObjective("radar1");
Hud:PushObjective({},"Doplyn do brzegu");

end

function Mission:Event_objective2()

Hud:AddMessage('Ukradnij Lodz',10);
Hud:SetRadarObjective("radar2");
Hud:PushObjective({},"Ukradnij Lodz");
Hud:CompleteObjective("Doplyn do brzegu");

end

function Mission:Event_objective3()

Hud:AddMessage('Wydostan sie z wyspy',10);
Hud:SetRadarObjective("radar3");
Hud:PushObjective({},"Wydostan sie z wyspy");
Hud:CompleteObjective("Ukradnij Lodz");

end

function Mission:Event_Mission_failure()

Hud:AddMessage('Niestety zniszczyles lodz i teraz nie masz jak sie wydostac!',10);


end

function Mission:Event_MissionFailed()

if (god) then
god=nil;
end
local ent = System:GetEntityByName("DelayTrigger20");
local pos=new(ent:GetPos());
local ang=new(ent:GetAngles());
_localplayer:SetPos(pos);
_localplayer:SetAngles(ang);
_localplayer.timetodie=1;

end
Powrót do góry
Sniper
Administrator forum
Administrator forum



Dołączył: 24 Lut 2008
Posty: 343
Przeczytał: 0 tematów

Pomógł: 33 razy
Ostrzeżeń: 0/3

PostWysłany: Czw 17:05, 17 Lip 2008 Temat postu:

usuwaj po kolei cale skrypty np:

function Mission:Event_objective3()

Hud:AddMessage('Wydostan sie z wyspy',10);
Hud:SetRadarObjective("radar3");
Hud:PushObjective({},"Wydostan sie z wyspy");
Hud:CompleteObjective("Ukradnij Lodz");

end


I zobacz jak zachowa się skrypt. W końcu znajdzie się błąd w tekście i gitara.
Z resztą zaraz sprawdzę u siebie co jest nie tak...


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Gość







PostWysłany: Czw 16:16, 30 Paź 2008 Temat postu:

Wystarczy zamienić cudzysłowy z takich ' na takie". Powinno być wtedy ok. W którymś kodzie u góry brakowało przecinka w AddMessage, pomiędzy treścią a czasem jej ukazania. Poza tym wszędzie w AddMessage jest ' zamiast ".

Ostatnio zmieniony przez Gość dnia Czw 16:20, 30 Paź 2008, w całości zmieniany 1 raz
Powrót do góry
marcinLDZ




Dołączył: 19 Gru 2008
Posty: 96
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/3
Skąd: Łódź

PostWysłany: Czw 7:52, 26 Mar 2009 Temat postu:

Czy mógł ktoś by mi dać swój skrypt bo u mnie ten co pisze nie chodzi . W proximity trigger zaznaczam on enter i gdy biorę MISSION HANDLER niema objective1

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:
Napisz nowy tematOdpowiedz do tematu Forum www.sandbox.fora.pl Strona Główna -> [FC]Skrypty , Eventy i Triggery Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1


Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB Š 2001, 2005 phpBB Group
Theme bLock created by JR9 for stylerbb.net
Regulamin