Jump to content

script Business System


Jhnzrep

Recommended Posts

Ahojte,

 

Vytvoril som si pre svoj script business system. A kedze na officialnych samp forums nebol nato ziadny tutorial tak som ho tam dal. Mozno ste ho uz niektory videly, mozno nie. Ale teraz ho idem prelozit(Uz par rokov na Slovensku nebivam, tak my ospravdlnte gramatiku).

 

*Tento script je dost zloziti, a vela funkci nebudem vysvetlovat, ak ich nerozumiete tak mi moste napisat.*

 

Coo budeme potrebovat:

YCMD - od Y_Less
y_ini - od Y_Less
streamer - od Incognito
Vas vlastny registracni system

 

Ok, takze prve potrebuje par includov na vrchu scriput:

#include 
#include 

 

Teraz budeme potrebovat par definov:

#define SCM SendClientMessage //Setry cas.
#define BPATH "/Business/%i.ini"
//Tieto farby niesu povinne, ale ak ich nechcete tak musite zmenit vela veci v ostatnom scripte.
#define NEWBIE_COLOR        0x7DAEFFFF
#define TCOLOR_WHITE        0xFFFFFF00
#define COLOR_GRAD1         0xB4B5B7FF
#define COLOR_GRAD2         0xBFC0C2FF
#define COLOR_GRAD3         0xCBCCCEFF
#define COLOR_GRAD4         0xD8D8D8FF
#define COLOR_GRAD5         0xE3E3E3FF
#define COLOR_GRAD6         0xF0F0F0FF
#define COLOR_FADE1         0xE6E6E6E6
#define COLOR_FADE2         0xC8C8C8C8
#define COLOR_FADE3         0xAAAAAAAA
#define COLOR_FADE4         0x8C8C8C8C
#define COLOR_FADE5         0x6E6E6E6E
#define COLOR_PURPLE        0xC2A2DAAA
#define COLOR_RED           0xAA3333AA
#define COLOR_GREY          0xAFAFAFAA
#define COLOR_GREEN         0x33AA33AA
#define COLOR_BLACK         0x000001FF
#define COLOR_BLUE          0x007BD0FF
#define COLOR_LIGHTORANGE   0xFFA100FF
#define COLOR_FLASH         0xFF000080
#define COLOR_LIGHTRED      0xFF6347AA
#define COLOR_LIGHTBLUE     0x01FCFFC8
#define COLOR_LIGHTGREEN    0x9ACD32AA
#define COLOR_YELLOW        0xFFFF00AA
#define COLOR_LIGHTYELLOW   0xFFFF91FF
#define COLOR_YELLOW2       0xF5DEB3AA
#define COLOR_WHITE         0xFFFFFFAA

 

Teraz budeme potrebovat "new define":

new InsideBiz;[MAX_PLAYERS]

 

Teraz si vytvorime enum:

enum bInfo 
{
   bOwned,
   bPrice,
   bOwner[MAX_PLAYER_NAME],
   bType,
   bLocked,
   bMoney,
   Float:bEntranceX,
   Float:bEntranceY,
   Float:bEntranceZ,
   Float:bEntranceA,
   Float:bExitX,
   Float:bExitY,
   Float:bExitZ,
   Float:bExitA,
   bInt,
   bWorld,
   bInsideInt,
   bInsideWorld,
   bInsideIcon,
   bOutsideIcon,
   bName[128]
}
new BusinessInfo[200][bInfo];

 

Toto si musite dat pod vas registracny enum:

BizID//Vas registracni system to musi ulozit/nacitat..Nebudem vysvetlovat ako.

 

Teraz si toto musite dat pod OnGameModeInit():

new str[40];
   for(new idx = 1; idx < sizeof(BusinessInfo); idx++)//prejde to cez vsetky biznisi
   {
       format(str, sizeof(str), BPATH, idx);//formatuje cestu kde je biz savenuty.
       INI_ParseFile(str, "loadbiz_%s", .bExtra = true, .extra = idx );//Toto je velmi takze vysvetlit, proste si to tam dajte. Ked tomu nechapete pozrite si QWERov tutorial.
       BusinessInfo[idx][bOutsideIcon] = CreateDynamicPickup(1272, 1, BusinessInfo[idx][bEntranceX], BusinessInfo[idx][bEntranceY], BusinessInfo[idx][bEntranceZ], BusinessInfo[idx][bWorld]); //Vyroby to pickup kde bude biznis.
       BusinessInfo[idx][bInsideIcon] = CreateDynamicPickup(1272, 1, BusinessInfo[idx][bExitX], BusinessInfo[idx][bExitY], BusinessInfo[idx][bExitZ], BusinessInfo[idx][bInsideWorld]); //Vyroby to pickup v dnukajsku biznisu.
   }

 

