Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Missions Mod v1.0


TBagT

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2803 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, užvakar pagalvojau jog reiktu sukurti missions mod'ą pardavimui, bet kadangi jis jau yra daugelyje serverių nusprendžiau juo pasidalinti. Jis yra beta versijoje tad jei atsiras kokių nors bug'ų ( klaidų ) praneškite šioje temoje.

 

Cvar'ai

  • ms_team - ( 1 / 2 ) Kuri komanda gali imti objective 1 - T, 2 - CT. [ Numatytas: 2 ]
  • ms_time - Kiek laiko komanda turi paimti objective ( mažiausiai 30s ) [ Numatytas: 60 ]
Norint sukurti objective žaidime rašote komandą - "/objectives" į chat ir paspaudžiate "Stop Objective task" jog nenužudytų jūsų po tam tikro laiko, o toliau ir taip aišku.

 

Kaip įdėti papildomą/naują objective ?

Pvz:

#include <amxmodx>
#include <fun>
#include <missions> // Įtraukiate missions biblioteką //

const Float: ObjectiveTime  = 10.0          // Kiek laiko ims objective //
const Float: ObjectiveRange = 100.0         // Kokiu atstumu pradeda imti objective //
new const ObjectiveModel[ ] = "checkpoint2" // Modelio pavadinimas //
new const ObjectiveName[ ]  = "Flag"        // Objective pavadinimas //

public plugin_precache( ) {
        ms_create_objective( ObjectiveName, ObjectiveModel, false, ObjectiveRange, ObjectiveTime );
        // False - reiškia kad šis objective nėra tas kuris laimi round //
        // True  - reiškia kad šis objective laimi žaidimą //
}

// Ši funkcija ivyksta tada kai žaidėjas paima objective //
public ms_objective_taken( id ) {
        give_item( id, "weapon_hegrenade" );
        give_item( id, "weapon_smokegrenade" );
        give_item( id, "weapon_flashbang" );
        give_item( id, "weapon_flashbang" );
}
  • Laiminčius objective galima imti tik tada kai visi paprasti objective yra paimti arba yra tik laimintys round objective.
  • Jei nėra laiminčių round objective surinkus visus objective laimimas žaidimas.
  • Paėmus laimintį objective priešininkų komandą išžudoma.
Su mod'u pridedų du objective: Flag ir Radio. Taip pat video kaip viskas atrodo:

Strigimas žaidime yra dėl to jog kompas senas ir podbotai ryja daug pc resursų :)

 

Changelog:

1.0 - Išleidimas
Siųstis/Download

 

Gero naudojimo :)

Redaguota , nario TBagT
  • Teigiamai 5
Nuoroda į komentarą
Dalintis per kitą puslapį

Ačiū, reikes persidaryti gun xp modui :-) gal butu galima padaryt kad tie flagai kurie jau paimti nebesvytetu geltonai o pasidarytu pilki arba kokios nors kitos spalvos ? Manau butu geriau, lengviau suprasti kurie jau paimti o kurie dar ne, nes nevisi skaito ka chate raso :-D

Redaguota , nario AwP SnIpEr
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

Ačiū, reikes persidaryti gun xp modui :-) gal butu galima padaryt kad tie flagai kurie jau paimti nebesvytetu geltonai o pasidarytu pilki arba kokios nors kitos spalvos ? Manau butu geriau, lengviau suprasti kurie jau paimti o kurie dar ne, nes nevisi skaito ka chate raso :-D

Atnaujinau, kad šviestu pilkai jeigu objective yra paimtas.

GunXpModui

Tam žmogui kuris paimė:

#include <amxmodx>
#include <missions>
#include <gunxpmod>

const Float: ObjectiveTime  = 10.0
const Float: ObjectiveRange = 100.0
new const ObjectiveModel[ ] = "checkpoint2"
new const ObjectiveName[ ]  = "Flag"

new cvar_xp;

public plugin_precache( ) {
        ms_create_objective( ObjectiveName, ObjectiveModel, false, ObjectiveRange, ObjectiveTime );

        cvar_xp = register_cvar( "ms_xp", "100" );
}

public ms_objective_taken( id ) {
        set_user_xp( id, get_user_xp( id ) + get_pcvar_num( cvar_xp ) );
}

Visiems komandos nariams:

#include <amxmodx>
#include <missions>
#include <gunxpmod>

const Float: ObjectiveTime  = 10.0
const Float: ObjectiveRange = 100.0
new const ObjectiveModel[ ] = "checkpoint2"
new const ObjectiveName[ ]  = "Flag"

new cvar_xp;

