online multiplayer game

 

 

Tava paralēlā pasaule, tava paralēlā dzīve!

 

eng

Arī Second Life pasaulē katrs var attīstīt savu kaujinieka talantu!

Ja jums neinteresē Second Life pasaules mīlas lietas, naudas pelnīšana, iepirkšanās vai ceļošana, jūs variet ievingrināt sava avatāra roku kaujas mākslā, pievienoties kādam militāram grupējumam vai arī radīt kādu pārsteidzošu ieroci. Second Life pasaulē jūs noteikti atradīsiet avatārus ar līdzīgām interesēm un varbūt pat varēsiet izveidot paši savu kaujas grupējumu ar saviem noteikumiem.

 
Second Life kaujas māksla un ieroči
image

Arī Second Life pasaulē ir iespējams karot, radīt ieročus un izmantot tos, veidot militāros grupējumus vai būt to biedriem. Militārās spēles parasti izpaužas savā starpā grupas iekšienē vai divu atšķirīgu grupu starpā. Katrs grupējums izdod savus iekšējos noteikumus, kurus ir jāievēro katram grupas biedram. Grupas iekšienē katram var tikt piešķirti militārie rangi un noteikts pārbaudes laiks jaunajiem biedriem. Pēc pārbaudes laika beigām, eksāmenu nokārtošanas vai citu grupas biedru ieteikumiem, jauniņais kļūst par grupas patstāvīgo biedru.

Grupas biedriem parasti tiek rīkotas kaujas apmācības, noteikti oficiālie grupas formas tērpi. Iekšējie grupu noteikumi parasti aizliedz ieroču izmantošanu pret miermīlīgajiem avatāriem, kas nav militāro grupējumu biedri.

Lai varētu pilnvērtīgi ar kādu cīnīties, ir nepieciešams kaut ierocis. Tālāk tiks apskatīts, kā pašam izgatavot nūju.

Kā izgatavot nūju?

Interese par ieročiem vairumam cilvēku burtiski sēž asinīs, tāpēc nav nekāds brīnums, ka vairums rezidentu, kas jau cik necik ir iejutušies Second Life pasaulē, sāk pamazām apbruņoties - mazums, kāds var uzbrukt, bet ja arī neuzbrūk, tad lai vismaz ir pie rokas katram gadījumam.

beisbola nūja

Second Life pasaulē eksistē daudz un dažādi ieroči - sākot no aukstajiem ieročiem, beidzot ar stratēģiskajiem. Darbības princips visiem SL pasaules ieročiem ir viens un tas pats, neatkarīgi no vizuālā iemiesojuma - kaut kas no tā izlido, aizlido līdz ienaidniekam un nonāk ar to saskarē, izpildod desturktīvās funkcijas - push, impulse vai damage.

Vispirms ir nepieciešams izveidot kaut ko līdzīgu beisbola nūjai.

beisbola nūja Second Life
Tālāk tā ir jāpiesaista rokai - "uzvilkt" uz labās rokas un noregulēt pareizā pozā.

second life kaujas māksla

second life

Tālāk būtu nepieciešams iemācīties ar to vicināties, tāpēc jāatver rediģēšana un jāielādē skripts, kas pie noteiktas klaviatūras taustiņu kombinācijas nospiešanas ļaus darbināt dažādas animācijas, imitējot sišanu. Animācijas variet izveidot jūs paši vai paņemt/nopirkt jau gatavas animācijas. Tam nav īpašas nozīmes. Galvenais, lai tās adekvāti izpilda to, ko jūs vēlaties parādīt - sitienu izdarīšanu. Lai "uzvilktu" nūju, būs nepieciešams ievadīt sekojošo skriptu:

 


attach(key id)
{
if(id != NULL_KEY)
{
integer perm = llGetPermissions(); // pieprasaam tiesiibas
if(perm == (PERMISSION_TAKE_CONTROLS | PERMISSION_TRIGGER_ANIMATION))
{
// ja ar tiesiibaam viss ir ОК, paarnjemam vadiibu
llTakeControls(CONTROL_ML_LBUTTON | CONTROL_LBUTTON | CONTROL_UP | CONTROL_FWD | CONTROL_BACK | CONTROL_ROT_LEFT | CONTROL_LEFT | CONTROL_RIGHT | CONTROL_ROT_RIGHT, TRUE, TRUE);
}
else
{
// ja nee, tad prasaam pieshkjirt shiis tiesiibas
llRequestPermissions(id, PERMISSION_TAKE_CONTROLS | PERMISSION_TRIGGER_ANIMATION);
}
}
else
{
llReleaseControls();
}
}