Toto teraz vlozte pod OnGameModeExit():

for(new id = 1; id < sizeof(BusinessInfo); id++)//Zas to prejde cez vsetky biznisi.
   {
       if(BusinessInfo[id][bPrice] == 0) break;//Prestance loopovat cez biznisi ak  je cena 0(Takze biznis neexistuje)
       SaveBusiness(id);//Funkcia ulozenia.
   }

 

Teraz si vyrobime funkciu na ulozenie:

forward SaveBusiness(id);
public SaveBusiness(id)
{
   new file4[40];
   format(file4, sizeof(file4), BPATH, id);
   new INI:File = INI_Open(file4);
   INI_SetTag(File,"data");
   INI_WriteInt(File,"bOwned", BusinessInfo[id][bOwned]);
   INI_WriteInt(File,"bPrice", BusinessInfo[id][bPrice]);
   INI_WriteString(File,"bOwner", BusinessInfo[id][bOwner]);
   INI_WriteInt(File,"bType", BusinessInfo[id][bType]);
   INI_WriteInt(File,"bLocked", BusinessInfo[id][bLocked]);
   INI_WriteInt(File,"bMoney", BusinessInfo[id][bMoney]);
   INI_WriteFloat(File,"bEntranceX", BusinessInfo[id][bEntranceX]);
   INI_WriteFloat(File,"bEntranceY", BusinessInfo[id][bEntranceY]);
   INI_WriteFloat(File,"bEntranceZ", BusinessInfo[id][bEntranceZ]);
   INI_WriteFloat(File,"bEntranceA", BusinessInfo[id][bEntranceA]);
   INI_WriteFloat(File,"bExitX", BusinessInfo[id][bExitX]);
   INI_WriteFloat(File,"bExitY", BusinessInfo[id][bExitY]);
   INI_WriteFloat(File,"bExitZ", BusinessInfo[id][bExitZ]);
   INI_WriteFloat(File,"bExitA", BusinessInfo[id][bExitA]);
   INI_WriteInt(File,"bInt", BusinessInfo[id][bInt]);
   INI_WriteInt(File,"bWorld", BusinessInfo[id][bWorld]);
   INI_WriteInt(File,"bInsideInt", BusinessInfo[id][bInsideInt]);
   INI_WriteInt(File,"bInsideWorld", BusinessInfo[id][bInsideWorld]);
   INI_WriteString(File,"bName", BusinessInfo[id][bName]);
   INI_Close(File);
   return 1;
}

 

Teraz budeme potrebovat funkciu na nacitanie:

forward loadbiz_data(idx, name[], value[]);
public loadbiz_data(idx, name[], value[])
{
   INI_Int("bOwned", BusinessInfo[idx][bOwned]);
   INI_Int("bPrice", BusinessInfo[idx][bPrice]);
   INI_String("bOwner", BusinessInfo[idx][bOwner], 24);
   INI_Int("bType", BusinessInfo[idx][bType]);
   INI_Int("bLocked", BusinessInfo[idx][bLocked]);
   INI_Int("bMoney", BusinessInfo[idx][bMoney]);
   INI_Float("bEntranceX", BusinessInfo[idx][bEntranceX]);
   INI_Float("bEntranceY", BusinessInfo[idx][bEntranceY]);
   INI_Float("bEntranceZ", BusinessInfo[idx][bEntranceZ]);
   INI_Float("bEntranceA", BusinessInfo[idx][bEntranceA]);
   INI_Float("bExitX", BusinessInfo[idx][bExitX]);
   INI_Float("bExitY", BusinessInfo[idx][bExitY]);
   INI_Float("bExitZ", BusinessInfo[idx][bExitZ]);
   INI_Float("bExitA", BusinessInfo[idx][bExitA]);
   INI_Int("bInt", BusinessInfo[idx][bInt]);
   INI_Int("bWorld", BusinessInfo[idx][bWorld]);
   INI_Int("bInsideInt", BusinessInfo[idx][bInsideInt]);
   INI_Int("bInsideWorld", BusinessInfo[idx][bInsideWorld]);
   INI_String("bName", BusinessInfo[idx][bName], 128);
   return 1;
}

 