public plugin_precache( ) {
        ms_create_objective( ObjectiveName, ObjectiveModel, false, ObjectiveRange, ObjectiveTime );

        cvar_xp = register_cvar( "ms_xp", "100" );
}

public ms_objective_taken( id ) {
        new ms_Players[ 32 ], ms_num = 0;
        switch( get_user_team( id ) ) {
                case 1: get_players( ms_Players, ms_num, "ae", "TERRORIST" );
                case 2: get_players( ms_Players, ms_num, "ae", "CT" );
        }
        for( new index = 0; index < ms_num; index++ )
                set_user_xp( ms_Players[ index ], get_user_xp( ms_Players[ index ] ) + get_pcvar_num( cvar_xp ) );
}

Redaguota , nario TBagT
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Tai jo daugiau nieks niekur daugiau ir nenaudos manau.

 

Radus bug'ą ( klaidą ) butinai parašykit :)

butinai gryzes pajunksiu paieskosim klaidu :-)

Compailinant erora meta, o serverio loguose

L 08/22/2016 - 20:46:07: [AMXX] Displaying debug trace (plugin "missions.amxx", version "unknown")
L 08/22/2016 - 20:46:07: [AMXX] Run time error 10: native error (native "ArrayPushArray")
L 08/22/2016 - 20:46:07: [AMXX]    [0] missions.sma::native_create_mission_objective (line 534)

http://www.part.lt/img/ec579d531d6205a0122bb8079027ab30934.jpg

Nuoroda į komentarą
Dalintis per kitą puslapį

Gryžęs pažiurėsiu, o dėl log error parodyk savo cellarray.inc failą jis yra amxmodx/scripting/include/

// vim: set ts=4 sw=4 tw=99 noet:
//
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
// Copyright (C) The AMX Mod X Development Team.
//
// This software is licensed under the GNU General Public License, version 3 or higher.
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
//     https://alliedmods.net/amxmodx-license

#if defined _cellarray_included
	#endinput
#endif

#define _cellarray_included

/**
 * Cellarray tag declaration
 *
 * @note These dynamic arrays are intended to be used for a form of global
 *       storage without requiring a #define that needs to be increased each
 *       time the plugin author requires more storage. These are not designed
 *       to be a full replacement for normal arrays, as those are faster and
 *       should be used whenever possible.
 * @note Plugins are responsible for freeing all Array handles they acquire,
 *       including those from ArrayClone. Failing to free handles will result
 *       in the plugin and AMXX leaking memory.
 */
enum Array
{
	Invalid_Array = 0
};

/**
 * Returns the number of cells required to fit a string of the specified size
 * (including the null terminator).
 *
 * @param size          Number of bytes.
 *
 * @return              Minimum number of cells required to fit the byte count.
 */
stock ByteCountToCells(size)
{
	if (!size)
	{
		return 1;
	}

	return (size + 3) / 4;
}

/**
 * Creates a handle to a dynamically sized array.
 *
 * @note It is very important that the provided cellsize matches up with the
 *       buffer sizes that are passed with subsequent Array[Get|Set|Push] calls.
 * @note Initially the "reserved" parameter was intended to create blank entries
 *       that would immediately be usable with Array[Get|Set] functions. This
 *       functionality was never working as intended, and can now be achieved
 *       using ArrayResize().
 *
 * @param cellsize      Size of each array entry in cells
 * @param reserved      Pre-allocates space in the array for the specified
 *                      number of items. The items are not valid to read or set
 *                      until they have actually been pushed into the array.
 *
 * @return              New array handle, which must be freed via ArrayDestroy()
 * @error               If an invalid cellsize is provided an error will be
 * 	                    thrown.
 */
native Array:ArrayCreate(cellsize = 1, reserved = 32);

/**
 * Clones an array, returning a new handle with the same size and data.
 *
 * @param which         Array handle
 *
 * @return              Handle to the cloned array on success, 0 otherwise
 * @error               If an invalid handle is provided an error will be
 *                      thrown.
 */
native Array:ArrayClone(Array:which);

/**
 * Clears all entries from the array.
 *
 * @param which         Array handle
 *
 * @noreturn
 * @error               Invalid handle
 */
native ArrayClear(Array:which);

/**
 * Returns the number of elements in the array.
 *
 * @param which         Array handle
 *
 * @return              Number of elements in the array
 * @error               If an invalid handle is provided an error will be
 *                      thrown.
 */
native ArraySize(Array:which);

/**
 * Resizes an array.
 *
 * @note If the size is smaller than the current array size the array is
 *       truncated and data lost.
 *
 * @param which         Array handle
 * @param newsize       New size
 *
 * @noreturn
 * @error               If an invalid handle is provided or the resizing
 *                      operation runs out of memory, an error will be thrown.
 */