run_time_permissions(integer perm)
{
if (perm)
{
llTakeControls(CONTROL_ML_LBUTTON | CONTROL_LBUTTON | CONTROL_UP | CONTROL_FWD | CONTROL_BACK | CONTROL_ROT_LEFT | CONTROL_LEFT | CONTROL_RIGHT | CONTROL_ROT_RIGHT | CONTROL_DOWN, TRUE, TRUE);
}
}


Tālāk nepieciešams skripts, kur aprakstīts, kādas darbības tas izpildīs pie noteiktas taustiņu kombinācijas. Nospiežot uz klaviatūras bultiņas, avatārs uzvedīsies kā parasti, līdz brīdim, kad tiks nospiests un noturēts peles taustiņš - tikai tagad, nospiežot bultiņas uz klaviatūras, avatārs sāks darboties ar nūju.

control(key owner, integer level, integer edge)
{
if(level & (CONTROL_ML_LBUTTON | CONTROL_LBUTTON))
{
if(edge & (CONTROL_UP | CONTROL_FWD | CONTROL_BACK | CONTROL_LEFT | CONTROL_ROT_LEFT | CONTROL_RIGHT | CONTROL_ROT_RIGHT))
{
llStartAnimation("sword_strike_R");
}
}
}


Ar šiem skriptiem pilnīgi pietiek, lai varētu staigāt pa pilsētu un vicināties ar jaunizveidoto nūju, bet ar to vēl ir par maz, jo nepieciešams, lai tā nodarītu arī kaut kādus bojājumus. Kaut arī tas nav raksturīgi nūjai, mūsu gadījumā no nūjas izlidos kaut kas neredzams un ievainos pretinieku. Tas ir viens no izplatītākajiem ieroču darbības veidiem, tāpēc, ar šī skripta palīdzību, jūs varēsiet vēlāk paši radīt šaujamieroci.

Vispirms vajadzētu radīt kādu objektu, kas sitiena brīdī izlidos no nūjas un kopā ar skriptu ievietot to pie "mātes objekta", jeb pie nūjas inventāru sadaļā. Tāpat būs nepieciešams skripts, kas atļaus izmest telpā priekšmetu, kas glabājas "mātes objekta" inventāra failā, ar noteiktu trajektoriju un spēku:

kick()
{
rotation rot = llGetRot();
vector pos = llGetPos();
vector dir = llRot2Fwd(rot);
pos += dir;

llRezObject("kick_bullet", pos, dir, ZERO_ROTATION, 0);
}


Tālāk jāpāriet pie pašas lodes izgatavošanas. Kā kick_bullet tiks izmantota visparastākā maza izmēra lodīte. Objekta forma var būt jebkāda, jo mūsu gadījumā tā būs neredzama. Tāpat arī vajadzētu izlemt, kā tieši tiks savainots ienaidnieks. Mūsu gadījumā tā būs impulsa enerģija un damage, kas ļaus rīkoties ar mūsu nūju arī tur, kur push ir atslēgts, kā arī teritorijās, kur atļauts damage (tā saucamajās kaujas nometnēs) un "nogalināt".

Sekojošais skripts tiek ievietots lodes failā un tajā ir aprakstīts, kas jādara, kad lode trāpa ienaidniekam. Lai nepiesārņotu apkārtni ar lodēm, skriptā ir ievietots tā saucamais lifetime. Tas ir laiks, ko lode pavada telpā kopš izšaušanas brīža, kā arī samazina nūjas darbības rādiusu, kas piešķir tās darbībai reailitāti.

vector velocity;
float damage = 20;
float lifetime = 0.27;
integer shot = FALSE;

default
{
state_entry()
{
llSetDamage(damage);
llSetAlpha(0.0, ALL_SIDES);
llSetStatus(STATUS_PHYSICS, TRUE);
llSetStatus(STATUS_DIE_AT_EDGE, TRUE);
llSetBuoyancy(1.0);
llSetForce(<10, 0, 0>, TRUE);
}

collision_start(integer total_number)
{
key kd = llDetectedKey(0);
float fMass = llGetObjectMass(kd);
integer mass = llRound(fMass);
llSetForce(<10*mass,0,0>,TRUE);
}

timer()
{
if(shot) llDie();
}

moving_start()
{
llSetTimerEvent(lifetime);
velocity = llGetVel() * 5;
float vmag = llVecMag(velocity);
if (vmag > 0.1){
shot = TRUE;
}
}
}

Tas arī viss. Saglabājam skriptu, savācam lodi no zemes un ievietojam to nūjas inventārā. Pēc tam varam ķerties pie nūjas un iet gaiņāt sliktos un ļaunos avatārus. Nūjai var pievienot arī specefektus - asins šļakatas vai lidojošus zobus - pievienojot collision_start() atbilstošas funkcijas, taču tā jau būs citas sadaļas tēma.
 

 

Raksts veidots pēc Manoul Carnell oriģinālraksta.