Teraz si vytvorime prvy command:

YCMD:createbiz(playerid, params[])
{
   if(!IsPlayerAdmin(playerid)) return SCM(playerid, COLOR_GREY, "Niesi admin!");//Skontroluje ci je hrac RCON admin - zmente si to na svoj vlastny admin system.

   new price, level, id, int, world, string[128], Float:Xi, Float:Yi, Float:Zi, inti;//new definy ktore budeme potrebovat
   if(sscanf(params, "dddfff", price, level, inti, Xi, Yi, Zi)) return SendClientMessage(playerid, COLOR_GREY, "YCMD: /createbiz [price] [type] [interior] [X] [Y] [Z]");//d = integer, f = float

   if(level < 0 || level > 4) return SendClientMessage(playerid, COLOR_GREY, "YCMD: Typy biznisu su iba 1 - 4");//

   if(price < 10000) return SendClientMessage(playerid, COLOR_GREY, "YCMD: Cena nemoze ist pod 10000");

   for(new h = 1;h < sizeof(BusinessInfo);h++)//Loops through all the businesses
   {
       if(BusinessInfo[h][bPrice] == 0)//Skontroluje ci je cena 0
       {
           id = h;
           break;//Loop zastane ak ano
       }
   }
   new Float:X,Float:Y,Float:Z,Float:A;//Dalsie definy
   GetPlayerPos(playerid, X, Y, Z);//Najde vasu poziciu, a savene ju do floatov.
   GetPlayerFacingAngle(playerid, A);//
   int = GetPlayerInterior(playerid);//Najde vas interior, a ulozi ho do integera
   world = GetPlayerVirtualWorld(playerid);//Najde vas virtualworld a ulozi ho do intergera.
   BusinessInfo[id][bInsideInt] = inti;
   BusinessInfo[id][bExitX] = Xi;
   BusinessInfo[id][bExitY] = Yi;
   BusinessInfo[id][bExitZ] = Zi;

   BusinessInfo[id][bOwned] = 0;
   BusinessInfo[id][bPrice] = price;
   BusinessInfo[id][bType] = level;
   BusinessInfo[id][bEntranceX] = X;
   BusinessInfo[id][bEntranceY] = Y;
   BusinessInfo[id][bEntranceZ] = Z;
   BusinessInfo[id][bEntranceA] = A;
   BusinessInfo[id][bLocked] = 1;

   BusinessInfo[id][bInt] =int;
   BusinessInfo[id][bWorld] =world;
   BusinessInfo[id][bInsideWorld] =id;

   format(string, sizeof(string), "None");
   strmid(BusinessInfo[id][bName], string, 0, strlen(string), 255);

   if(BusinessInfo[id][bOutsideIcon]) DestroyDynamicPickup(BusinessInfo[id][bOutsideIcon]);
   if(BusinessInfo[id][bInsideIcon]) DestroyDynamicPickup(BusinessInfo[id][bInsideIcon]);
   BusinessInfo[id][bOutsideIcon] = CreateDynamicPickup(1272, 1, BusinessInfo[id][bEntranceX], BusinessInfo[id][bEntranceY], BusinessInfo[id][bEntranceZ], BusinessInfo[id][bWorld]);//Creates a pickup at your location
   BusinessInfo[id][bInsideIcon] = CreateDynamicPickup(1272, 1, BusinessInfo[id][bExitX], BusinessInfo[id][bExitY], BusinessInfo[id][bExitZ], BusinessInfo[id][bInsideWorld]);//Vyroby pickup na vasej pozici.
   new file4[40];
   format(file4, sizeof(file4), BPATH, id);
   new INI:File = INI_Open(file4);
   INI_SetTag(File,"data");
   INI_WriteInt(File,"bOwned", BusinessInfo[id][bOwned]);
   INI_WriteInt(File,"bPrice", BusinessInfo[id][bPrice]);
   INI_WriteString(File,"bOwner", BusinessInfo[id][bOwner]);
   INI_WriteInt(File,"bType", BusinessInfo[id][bType]);
   INI_WriteInt(File,"bLocked", BusinessInfo[id][bLocked]);
   INI_WriteInt(File,"bMoney", BusinessInfo[id][bMoney]);
   INI_WriteFloat(File,"bEntranceX", BusinessInfo[id][bEntranceX]);
   INI_WriteFloat(File,"bEntranceY", BusinessInfo[id][bEntranceY]);
   INI_WriteFloat(File,"bEntranceZ", BusinessInfo[id][bEntranceZ]);
   INI_WriteFloat(File,"bEntranceA", BusinessInfo[id][bEntranceA]);
   INI_WriteFloat(File,"bExitX", BusinessInfo[id][bExitX]);
   INI_WriteFloat(File,"bExitY", BusinessInfo[id][bExitY]);
   INI_WriteFloat(File,"bExitZ", BusinessInfo[id][bExitZ]);
   INI_WriteFloat(File,"bExitA", BusinessInfo[id][bExitA]);
   INI_WriteInt(File,"bInt", BusinessInfo[id][bInt]);
   INI_WriteInt(File,"bWorld", BusinessInfo[id][bWorld]);
   INI_WriteInt(File,"bInsideInt", BusinessInfo[id][bInsideInt]);
   INI_WriteInt(File,"bInsideWorld", BusinessInfo[id][bInsideWorld]);
   INI_WriteString(File,"bName", BusinessInfo[id][bName]);
   INI_Close(File);
   return 1;
}

 