native bool:ArrayResize(Array:which, newsize);

/**
 * Retrieves an array of data from a cellarray.
 *
 * @note If the size parameter is specified as -1 the output buffer has to match
 *       the size the array was created with.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param output        Buffer to copy value to
 * @param size          If not set, assumes the buffer size is equal to the
 *                      cellsize. Otherwise, the specified size is used.
 *
 * @return              Number of cells copied
 * @error               If an invalid handle or index is provided an error will
 *                      be thrown.
 */
native ArrayGetArray(Array:which, item, any:output[], size = -1);

/**
 * Returns a single cell of data from an array
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param block         If the array has a cellsize >1 this optionally specifies
 *                      which block to read from
 * @param asChar        If true reads the value as a byte instead of a cell
 *
 * @return              Integer value
 * @error               If an invalid handle, index or block is provided an
 *                      error will be thrown.
 */
native any:ArrayGetCell(Array:which, item, block = 0, bool:asChar = false);

/**
 * Returieves string data from an array.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param output        Buffer to copy value to
 * @param size          Maximum size of the buffer
 *
 * @return              Number of characters copied
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArrayGetString(Array:which, item, output[], size);

/**
 * Fills an item's data with the contents of an array.
 *
 * @note If the size parameter is specified as -1 the input buffer has to match
 *       the size the array was created with.
 * @note The item index must already be valid. Use ArrayPushArray to create
 *       a new array item in the cellarray.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param input         Array to copy to the cellarray
 * @param size          If not set, assumes the buffer size is equal to the
 *                      cellsize. Otherwise, the specified size is used.
 *
 * @return              Number of cells copied
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArraySetArray(Array:which, item, const any:input[], size =-1);

/**
 * Sets an item's data to a single cell value.
 *
 * @note The item index must already be valid. Use ArrayPushArray to create
 *       a new array item in the cellarray.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param input         Value to set
 * @param block         If the array has a cellsize >1 this optionally specifies
 *                      which block to write to
 * @param asChar        If true writes the value as a byte instead of a cell
 *
 * @noreturn
 * @error               If an invalid handle, index or block is provided an
 *                      error will be thrown.
 */
native ArraySetCell(Array:which, item, any:input, block = 0, bool:asChar = false);

/**
 * Sets an item's data to a string value.
 *
 * @note The input will be truncated if it is longer than the cellsize the array
 *       was created with.
 * @note The item index must already be valid. Use ArrayPushString to create
 *       a new array item in the cellarray.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param input         String to copy to the array
 *
 * @return              Number of characters copied
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArraySetString(Array:which, item, const input[]);

/**
 * Creates a new item at the end of the cellarray and copies the provided array
 * into it.
 *
 * @note The input will be truncated if it is bigger than the cellsize the array
 *       was created with.
 *
 * @param which         Array handle
 * @param input         Array to copy to the cellarray
 * @param size          If not set, assumes the buffer size is equal to the
 *                      cellsize. Otherwise, the specified size is used.
 *
 * @return              Index of the new entry
 * @error               If an invalid handle is provided or the resizing
 *                      operation runs out of memory, an error will be thrown.
 */
native ArrayPushArray(Array:which, const any:input[], size = -1);

/**
 * Creates a new item ath the end of the array and sets the item's single cell
 * value.
 *
 * @param which         Array handle
 * @param input         Value to set
 *
 * @return              Index of the new entry
 * @error               If an invalid handle is provided or the resizing
 *                      operation runs out of memory, an error will be thrown.
 */
native ArrayPushCell(Array:which, any:input);

/**
 * Creates a new item at the end of the array and copies the provided string
 * into it.
 *
 * @note The input will be truncated if it is longer than the cellsize the array
 *       was created with.
 *
 * @param which         Array handle
 * @param input         String to copy to the array
 *
 * @return              Index of the new entry
 * @error               If an invalid handle is provided or the resizing
 *                      operation runs out of memory, an error will be thrown.
 */
native ArrayPushString(Array:which, const input[]);

