Üzenetek megjelenítése

Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.


Üzenetek - EpicSlash

Oldalak: [1]
1
SA-MP: Szerverfejlesztés / Függvény: PozDetector
« Dátum: 2013. December 09. - 21:30:12 »
Sziasztok!
A saját szkriptembe készítettem ezt az egyszerû kis függvényt.
Hasonló az IsPlayerInRangeOfPoint -hoz, de ez csekkolja az interiort és a VW-t is.
Használat:
 
if(!strcmp(\"/enter\", cmd))
{
       //PozDetector(playerid, SUGÁR, X, Y, Z, Interior, VirtualWorld);      
       if(PozDetector(playerid, 10, 2745.453, -456.564, 14.563, 0, 5))
       {
             SetPlayerPos(playerid, 345, 6776, 32);
             SetPlayerVirtualWorld(playerid, 6);
             SetPlayerInterior(playerid, 3);
             SendClientMessage(playerid, 0xFFFFFFFF, \"Bementél a házba!\");
        return 1;
        }
        else
        {
            SendClientMessage(playerid, 0xFFFFFFFF, \"Nem vagy a ház bejáratánál!\");
        }  
 
return 1;
}

 
Függvény:
 
#define fuggveny%0(%1) forward%0(%1); public%0(%1)     // Ez összefonja a Public-ot és a Forward-ot.   Credit: Régi See szkript (?Rolee)
fuggveny PozDetector(playerid, Float:pdR, Float:pdX, Float:pdY, Float:pdZ, Float:pdI, Float:pdW)
{
   new i = GetPlayerInterior(playerid), w = GetPlayerVirtualWorld(playerid);
   if(IsPlayerInRangeOfPoint(playerid, pdR, pdX, pdY, pdZ) && pdI == i && pdW == w)
   {
   return 1;
   }
   return 0;
}

2
Segítségkérés / Kisebb kérdések
« Dátum: 2013. November 17. - 12:04:48 »
Hali! Szeretném átalakítani a CreateDynamic3DTextLabel fgv.-t, úgy hogy 5 részt kiszedek belõle.
Próbáltam #define -vel és stock-al is megoldani, de egyik sem mûködött. Valaki tudna segíteni?
 
#define Dynamic3DText(%0, %1, %2, %3, %4, %5, %6, %7) \\
CreateDynamic3DTextLabel(%0, 0xFFFFFFFF, %1, %2, %3, %6, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, %7, %4, %5, -1, 100)

3
SA-MP: Szerverfejlesztés / ATM robbery system
« Dátum: 2013. November 16. - 17:52:04 »
Tetszik!+
De a fogalmazásod, meg a helyesírási hibáid... Függvény*, nem pedig föggvény.

4
SA-MP: Szerverfejlesztés / Bejárat rendszer [100%] [MySQL]
« Dátum: 2013. November 15. - 20:50:08 »
Üdvözlök mindenkit!
Lejjebb a saját készítésû Bejárat Rendszeremet mutatom be. Néhány függvény-t a régi See-modból vettem. A rendszer Bug-mentes. Ha mégis gond lenne vele, írjatok. Mivel hosszú szkript, elõfordulhat, hogy valamit kihagytam. Ha ez elõfordul, kérlek jelezd nekem.
Tulajdonságai:
  -Egyszerû paranccsal készíthetõ IG.
  -Mindegyik bejáratnak hosszú neve lehet.
  -MySQL rendszerbe menti õket.
  -Szép 3Dtextlabel, PickUp, GameText.
  -Egy gombnyomásra bedob.
  -Streamer kell hozzá, azaz a VW-k, és az INT-ek teljesen elkülöníthetõk egymástól.
  -BetoltBejaratok(); függvényt használhatod akárhányszor, szépen újratölti a MySQl-bõl az adatokat.
Kép:
http://kepfeltoltes.hu/131115/sa-mp-904_www.kepfeltoltes.hu_.png
.sql fájl letöltése:
https://mega.co.nz/#!9s1EVZLK!VTcMZil6fmezCH8NGVmDTVmhpKNrj6fn5XW3AyhWTkQ
Maga a szkript:
Változók, enumok:
 

#define DIALOG_BEJARAT 9876
#define MAX_BEJARATOK 100
enum bejaratok_adatai
{
       Float:kint_x,
       Float:kint_y,
       Float:kint_z,
       kint_i,
       kint_w,
       Float:bent_x,
       Float:bent_y,
       Float:bent_z,
       bent_i,
       bent_w,
       b_van,
       b_id
};
new Bejaratok[MAX_BEJARATOK][bejaratok_adatai];
new BejaratokPickup[sizeof(Bejaratok)][2];
new Text3D:Bejaratok3D[sizeof(Bejaratok)][2];
new BejaratokNeve[sizeof(Bejaratok)][1];
new bool:BejaratKeszito[MAX_PLAYERS] = false;
enum BejaratKeszitoAdatok
{
    Float:b_poz_x,
    Float:b_poz_y,
    Float:b_poz_z,
    b_poz_i,
    b_poz_w
};
new BejaratKeszitoPoz[MAX_PLAYERS][bejaratKeszitoAdatok];

 
OnPlayerConnect és OnGameModeInit
 
public OnPlayerConnect(playerid)
{   
ResetPlayerBejaratKeszito(playerid);
return 1;
}
public OnGameModeInit()
{
 BetoltBejaratok();
return 1;
}

 
Fõ Parancs: /bejarat
 
CMD:bejarat(playerid, params[])
{
  if(BejaratKeszito[playerid] == false)
  {
   ShowPlayerDialog(playerid, DIALOG_BEJARAT, DIALOG_STYLE_MSGBOX, \"Bejárat készítõ\", \"Helló! Ha szeretnél ide egy bejáratot, akkor kattints a \'Mehet\' gombra.\", \"Mehet\", \"Mégse\");
  return 1;
  }
     if(BejaratKeszito[playerid] == true)
  {
   new b_neve[30], BejaratID = UresBejaratHely();
   if(BejaratID == -1)
           {
               MSG(playerid, \"Nem rakható le több bejárat!\");
               return 1;
        }
           if(sscanf(params, \"s[30]\", b_neve)) return MSG(playerid, \"Használat: /bejarat [ Bejárat neve ]\");
           else if(3 >= strlen(b_neve)) return MSG(playerid, \"A névnek 3 - 30 karakterig terjedõnek kell lennie!\");
        else
        {
               strmid(BejaratokNeve[bejaratID], b_neve, 0, strlen(b_neve), strlen(b_neve)+1);
        }
    Bejaratok[bejaratID][b_van] = 1;
        new adatok[500], adatok_eleje[150], str_be[128], str_ki[128];
           new Float:x, Float:y, Float:z, i = GetPlayerInterior(playerid), w = GetPlayerVirtualWorld(playerid);
   GetPlayerPos(playerid, x, y, z);
    Bejaratok[bejaratID][kint_x] = BejaratKeszitoPoz[playerid][b_poz_x];
    Bejaratok[bejaratID][kint_y] = BejaratKeszitoPoz[playerid][b_poz_y];
    Bejaratok[bejaratID][kint_z] = BejaratKeszitoPoz[playerid][b_poz_z];
    Bejaratok[bejaratID][kint_i] = BejaratKeszitoPoz[playerid][b_poz_i];
    Bejaratok[bejaratID][kint_w] = BejaratKeszitoPoz[playerid][b_poz_w];
    Bejaratok[bejaratID][bent_x] = x;
    Bejaratok[bejaratID][bent_y] = y;
    Bejaratok[bejaratID][bent_z] = z;
    Bejaratok[bejaratID][bent_i] = i;
    Bejaratok[bejaratID][bent_w] = w;
    Bejaratok[bejaratID][b_id] = BejaratID;
               BejaratokPickup[bejaratID][0] = CreateDynamicPickup(
           1318,
           23,
           Bejaratok[bejaratID][kint_x],
           Bejaratok[bejaratID][kint_y],
           Bejaratok[bejaratID][kint_z],
           Bejaratok[bejaratID][kint_w],
           Bejaratok[bejaratID][kint_i],
           -1,
           100
      );
      BejaratokPickup[bejaratID][1] = CreateDynamicPickup(
           1318,
           23,
           Bejaratok[bejaratID][bent_x],
           Bejaratok[bejaratID][bent_y],
           Bejaratok[bejaratID][bent_z],
           Bejaratok[bejaratID][bent_w],
           Bejaratok[bejaratID][bent_i],
           -1,
           100
      );
               format(str_be, sizeof(str_be), \"{339933}[bejárat]\\n{33cc66}%s\", BejaratokNeve[bejaratID]);
               format(str_ki, sizeof(str_ki), \"{339933}[Kijárat]\\n{33cc66}%s\", BejaratokNeve[bejaratID]);
               Bejaratok3D[bejaratID][0] = CreateDynamic3DTextLabel(
         str_be,
         -1,
         Bejaratok[bejaratID][kint_x],
                   Bejaratok[bejaratID][kint_y],
                   Bejaratok[bejaratID][kint_z]+0.7,
         30,
         INVALID_PLAYER_ID,
         INVALID_VEHICLE_ID,
         1,
         Bejaratok[bejaratID][kint_w],
         Bejaratok[bejaratID][kint_i],
         -1,
         100
      );
      Bejaratok3D[bejaratID][1] = CreateDynamic3DTextLabel(
         str_ki,
         -1,
         Bejaratok[bejaratID][bent_x],
                   Bejaratok[bejaratID][bent_y],
                   Bejaratok[bejaratID][bent_z]+0.7,
         30,
         INVALID_PLAYER_ID,
         INVALID_VEHICLE_ID,
         1,
         Bejaratok[bejaratID][bent_w],
         Bejaratok[bejaratID][bent_i],
         -1,
         100
      );
 
   adatok_eleje = \"INSERT INTO `bejaratok` (`id`,`kint_x`,`kint_y`,`kint_z`,`kint_i`,`kint_w`,`bent_x`,`bent_y`,`bent_z`,`bent_i`,`bent_w`,`nev`) VALUES \";
           format(adatok,sizeof(adatok),\"%s(\'%i\',\'%f\',\'%f\',\'%f\',\'%i\',\'%i\',\'%f\',\'%f\',\'%f\',\'%i\',\'%i\',\'%s\')\",\\
           adatok_eleje,
         Bejaratok[bejaratID][b_id],
   Bejaratok[bejaratID][kint_x],
   Bejaratok[bejaratID][kint_y],
   Bejaratok[bejaratID][kint_z],
   Bejaratok[bejaratID][kint_i],
   Bejaratok[bejaratID][kint_w],
   Bejaratok[bejaratID][bent_x],
   Bejaratok[bejaratID][bent_y],
   Bejaratok[bejaratID][bent_z],
   Bejaratok[bejaratID][bent_i],
   Bejaratok[bejaratID][bent_w],
   BejaratokNeve[bejaratID]);
         mysql_query(adatok);
           FMSG(playerid, \"Új bejárat lerakva! (#%d)\", BejaratID);
           BejaratKeszito[playerid] = false;
      return 1;
      }
   return 1;
}

 
Egyéb parancsok:  /bejaratdel (Bejárat törlése) /bejaratgo (Teleport bejárathoz) /bejaratclosest (Legközelebbi bejárat ID-je.)
 
CMD:bejaratdel(playerid, params[])
{
   new delid;
   if(sscanf(params, \"i\", delid)) return MSG(playerid, \"Használat: /bejaratdel [ Bejárat ID ]\");
   else
   {
                    if(BejaratokPickup[delid][0]) DestroyDynamicPickup(BejaratokPickup[delid][0]);
                       if(BejaratokPickup[delid][1]) DestroyDynamicPickup(BejaratokPickup[delid][1]);
                       if(Bejaratok3D[delid][0]) DestroyDynamic3DTextLabel(Bejaratok3D[delid][0]);
                       if(Bejaratok3D[delid][1]) DestroyDynamic3DTextLabel(Bejaratok3D[delid][1]);
                       BejaratokNeve[delid] = \"\";
                       Bejaratok[delid][kint_x] = 0;
                       Bejaratok[delid][kint_y] = 0;
                       Bejaratok[delid][kint_z] = 0;
                       Bejaratok[delid][kint_i] = 0;
                       Bejaratok[delid][kint_w] = 0;
                       Bejaratok[delid][bent_x] = 0;
                       Bejaratok[delid][bent_y] = 0;
                       Bejaratok[delid][bent_z] = 0;
                       Bejaratok[delid][bent_i] = 0;
                       Bejaratok[delid][bent_w] = 0;
                       Bejaratok[delid][b_id] = 0;
                       Bejaratok[delid][b_van] = 0;
                       new string[64];
                       format(string, sizeof(string), \"DELETE FROM `samp`.`bejaratok` WHERE `bejaratok`.`id` = %d\", delid);
                       mysql_query(string);
           }
return 1;
}
CMD:bejaratclosest(playerid, params[])
{
 new bejaratid = GetClosestBejarat(playerid);
 new Float:distance = GetDistanceToBejarat(playerid, bejaratid);
 FMSG(playerid, \"Legközelebbi bejárat: ID(#%d)  Távolság: %.2f\", bejaratid, distance);
return 1;
}
CMD:bejaratgo(playerid, params[])
{
 new iden;
 if(sscanf(params, \"i\", iden)) return MSG(playerid, \"/gobejarat [id]\");
 else
 {
   if(Bejaratok[iden][b_van] == 0) return MSG(playerid, \"Nincs ilyen bejárat.\");
   SetPlayerVirtualWorld(playerid, Bejaratok[iden][kint_w]);
   SetPlayerInterior(playerid, Bejaratok[iden][kint_i]);
       SetPlayerPos(playerid, Bejaratok[iden][kint_x], Bejaratok[iden][kint_y], Bejaratok[iden][kint_z]);
 }
return 1;
}

 

public OnPlayerPickUpPickup(playerid, pickupid)
{
   for(new i = 0;i < sizeof(BejaratokPickup);i++)
{
if(
   IsPlayerInRangeOfPoint(playerid,2,Bejaratok[kint_x],Bejaratok[kint_y],Bejaratok[kint_z])
   &&
   GetPlayerVirtualWorld(playerid) == Bejaratok[kint_w]
)
{
         GameTextForPlayer(playerid, \"~u~ ~w~Belépéshez: ~g~~h~ALT ~u~\", 5000, 5);
   return 1;
}
}
for(new i = 0;i < sizeof(BejaratokPickup);i++)
{
if(
   IsPlayerInRangeOfPoint(playerid,2,Bejaratok[bent_x],Bejaratok[bent_y],Bejaratok[bent_z])
   &&
   GetPlayerVirtualWorld(playerid) == Bejaratok[bent_w]
)
{
           GameTextForPlayer(playerid, \"~d~ ~w~Kilépéshez: ~g~~h~ALT ~d~\", 5000, 5);
   return 1;
}
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{     
  if(PRESSED(KEY_WALK))
  {
        for(new i = 0;i < sizeof(BejaratokPickup);i++)
   {
   if(
      IsPlayerInRangeOfPoint(playerid,2,Bejaratok[kint_x],Bejaratok[kint_y],Bejaratok[kint_z])
      &&
      GetPlayerVirtualWorld(playerid) == Bejaratok[kint_w]
      &&
      GetPlayerInterior(playerid) == Bejaratok[kint_i]
      )
         {
            SetPlayerPos(playerid,Bejaratok[bent_x],Bejaratok[bent_y],Bejaratok[bent_z]);
            SetPlayerInterior(playerid,Bejaratok[bent_i]);
            SetPlayerVirtualWorld(playerid,Bejaratok[bent_w]);
            SetCameraBehindPlayer(playerid);
            return 1;
         }
      }
               for(new i = 0;i < sizeof(BejaratokPickup);i++)
      {
         if(
               IsPlayerInRangeOfPoint(playerid,2,Bejaratok[bent_x],Bejaratok[bent_y],Bejaratok[bent_z])
               &&
               GetPlayerVirtualWorld(playerid) == Bejaratok[bent_w]
               &&
               GetPlayerInterior(playerid) == Bejaratok[bent_i]
           )
         {
            SetPlayerPos(playerid,Bejaratok[kint_x],Bejaratok[kint_y],Bejaratok[kint_z]);
            SetPlayerInterior(playerid,Bejaratok[kint_i]);
            SetPlayerVirtualWorld(playerid,Bejaratok[kint_w]);
            return 1;
         }
      }
  return 1;
  }
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   if(dialogid == DIALOG_BEJARAT)
   {
 if(response)
 {
       new Float:pozi_x, Float:pozi_y, Float:pozi_z, pozi_i, pozi_w;
   GetPlayerPos(playerid, pozi_x, pozi_y, pozi_z);
   pozi_i = GetPlayerInterior(playerid);
   pozi_w = GetPlayerVirtualWorld(playerid);
   BejaratKeszitoPoz[playerid][b_poz_x] = pozi_x;
   BejaratKeszitoPoz[playerid][b_poz_y] = pozi_y;
   BejaratKeszitoPoz[playerid][b_poz_z] = pozi_z;
   BejaratKeszitoPoz[playerid][b_poz_i] = pozi_i;
   BejaratKeszitoPoz[playerid][b_poz_w] = pozi_w;
   BejaratKeszito[playerid] = true;
   MSG(playerid, \"Ez kész van. Most menj el oda, ahova a kijáratot szeretnéd, majd írd be ezt: /bejarat [bejárat neve]\");
 }
      return 1;
   }
return 1;
}

 
Függvény: BetoltBejaratok(); Szépen újratölti az adatokat.
 
stock BetoltBejaratok()
{
           TorolIGObjectek();
           new count = 0;
        while (count < sizeof(Bejaratok))
        {
        new where[32];
        format(where, sizeof(where), \"id=\'%d\'\", count);
               if(Mysql_Num(\"bejaratok\", where) == 1)
               {
           Bejaratok[count][b_van] = 1;
       }
        else
      {
           Bejaratok[count][b_van] = 0;
       }
        if(Bejaratok[count][b_van] == 1)
        {
                   new query[128];
                   format(query, sizeof(query), \"SELECT * FROM `bejaratok` WHERE %s\", where);
           mysql_query(query);
           new datas[256], data[12][6];
           mysql_store_result();
           mysql_fetch_row(datas);
           mysql_free_result();
           split(datas, data, \'|\');
               Bejaratok[count][b_id] = strval(data[0]);
               Bejaratok[count][kint_x] = floatstr(data[1]);
               Bejaratok[count][kint_y] = floatstr(data[2]);
               Bejaratok[count][kint_z] = floatstr(data[3]);
               Bejaratok[count][kint_i] = strval(data[4]);
               Bejaratok[count][kint_w] = strval(data[5]);
               Bejaratok[count][bent_x] = floatstr(data[6]);
               Bejaratok[count][bent_y] = floatstr(data[7]);
               Bejaratok[count][bent_z] = floatstr(data[8]);
               Bejaratok[count][bent_i] = strval(data[9]);
               Bejaratok[count][bent_w] = strval(data[10]);
               strmid(BejaratokNeve[count], data[11], 0, strlen(data[11])+1, strlen(data[11])+1);
               Bejaratok[count][b_van] = 1;
               BejaratokPickup[count][0] = CreateDynamicPickup(
           1318,
           23,
           Bejaratok[count][kint_x],
           Bejaratok[count][kint_y],
           Bejaratok[count][kint_z],
           Bejaratok[count][kint_w],
           Bejaratok[count][kint_i],
           -1,
           100
      );
      BejaratokPickup[count][1] = CreateDynamicPickup(
           1318,
           23,
           Bejaratok[count][bent_x],
           Bejaratok[count][bent_y],
           Bejaratok[count][bent_z],
           Bejaratok[count][bent_w],
           Bejaratok[count][bent_i],
           -1,
           100
      );
               new str_be[128], str_ki[128];
               format(str_be, sizeof(str_be), \"{339933}[bejárat]\\n{33cc66}%s\", BejaratokNeve[count]);
               format(str_ki, sizeof(str_ki), \"{339933}[Kijárat]\\n{33cc66}%s\", BejaratokNeve[count]);
               Bejaratok3D[count][0] = CreateDynamic3DTextLabel(
         str_be,
         -1,
         Bejaratok[count][kint_x],
                   Bejaratok[count][kint_y],
                   Bejaratok[count][kint_z]+0.7,
         30,
         INVALID_PLAYER_ID,
         INVALID_VEHICLE_ID,
         1,
         Bejaratok[count][kint_w],
         Bejaratok[count][kint_i],
         -1,
         100
      );
      Bejaratok3D[count][1] = CreateDynamic3DTextLabel(
         str_ki,
         -1,
         Bejaratok[count][bent_x],
                   Bejaratok[count][bent_y],
                   Bejaratok[count][bent_z]+0.7,
         30,
         INVALID_PLAYER_ID,
         INVALID_VEHICLE_ID,
         1,
         Bejaratok[count][bent_w],
         Bejaratok[count][bent_i],
         -1,
         100
      );
           }
   count++;
   }
return 1;
}

 
Egyéb függvények, melyekre szükségünk lesz. Van ami SeeRPG mod átalakítás. Credit: Rolee
 
stock split(const strsrc[], strdest[][], delimiter)
{
   new i, li;
   new aNum;
   new len;
   while(i <= strlen(strsrc)){
       if(strsrc==delimiter || i==strlen(strsrc)){
           len = strmid(strdest[aNum], strsrc, li, i, 128);
           strdest[aNum][len] = 0;
           li = i+1;
           aNum++;
       }
       i++;
   }
   return 1;
}
stock Mysql_Num(tabla[], ahol[])
{
new query[256], num;
format(query, sizeof(query), \"SELECT * FROM `%s` WHERE %s\", tabla, ahol);
mysql_query(query);
mysql_store_result();
num = mysql_num_rows();
mysql_free_result();
return num;
}
stock TorolIGObjectek()
{
       for(new i = 0;i < sizeof(Bejaratok);i++)
       {
           if(BejaratokPickup[0]) DestroyDynamicPickup(BejaratokPickup[0]);
           if(BejaratokPickup[1]) DestroyDynamicPickup(BejaratokPickup[1]);
           if(Bejaratok3D[0]) DestroyDynamic3DTextLabel(Bejaratok3D[0]);
           if(Bejaratok3D[1]) DestroyDynamic3DTextLabel(Bejaratok3D[1]);
           BejaratokNeve = \"\";
           Bejaratok[kint_x] = 0;
           Bejaratok[kint_y] = 0;
           Bejaratok[kint_z] = 0;
           Bejaratok[kint_i] = 0;
           Bejaratok[kint_w] = 0;
           Bejaratok[bent_x] = 0;
           Bejaratok[bent_y] = 0;
           Bejaratok[bent_z] = 0;
           Bejaratok[bent_i] = 0;
           Bejaratok[bent_w] = 0;
           Bejaratok[b_id] = 0;
           Bejaratok[b_van] = 0;
       }
}
stock UresBejaratHely()
{
new hely = -1;
for(new x = 0; x < sizeof(Bejaratok); x++)
{
    if(x==0) continue;
if(Bejaratok
  • [b_van] != 1)

{
   hely = x;
   break;
}
}
return hely;
}
 
const Float:INF_FLOAT=Float:0x7F800000;
stock Float:GetDistanceToBejarat(playerid, bejarat)
{
if (IsPlayerConnected(playerid) && Bejaratok[bejarat][b_van])
{
return GetDistanceToPoint(playerid, Bejaratok[bejarat][kint_x], Bejaratok[bejarat][kint_y], Bejaratok[bejarat][kint_z]);
}
return INF_FLOAT;
}
stock GetClosestBejarat(playerid)
{
if(IsPlayerConnected(playerid))
{
new kozelibejarat = -1;
new Float:closestdist = 9999.0, Float:dist;
for(new bejarat=0; bejarat< sizeof(Bejaratok); bejarat++)
{
   dist = GetDistanceToBejarat(playerid, bejarat);
   if(dist < closestdist)
   {
      closestdist = dist;
      kozelibejarat = bejarat;
   }
}
return kozelibejarat;
}
return -1;
}
forward Float:GetDistanceToPoint(playerid,Float:x1,Float:y1,Float:z1);
stock Float:GetDistanceToPoint(playerid,Float:x1,Float:y1,Float:z1)
{
if (IsPlayerConnected(playerid))
{
new Float:x2,Float:y2,Float:z2;
GetPlayerPos(playerid,x2,y2,z2);
return GetDistanceBetweenPoints(x1,y1,z1,x2,y2,z2);
}
return INF_FLOAT;
}
forward Float:GetDistanceBetweenPoints(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2);
stock Float:GetDistanceBetweenPoints(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2)
{
return floatadd(floatadd(floatsqroot(floatpower(floatsub(x1,x2),2)),floatsqroot(floatpower(floatsub(y1,y2),2))),floatsqroot(floatpower(floatsub(z1,z2),2)));
}
forward ResetPlayerBejaratKeszito(playerid);
public ResetPlayerBejaratKeszito(playerid)
{
   BejaratKeszito[playerid] = false;
BejaratKeszitoPoz[playerid][b_poz_x] = 0;
   BejaratKeszitoPoz[playerid][b_poz_y] = 0;
   BejaratKeszitoPoz[playerid][b_poz_z] = 0;
   BejaratKeszitoPoz[playerid][b_poz_i] = 0;
   BejaratKeszitoPoz[playerid][b_poz_w] = 0;
}

5
SA-MP: Szerverfejlesztés / RP mód elkezdése..
« Dátum: 2013. Március 19. - 20:17:36 »
FIGYELEM!!
Valamit kihagytál! Ha bejelentkezésnél/regisztrálásnál nem írnak semmit, akkor is belépteti õket stb..
Írjátok még be ezt:
 
//ezt a dialog register/login alá kell!
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,\"Panel\",\"Felhasználó már létezik!\\nJelentkezz be!\",\"Mehet\",\"Mégse\");
{
//....
}

6
SA-MP: Szerverfejlesztés / Egyedi jármû spawner, gombnyomásra
« Dátum: 2013. Március 18. - 20:15:59 »
Sziasztok!
Egy elég egyszerû, de kompakt filterszkript!
Lehet már készítettek hasonlót, de azért feltöltöm a sajátomat :D
Lényege: Játékon belül Y betût nyomtok, akkor lehív egy tetszõleges jármûvet, amit a szkriptem beállítotok, és bele is rak titeket. 10 MP-nként tudtok lehívni, amit egy Text Draw is jelez.
ScreaM verziója: http://www.solidfiles.com/d/303eb4d556/
Képek: \"width=500http://kepfeltoltes.hu/130318/sa-mp-687_www.kepfeltoltes.hu_.png[/img]
                    \"width=500http://kepfeltoltes.hu/130318/sa-mp-688_www.kepfeltoltes.hu_.png[/img]
Beállítás-t találtok a modban. Használjátok egészséggel! :)
 
// Készítette: Peti,  2013...  Beállítások lejjebb!!!
// verzió: 1.0.0
 
#include <a_samp>
#define FILTERSCRIPT
#pragma tabsize 0
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
    BetoltesYcucc();  // :)
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
}
#endif
//========================[bEÁLLÍTÁSOK]==============================
#define YBILL KEY_YES  // Ezzel állíthatod át, hogy melyik gombra jöjjön elõ!! A \"KEY_YES\"-t kell változtatni!!!
#define model 522      // Ez a jármû model amit lehívsz.  522 = NRG-500
#define szin1 8        // 1-es szín
#define szin2 2        // 2-es szín
//========================[bEÁLLÍTÁSOK]==============================
////////////////////////////////////////////
////////////////////////////////////////////
////  Innenstõl kezdõ DIKK :D   ////////////
////////////////////////////////////////////
////////////////////////////////////////////
new bool:Ynyomhat[MAX_PLAYERS] = false;
new Text:Ymehetnem, Text:Ymehetyes;
#define TD_COLOR_RED 0xFF0000AA
#define TD_COLOR_GREEN 0x33AA33AA
#define NYOMOTTGOMB(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
forward Ycucceltuntet(playerid);
forward YnyomhatEX(playerid);
 
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(NYOMOTTGOMB(YBILL))
                   {
          if(Ynyomhat[playerid] == true) return 0;    // itt hívja le a jármûvet, és dobja a playert rá, stb, stb....
          {
          new Float:x, Float:y, Float:z, Float:a, vid;
          GetPlayerPos(playerid, x,y,z);
          GetPlayerFacingAngle(playerid, a);
          CreateVehicle(model, x,y,z,a,szin1,szin2, -1);
          vid = GetClosestVehicle(playerid);
          PutPlayerInVehicle(playerid, vid, 0);
          TextDrawShowForPlayer(playerid, Ymehetnem);
          Ynyomhat[playerid] = true;
          SetTimerEx(\"YnyomhatEX\", 10 * 1000, false, \"i\", playerid);
          SetTimerEx(\"Ycucceltuntet\", 12000, false, \"i\", playerid);
          }
                   }
return 0;
}
stock BetoltesYcucc()
{
        Ymehetnem = TextDrawCreate(440,240,\"Jarmu lehivas inaktiv!\");
        TextDrawFont(Ymehetnem,1);
        TextDrawLetterSize(Ymehetnem,0.5,1.76);
        TextDrawBackgroundColor(Ymehetnem, TD_COLOR_RED);
        TextDrawColor(Ymehetnem,0xffffffff);
        TextDrawUseBox(Ymehetnem, 1);
        TextDrawBoxColor(Ymehetnem, 0x05050566);
        Ymehetyes = TextDrawCreate(440,240,\"Jarmu lehivas aktiv!\");
        TextDrawFont(Ymehetyes,1);
        TextDrawBackgroundColor(Ymehetyes, TD_COLOR_GREEN);
        TextDrawLetterSize(Ymehetyes,0.5,1.76);
        TextDrawColor(Ymehetyes,0xffffffff);
        TextDrawUseBox(Ymehetyes, 1);
        TextDrawBoxColor(Ymehetyes, 0x05050566);
}
 
public YnyomhatEX(playerid)
{
  TextDrawHideForPlayer(playerid, Ymehetnem);
  TextDrawShowForPlayer(playerid, Ymehetyes);
}
 
public Ycucceltuntet(playerid)
{
TextDrawHideForPlayer(playerid, Ymehetyes);
Ynyomhat[playerid] = false;
}
 
stock GetClosestVehicle( playerid )   // DEXI készítette :)
{
    new Float:Elmentett = 5;
    new ElmentettID;
    for( new vehicleid = 0; vehicleid < 20; vehicleid++ )
    {
                new Float:Jelenlegi;
                GetDistance( playerid, vehicleid, Jelenlegi );
                if( vehicleid != INVALID_VEHICLE_ID )
                {
                        if( Jelenlegi < Elmentett )
                        {
                                Elmentett = Jelenlegi;
                                ElmentettID = vehicleid;
                        }
                }
        }
        return ElmentettID;
}
stock GetDistance( playerid, vehicleid, &Float:number )
{
        new Float:posx, Float:posy, Float:posz;
        new Float:odposx, Float:odposy, Float:odposz;
        new Float:tmpx, Float:tmpy, Float:tmpz;
        GetPlayerPos(playerid, odposx, odposy, odposz);
        if( vehicleid != INVALID_VEHICLE_ID )
        {
                GetVehiclePos(vehicleid, posx, posy, posz);
                tmpx = (odposx -posx);
                tmpy = (odposy -posy);
                tmpz = (odposz -posz);
                new Float:end = floatsqroot( ((tmpx * tmpx) + (tmpy * tmpy)) + (tmpz * tmpz));
                number = end;
        }
}
// VÉGa

Oldalak: [1]
SimplePortal 2.3.7 © 2008-2024, SimplePortal