Teraz si vyrobime dalsi command, /deletebiz:

YCMD:deletebiz(playerid, params[])
{
   if(!IsPlayerAdmin(playerid)) return 1; // Skontroluje ci ste RCON admin

   new id;

   if(sscanf(params, "d", id)) return SendClientMessage(playerid, COLOR_GREY, "YCMD: /deletebiz [id]");
   if(BusinessInfo[id][bOwned] == 1) return SCM(playerid, COLOR_GREY, "This biz is owned.");//Skontroluje cii niekto vlastni tento biznis, ak ano, tak ho nedovoli predat.
       //Vymaze vsetky informacie ktore boli v enumoch
   BusinessInfo[id][bOwned] = 0;
   BusinessInfo[id][bPrice] = 0;
   BusinessInfo[id][bOwner] = 0;
   BusinessInfo[id][bType] = 0;
   BusinessInfo[id][bLocked] = 0;
   BusinessInfo[id][bName] = 0;
   BusinessInfo[id][bMoney] = 0;
   BusinessInfo[id][bEntranceX] = 0;
   BusinessInfo[id][bEntranceY] = 0;
   BusinessInfo[id][bEntranceZ] = 0;
   BusinessInfo[id][bEntranceA] = 0;
   BusinessInfo[id][bExitX] = 0;
   BusinessInfo[id][bExitY] = 0;
   BusinessInfo[id][bExitZ] = 0;
   BusinessInfo[id][bExitA] = 0;
   BusinessInfo[id][bInt] = 0;
   BusinessInfo[id][bWorld] = 0;

   if(BusinessInfo[id][bOutsideIcon]) DestroyDynamicPickup(BusinessInfo[id][bOutsideIcon]);//Vymaze pickup

   new string[128];

   format(string, sizeof(string), BPATH, id);
   fremove(string);//Vymaze file kde bol biz ulozeny.
   return 1;
}

 

Teraz budeme potrebovat OnPlayerPickupDynamicPickup funkciu aby nam zobrazilo informacie o biznise:

public OnPlayerPickUpDynamicPickup(playerid, pickupid)
{
   new string[256];
   for(new b = 1;b < sizeof(BusinessInfo);b++)// Prejde cez vsetky biznisi
   {
       if(pickupid == BusinessInfo[b][bOutsideIcon])//Skontroluje cii stojite na biznis pickupe
       {
          if(BusinessInfo[b][bOwned] == 0)//Skontroluje ze cii niekto tento biznis vlastni.
          {
               format(string, sizeof(string), "~g~Meno:~w~%s~n~~w~Tento business je ~g~ napredaj~n~~r~Cena:~g~%i~n~BizType:~w~%s~n~~g~BizID:~w~%i", BusinessInfo[b][bName], BusinessInfo[b][bPrice], BusinessType(, ;
               GameTextForPlayer(playerid, string, 3000, 3);
          }
          if(BusinessInfo[b][bOwned] == 1)//Checks if it owned.
          {
               format(string, sizeof(string), "~g~Meno:~w~%s~n~~g~Vlastnik:~w~%s~n~~g~BizType:~w~%s ~n~~g~BizID:~w~%i", BusinessInfo[b][bName], BusinessInfo[b][bOwner], BusinessType(, ;
               GameTextForPlayer(playerid, string, 3000, 3);
          }
       }
   }
   return 1;
}

 

Teraz si vyrobime stock ktory nam ukaze aky typ biznisu to je:

stock BusinessType(b)// creates a stock.
{
   new string[30];
   switch(BusinessInfo[b][bType])
   {
       case 4: string = "Potraviny";
       case 3: string = "Club";
       case 2: string = "Bar";
       case 1: string = "Oblecenie";
   }
   return string;
}

 

Teraz si vyrobime funkciu ktora skontroluje ci sme blizko biznisu:

IsPlayerNearBizEnt(playerid)
{
   for(new b = 1; b < sizeof(BusinessInfo); b++)
   {
       if(IsPlayerInRangeOfPoint(playerid, 2.0, BusinessInfo[b][bEntranceX], BusinessInfo[b][bEntranceY], BusinessInfo[b][bEntranceZ])) return b;
   }
   return -1;
}

 

Command na kupenie biznisu:

YCMD:buybiz(playerid, params[])
{
   if(gPlayerLoggedIn[playerid] == 0) return 1;

new id = IsPlayerNearBizEnt(playerid);

if(id == -1 || id == 0) return SendClientMessage(playerid, COLOR_GREY, "You are not near a biz");

if(BusinessInfo[id][bOwned] != 0 || BusinessInfo[id][bPrice] == 0) return SendClientMessage(playerid, COLOR_GREY, "This biz is not for sale.");

if(PlayerInfo[playerid][bizID] != 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You already own a biz.");

if(PlayerInfo[playerid][Money] < BusinessInfo[id][bPrice]) return SendClientMessage(playerid, COLOR_LIGHTRED, "Sorry, you can not afford this biz.");

PlayerInfo[playerid][bizID] = id;
PlayerInfo[playerid][Money] -= BusinessInfo[id][bPrice];
GivePlayerMoney(playerid, -BusinessInfo[id][bPrice]);

BusinessInfo[id][bLocked] = 0;
BusinessInfo[id][bOwned] = 1;
BusinessInfo[id][bOwner] = RemoveUnderScore(playerid);

SendClientMessage(playerid, COLOR_YELLOW, "Congratulations on your new biz! Use /bizhelp to get help, or /ask!");
return 1;
}

 

Command na predanie biznisu:

YCMD:sellbiz(playerid, params[])
{
new id = PlayerInfo[playerid][bizID];
if(PlayerInfo[playerid][bizID] == 0) return SCM(playerid, COLOR_GREY, "You don't own a biz!");
BusinessInfo[id][bOwned] = 0;
BusinessInfo[id][bOwner] = 0;
BusinessInfo[id][bLocked] = 1;
PlayerInfo[playerid][Money] = BusinessInfo[id][bPrice];
PlayerInfo[playerid][bizID] = 0;
SCM(playerid, COLOR_YELLOW, "Business sold!");
return 1;
}

 

Command na zmenu mena biznisu:

YCMD:bizsetname(playerid, params[])
{
new name[128];
if(sscanf(params, "s[128]", name)) return SCM(playerid, COLOR_GREY, "/bizsetname [name]");
if(PlayerInfo[playerid][bizID] == 0) return SCM(playerid, COLOR_GREY, "You don't own a biz!");
BusinessInfo[PlayerInfo[playerid][bizID]][bName] = name;
SCM(playerid, COLOR_YELLOW, "Business name changed!");
return 1;
}

 

Teraz command na zamknutie biznisu:

YCMD:lockbiz(playerid, params[])
{
   new id = IsPlayerNearBizEnt(playerid);
   if(id != PlayerInfo[playerid][bizID]) return SCM(playerid, COLOR_GREY, "Toto neni vas biznis!");
   if(BusinessInfo[id][bLocked] == 1)//Ak je zamknuty
   {
       BusinessInfo[id][bLocked] = 0;
       GameTextForPlayer(playerid, "Biz ~g~odomnkunty!", 3000, 3);
   }
   else
   {
       BusinessInfo[id][bLocked] = 1;
       GameTextForPlayer(playerid, "Biz ~r~zamknuty!", 3000, 3);
   }
   return 1;
}

 

Command na vchod do biznisu:

YCMD:enter(playerid, params[])
{
   for(new b = 1; b < sizeof(BusinessInfo); b++)//Loopne cez vsetky biznisi
   {
       if(IsPlayerInRangeOfPoint(playerid, 1.0, BusinessInfo[b][bEntranceX], BusinessInfo[b][bEntranceY], BusinessInfo[b][bEntranceZ]))//
       {
           if(BusinessInfo[b][bLocked] == 1) return SendClientMessage(playerid, COLOR_GREY, "Tento biznis je zamknuty!");//Skontroluje ci je biznis zamknuty
           SetPlayerPos(playerid, BusinessInfo[b][bExitX], BusinessInfo[b][bExitY], BusinessInfo[b][bExitZ]);
           SetPlayerFacingAngle(playerid, BusinessInfo[b][bExitA]);
           SetPlayerInterior(playerid, BusinessInfo[b][bInsideInt]);
           SetPlayerVirtualWorld(playerid, BusinessInfo[b][bInsideWorld]);
           InsideBiz[playerid] = b;
           return 1;
       }
       if(IsPlayerInRangeOfPoint(playerid, 2.0, BusinessInfo[b][bExitX], BusinessInfo[b][bExitY], BusinessInfo[b][bExitZ]) && GetPlayerVirtualWorld(playerid) == BusinessInfo[b][bInsideWorld])//Skontroluje cii je hrac blizko vychodu
       {
           SetPlayerPos(playerid, BusinessInfo[b][bEntranceX], BusinessInfo[b][bEntranceY], BusinessInfo[b][bEntranceZ]);
           SetPlayerFacingAngle(playerid, BusinessInfo[b][bEntranceA]);
           SetPlayerInterior(playerid, BusinessInfo[b][bInt]);
           SetPlayerVirtualWorld(playerid, BusinessInfo[b][bWorld]);
           InsideBiz[playerid] = 0;
           return 1;
       }
   }
   return 1;
}

 

No, a ked uz vsetko mame, tak tu je ukazka coo sa stakymto business system da urobit:

YCMD:clothes(playerid, params[])
{
   new skin;
   if(sscanf(params, "i", skin)) return SCM(playerid, COLOR_GREY, "YCMD:/clothes [skinid]");
   if(PlayerInfo[playerid][Money] < 100) return SCM(playerid, COLOR_GREY, "Potrebujes aspon 100$");
   if(BusinessInfo[insideBiz[playerid]][bType] != 1) return SCM(playerid, COLOR_GREY, Musis byt v obchode coo predava oblecenie.");
   if(1 > skin ||  299 < skin || skin == 288 || skin == 287 || skin == 286 || skin == 285 || skin == 284 || skin == 283 || skin == 282 || skin == 281 || skin == 280 || skin == 279 || skin == 278 || skin == 277 || skin == 276 || skin == 275 || skin == 274) return SCM(playerid, COLOR_GREY, "Invalid skin ID!");
   SetPlayerSkin(playerid, skin);
   PlayerInfo[playerid][skin] = skin;
   GivePlayerMoney(playerid, -100);
   BusinessInfo[insideBiz[playerid]][bMoney] += 100;
   return 1;
}

 

Tento command zobere 100, da ho biznisu..A zmeni ti skin.

 

Aby vam tento script fungoval v scriptfiles si musite vyrobit zlozku "Business".

 

*Ako uz som spominal, tento script neni moc pre zaciatocnikou. Ak potrebujete lepsie vysvetlenie nejakej funkci, povedzte mi.

 

Mozete ma kontaktovat tu, alebo na sa-mp.com forums. Pod tymto istym menom.

 

Hodnote/komentujte.

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

Nice 10/10 využijem :d gramatika Level Vychodnar v anglicku :d :D

 

No jo, ja som s polovice American, tak niekedy byvam tu a niekedy na Slovensku. Moj prvy jazyk bol Slovencina..Ale dlho tam uz nezijem, a este ked to spojim so svojou disgraphiou tak koniec.

 

(A ano ked som na Slovensku, zijem na vychode :p )

 

EDIT:Rozmyslam ze ci tu mam dat aj svoj dynamicky Faction/Family system. Ale neviem ci to moc Cesy/Slovaci vyuziju ked ze som este nevidel jeden normalny CZ/SK RP. Coo si myslis?

Link to comment
Share on other sites

Nooo žiadny RP server nemáme no... (bohužiaľ alebo vlastne vďakabohu)

 

No ja by som chcel vidiet nejaky SK/CZ Roleplay...Vecina ludi na SK/CZ si myslia ze Realna Zeme je RP..Co my pride dost smiesne.

Link to comment
Share on other sites

  • Administrátor
Nechci rejpat ale mám takovej divnej dojem že jsem to někde už viděl....

453px-You_dont_say.png

Mozno ste ho uz niektory videly, mozno nie.

http://forum.sa-mp.com/showthread.php?t=349466

No jóóóó tak čtu každý 8 slovo :d

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...