/**
 * Creates a new item behind the specified item and copies the provided array
 * into it. All items beyond it get shifted up by one.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param input         Array to copy to the cellarray
 *
 * @noreturn
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArrayInsertArrayAfter(Array:which, item, const any:input[]);

/**
 * Creates a new item behind the specified item and sets the item's single cell
 * value. All items beyond it get shifted up by one.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param input         Value to set
 *
 * @noreturn
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArrayInsertCellAfter(Array:which, item, any:input);

/**
 * Creates a new item behind the specified item and copies the provided string
 * into it. All items beyond it get shifted up by one.
 *
 * @note The input will be truncated if it is longer than the cellsize the array
 *       was created with.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param input         String to copy to the array
 *
 * @noreturn
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArrayInsertStringAfter(Array:which, item, const input[]);

/**
 * Creates a new item in front of the specified item and copies the provided
 * array into it. All items beyond it get shifted up by one.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param input         Array to copy to the cellarray
 *
 * @noreturn
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArrayInsertArrayBefore(Array:which, item, const any:input[]);

/**
 * Creates a new item in front of the specified item and sets the item's single
 * cell value. All items beyond it get shifted up by one.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param input         Value to set
 *
 * @noreturn
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArrayInsertCellBefore(Array:which, item, const any:input);

/**
 * Creates a new item in front of the specified item and copies the provided
 * string into it. All items beyond it get shifted up by one.
 *
 * @note The input will be truncated if it is longer than the cellsize the array
 *       was created with.
 *
 * @param which         Array handle
 * @param item          Item index in the array
 * @param input         String to copy to the array
 *
 * @noreturn
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArrayInsertStringBefore(Array:which, item, const input[]);

/**
 * Swaps the position of two items.
 *
 * @param which         Array handle
 * @param item1,item2   Item pair to swap
 *
 * @noreturn
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArraySwap(Array:which, item1, item2);

/**
 * Deletes an item from the array. All items beyond it get shifted down by one.
 *
 * @param which         Array handle
 * @param item          Item to delete
 *
 * @noreturn
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native ArrayDeleteItem(Array:which, item);

/**
 * Searches through the array and returns the index of the first occurence of
 * the specified string.
 *
 * @param which         Array handle
 * @param item          String to search for
 *
 * @return              Array index on success, -1 if the string can't be found
 * @error               Invalid handle.
 */
native ArrayFindString(Array:which, const item[]);

/**
 * Searches through the array and returns the index of the first occurence of
 * the specified value.
 *
 * @param which         Array handle
 * @param item          Value to search for
 *
 * @return              Array index on success, -1 if the value can't be found
 * @error               If an invalid handle is provided an error will be
 *                      thrown.
 */
native ArrayFindValue(Array:which, any:item);

/**
 * Creates a special handle that can be passed to a string format routine for
 * printing as a string (with the %a format option).
 *
 * @note It is recommended to pass the function as a parameter to the format
 *       routine directly. The array item must contain a null-terminated string!
 * @note Do not save or otherwise use the handles returned by this function.
 * @note Example usage:
 *       console_print(id, "%a", ArrayGetStringHandle(MessageArray, i));
 *
 * @param which         Array handle
 * @param item          Item to retrieve handle of
 *
 * @return              Handle to the item
 * @error               If an invalid handle or an invalid index is provided an
 *                      error will be thrown.
 */
native DoNotUse:ArrayGetStringHandle(Array:which, item);

/**
 * Destroys the array and frees its memory.
 *
 * @note The function automatically sets the variable passed to it to 0 to aid
 *       in preventing accidental usage after destroy.
 *
 * @param which         Array to destroy
 *
 * @return              1 if the Array was destroyed, 0 if nothing had to be
 *                      destroyed (invalid handle)
 */
native ArrayDestroy(&Array:which);

/**
 * Similar to sorting.inc's CustomSort, the sorting algorithm then uses the
 * custom comparison function to sort the data.
 *
 * @note The function is called in the following manner:
 *
 * public MySortFunc(Array:array, item1, item2, const data[], data_size)
 *
 *   array           - Array handle in its current un-sorted state
 *   item1, item2    - Current item pair being compared
 *   data[]          - Extra data array passed to the sort func
 *   data_size       - Size of extra data
 *
 * @note The comparison function should return:
 *         -1 if item1 should go before item2
 *          0 if item1 and item2 are equal
 *          1 if item1 should go after item2
 *
 * @note All parameters after item2 are optional and do not need to be specified
 *       and used.
 * @note Unlike the sorting.inc version, the array passed to the callback is not
 *       in mid-sorted state.
 *
 * @param array         Array handle
 * @param comparefunc   Callback function used for comparison
 * @param data          Extra data that is passed through to the callback
 * @param data_size     Size of extra data
 *
 * @noreturn
 * @error               If an invalid handle or an invalid callback is provided
 *                      an error will be thrown.
 */
native ArraySort(Array:array, const comparefunc[], data[]="", data_size=0);

/**
 * A faster version of ArraySort, the sorting algorithm then uses the custom
 * comparison function to sort the data.
 *
 * @note The advantage of this function is that the data of the elements being
 *       compared is directly passed to the function, instead of the item
 *       indexes that are passed by ArraySort. This removes the need for calling
 *       ArrayGet[Cell|String|Array] every time before being able to compare the
 *       elements.
 *
 * @note For Arrays with a cellsize of 1 (used for storing integers and floats),
 *       the function is called in the following manner:
 *
 * public MySortFunc(Array:array, elem1, elem2, const data[], data_size)
 *
 *   array           - Array handle in its current un-sorted state
 *   elem1, elem2    - Current element pair being compared
 *   data[]          - Extra data array passed to the sort func
 *   data_size       - Size of extra data
 *
 * @note For Arrays with a cellsize larger than 1 (used for storing arrays and
 *       strings), the function is called in the following manner:
 *
 * public MySortFunc(Array:array, elem1[], elem2[], const data[], data_size)
 *
 *   array               - Array handle in its current un-sorted state
 *   elem1[], elem2[]    - Current element pair being compared
 *   data[]              - Extra data array passed to the sort func
 *   data_size           - Size of extra data
 *
 *
 * @note The comparison function should return:
 *         -1 if elem1 should go before elem2
 *          0 if elem1 and elem2 are equal
 *          1 if elem1 should go after elem2
 *
 * @note All parameters after item2 are optional and do not need to be specified
 *       and used.
 * @note Unlike the sorting.inc version, the array passed to the callback is not
 *       in mid-sorted state.
 *
 * @param array         Array handle
 * @param comparefunc   Callback function used for comparison
 * @param data          Extra data that is passed through to the callback
 * @param data_size     Size of extra data
 *
 * @noreturn
 * @error               If an invalid handle or an invalid callback is provided
 *                      an error will be thrown.
 */
native ArraySortEx(Array:array, const comparefunc[], data[]="", data_size=0);

Nuoroda į komentarą
Dalintis per kitą puslapį

atsisiunciau per nauja compailery dabar viskas jau gerai :D

liko tik sitas erroras loguose 

 

addons: http://www86.zippyshare.com/v/ewralJzE/file.html

 

 

L 08/22/2016 - 22:48:10: [AMXX] Displaying debug trace (plugin "mission_flag.amxx", version "unknown")

L 08/22/2016 - 22:48:10: [AMXX] Run time error 10: native error (native "ms_create_objective")
L 08/22/2016 - 22:48:10: [AMXX]    [0] mission_flag.sma::plugin_precache (line 10)
L 08/22/2016 - 22:48:10: Invalid array handle provided (0)
L 08/22/2016 - 22:48:10: [AMXX] Displaying debug trace (plugin "missions.amxx", version "unknown")
L 08/22/2016 - 22:48:10: [AMXX] Run time error 10: native error (native "ArrayPushArray")
L 08/22/2016 - 22:48:10: [AMXX]    [0] missions.sma::native_create_mission_objective (line 533)
L 08/22/2016 - 22:48:10: Unhandled dynamic native error
L 08/22/2016 - 22:48:10: [AMXX] Displaying debug trace (plugin "mission_radio.amxx", version "unknown")
L 08/22/2016 - 22:48:10: [AMXX] Run time error 10: native error (native "ms_create_objective")
L 08/22/2016 - 22:48:10: [AMXX]    [0] mission_radio.sma::plugin_precache (line 10)
 
Redaguota , nario AwP SnIpEr
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

atsisiunciau per nauja compailery dabar viskas jau gerai :D

liko tik sitas erroras loguose 

 

addons: http://www86.zippyshare.com/v/ewralJzE/file.html

Tavo klaida yra plugins.ini faile:

mission_flag.amxx debug
mission_radio.amxx debug
missions.amxx debug

missions.amxx visados turi but pirmas pvz:

missions.amxx debug <---
mission_flag.amxx debug
mission_radio.amxx debug
mission_kazkas.amxx
mission_kazkas2.amxx

Pagrindinis pluginas turi but viršuje, jog native galėtu užregistruoti objectives.

Redaguota , nario TBagT
Nuoroda į komentarą
Dalintis per kitą puslapį

[/code]

Pagrindinis pluginas turi but viršuje, jog native galėtu užregistruoti objectives.

Pirma syki su tokia beda susiduriu :-D aciu pabandysiu

Supranti pagrindiniame plugine yra paleidžiama objective registracijos funkcija ir jei tu aukščiau įdėjai papildomus pluginus jie kreipiasi į funkciją kurios dar nėra.

  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2803 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.

Skelbimai


×
×
  • Sukurti naują...