Ü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.


Témák - Game94

Oldalak: [1] 2 3 ... 5
1
Segítségkérés / Plugin készítés
« Dátum: 2012. Április 30. - 14:44:33 »
Még pár hónapja találtam az oldalon egy magyar leírást arról, hogy hogyan kell plugint csinálni.
Ma kerestem, de nem találtam meg.. valaki be tudná nekem linkelni? Az angol leírás megvan, de jó lenne magyarul is végig olvasni.

2
Munkaerő keresése / Csapatot keresek! (nincs még neve a szervernek..)
« Dátum: 2012. Március 15. - 16:59:11 »
Ez a téma egy kicsit eltérõ lesz a többitõl..
Megint eljutottam addig, hogy szeretnék készíteni egy sa:mp szervert.
Volt már szerverem nekem is, segítettem már sok szerver elkészítésénél és rájöttem hogy nem szeretek szervert irányítani.
Ezért keresek most egy csapatot a szerver elkészítéséhez és irányításához.
A módot ma kezdtem el írni, de ahhoz képest elég jól halad :)
Amik eddig a módban vannak:
-Mysql alapú regisztrációs rendszer
-Admin rendszer elkezdve
-Kb 10-12 admin parancs
-Hasznos függvények elkészítve (pl admin msg, GetName stb..)
-Gang system (a mysql alapú mentés/beolvasás megvan. online lehet bandákat készíteni.. már csak 2-3 parancs hiányzik belõle)
Nagyjából ennyi van készen, még délután folytatni fogom.
Olyan embereket keresek akik értenek a mapoláshoz/scripteléshez.
A scripteléshez olyan embert keresek, aki nem most kezdte el tanulni, mert elég komoly dolgokat szeretnék csinálni a szerverre és az 1-2 hónapos tudással nem fogjátok tudni megcsinálni.
Szóval ha valaki szeretne valami újat alkotni akkor várom a jelentkezését.
És még mielõtt valaki ilyen hozzászólásokat írogatna hogy: mással akarom megcsináltatni a szerverem.. minek vágok bele, ilyen hozzá állással úgyis meg fog szûnni stb... azoknak ennyit üzennék: aki ismer úgyis tudja, hogy ez nem így van

3
Készülõ munkák / [INC] G_Mysql
« Dátum: 2012. Január 25. - 18:42:56 »
Na szóval elég kevés mysql kapcsolatos publikát találtam a magyar fórumokon, ezért írok egy függvénykönyvtárat hogy könnyebben meg tudják tanulni a kezdõk a mysql használatát.
Eddigi funkciók:
-G_MysqlConnect

-G_MysqlConnected


-G_MySqlCreateTable


-G_MySqlCreateField


-G_MySqlCreateRow


-G_MySqlDeleteRow


-G_MySqlSelect


-G_MysqlSetInt


-G_MysqlSetString


-G_MysqlSetFloat


-G_MysqlGetInt


-G_MysqlGetString


-G_MysqlGetFloat

Szerintem egyértelmû hogy ezek mire valók, ezek közül csak két funkció nincs tesztelve, holnap még megírok néhány dolgot hozzá, letesztelem és publikálom :)
Lesz a használatához leírás is és majd valamikor csinálok ezzel az inc-vel néhány FS-t.
Remélem tetszeni fog mindenkinek ;)

4
Segítségkérés / Méter
« Dátum: 2012. Január 25. - 17:51:34 »
Mivel nem nagyon vagyok otthon a sin, cos függvényekben, ezért valaki tudna nekem segíteni hogy hogyan tudok olyant csinálni hogy pl ha a játékos fut, vagy kocsival megy akkor kiírja neki hogy hány métert ment.
Nem kell hozzá semmilyen parancs, vagy textdraw, nekem csak a függvény kellene.

5
Segítségkérés / Melyik mysql plugin a jobb?
« Dátum: 2012. Január 24. - 17:17:31 »
Szerintetek melyik mysql plugin a jobb?
StrickeKid pluginja, vagy BlueG pluginja?
Ha válaszokat írtok, légyszíves azt is írjátok le hogy miért azt írtátok, amit.

6
Segítségkérés / Mysql mentés gond
« Dátum: 2012. Január 16. - 17:04:52 »
Írtam egy /createhouse parancsot, minden tökéletesen mûködik benne, kivéve a mysql-be való mentés. Létrehozza a textlabel-t, létrehozza a pickupot, de nem menti el.
Mi lehet a hiba ? (ez kb a 20. változat, szóval lehet hogy ebbe már nagy hülyeségeket írtam..)
[pawn]stock CreateHouse(Float: EnterX, Float: EnterY, Float: EnterZ, Float: ExitX, Float: ExitY, Float: ExitZ, Interior, Ar)
{
new searchString[200];
for(new h = 1; h < MAX_HOUSES; h++)
{
   format(searchString, sizeof(searchString), \"SELECT * FROM `houses` WHERE houseID = %d\", h);
   mysql_query(searchString);
   mysql_store_result();
   if(mysql_num_rows() == 0)
   {
      new VW = 100000 + h;
      format(sqlString, sizeof(sqlString), \"INSERT INTO `houses` (`houseID` `EnterX`, `EnterY`, `EnterZ`, `ExitX`, `ExitY`, `ExitZ`, `Interior`, `VirtualWorld`, `Ar`) VALUES\");
      format(sqlString, sizeof(sqlString), \"%s (\'%d\', \'%f\', \'%f\', \'%f\', \'%f\', \'%f\', \'%f\', \'%d\', \'%d\', \'%d\', \'%d\')\", sqlString, h, EnterX, EnterY, EnterZ, ExitX, ExitY, ExitZ, Interior, VW, Ar);
      mysql_query(sqlString);
      format(HouseInfo[h][hTulaj], 24, \"None\");
      HouseInfo[h][hEnterX] = EnterX;
      HouseInfo[h][hEnterY] = EnterY;
      HouseInfo[h][hEnterZ] = EnterZ;
      HouseInfo[h][hExitX] = ExitX;
      HouseInfo[h][hExitY] = ExitY;
      HouseInfo[h][hExitZ] = ExitZ;
      HouseInfo[h][hInterior] = Interior;
      HouseInfo[h][hVirtualWorld] = VW;
      HouseInfo[h][hAr] = Ar;
      HouseInfo[h][hOwned] = -1;
      HouseInfo[h][hPickup] = CreatePickup(1273, 1, EnterX, EnterY, EnterZ, 0);
      format(houseString, sizeof(houseString), \"Eladó Ház [%d]\\nÁra: %d$\", h, HouseInfo[h][hAr]);
      format(HouseInfo[h][hSzoveg], 50, \"%s\", houseString);
      HouseInfo[h][hTextSzoveg] = Create3DTextLabel(houseString, 0x33AA33AA, EnterX, EnterY, EnterZ, 40.0, 0);
      break;
   }
}
}[/pawn]

7
Leírások/Útmutatók / Pénzcheat elleni védelem
« Dátum: 2012. Január 09. - 14:36:14 »
Mivel sok olyan megoldás született már a pénzcheat elleni védelemre hogy pl ha a játékos pénze nagyobb x milliónál akkor bannoljuk (amivel semmit sem érünk, mert lehet tisztességesen szerezte a pénzt, lehet csak néhány ezret cheatel..), ezért mutatok erre egy jó megoldást:
Elõször is létrehozunk egy változót amiben a játékosok pénzét tároljuk:
[pawn]new cash[MAX_PLAYERS];[/pawn]
Most létrehozunk két függvényt, amivel a játékosok pénzét állíthatjuk:
[pawn]stock GivePlayerCash(playerid, ammount)
{
cash[playerid] += amount;
GivePlayerMoney(playerid, ammount);
}[/pawn]
[pawn]stock SetPlayerCash(playerid, ammount)
{
cash[playerid] = ammont;
GivePlayerMoney(playerid, ammount);
}[/pawn]
Mind a két függvény ugyan úgy mûködik, mint az erre megírt sa:mp függvények, csak annyi különbséggel hogy amikor növeljük a pénzét akkor a változójának az értékét is növeljük.
Most pedig jön az ellenõrzés:
[pawn]
forward CheckCash();
public OnFilterScripInit()
{
        SetTimer(\"CheckCash\", 1000, true);
return 1;
}
public CheckCash()
{
for(new forplayerid, maxp = GetMaxPlayers(); forplayerid < maxp; forplayerid++)
{
   if(IsPlayerConnected(forplayerid))
   {
      if(cash[forplayerid] != GetPlayerMoney(forplayerid))
      {
         SendClientMessage(forplayerid, -1, \"Pénz cheat használata miatt bannoltunk!\");
         Ban(forplayerid);
      }
   }
}
return 1;
}
[/pawn]
Elõször is létrehoztuk a CheckCash callback-et.
Utána amikor betöltjük a filterscriptet elindítunk egy timert. A timer másodpercenként lefuttatja a CheckCash-t.
A CheckCash arra szolgál hogy leellenõrizzük hogy a játékos változójának az összege és a játékos valódi pénze megegyezik-e. Ha nem egyezik meg akkor kiírunk neki egy üzenetet és utána bannoljuk (a ban legyen mindig az utolsó mûvelet, mert különben az elõtte lévõ részek nem történnek meg. Pl nem küldi el neki az üzenetet).
Remélem érthetõ volt, itt az egész FS:
[pawn]#include <a_samp>
forward CheckCash();
new cash[MAX_PLAYERS];
#if defined FILTERSCRIPT
#else
main()
{
        print(\"\\n--------------------------------------\");
print(\" Anti Cheat betöltve!\");
print(\"--------------------------------------\\n\");
}
#endif
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Anti Cheat betöltve!\");
print(\"--------------------------------------\\n\");
SetTimer(\"CheckCash\", 1000, true);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public CheckCash()
{
for(new forplayerid, maxp = GetMaxPlayers(); forplayerid < maxp; forplayerid++)
{
   if(IsPlayerConnected(forplayerid))
   {
      if(cash[forplayerid] != GetPlayerMoney(forplayerid))
      {
         SendClientMessage(forplayerid, -1, \"Pénz cheat használata miatt bannoltunk!\");
         Ban(forplayerid);
      }
   }
}
return 1;
}
stock GivePlayerCash(playerid, ammount)
{
cash[playerid] += amount;
GivePlayerMoney(playerid, ammount);
}
stock SetPlayerCash(playerid, ammount)
{
cash[playerid] = ammont;
GivePlayerMoney(playerid, ammount);
}[/pawn]

8
Szkriptek / [CODE] isPlayerInRangeOfPoint
« Dátum: 2011. December 30. - 17:02:34 »
Ezzel azt tudjuk megnézni hogy a játékos egy adott körön belül van-e
 
function isPlayerInRangeOfPoint(playerid,radius,x,y,z)
{
    if(!isPlayerConnected(playerid)) return 0;
    local pos = getPlayerCoordinates(playerid);
    return (getDistanceBetweenPoints3D( x, y, z, pos[0], pos[1], pos[2] ) <= radius);
}

9
Szkriptek / [CODE] ProxDetector
« Dátum: 2011. December 30. - 17:02:10 »
Ezzel olyan szöveget lehet kiírni, hogy ha egy bizonyos távolságra vagy egy adott ponttól, akkor a szöveget más színnel írja ki.
Pl rp szervereken lehet jó, mert minnél messzebb vagy valakitõl, annál sötétebb színnel látja amit írsz.
 
function ProxDetector(radi, playerid, string,col1,col2,col3,col4,col5)
{
   if(isPlayerConnected(playerid))
   {
      local oldpos = getPlayerCoordinates(playerid);
      for(local i = 0; i < MAX_PLAYERS; i++)
      {
         if(isPlayerConnected(i))
         {
            local pos = getPlayerCoordinates(i);
            local tempposx = (oldpos[0] -pos[0]);
            local tempposy = (oldpos[1] -pos[1]);
            local tempposz = (oldpos[2] -pos[2]);
            if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
            {
               sendPlayerMessage(i, col1, string);
            }
            else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
            {
               sendPlayerMessage(i, col2, string);
            }
            else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
            {
               sendPlayerMessage(i, col3, string);
            }
            else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
            {
               sendPlayerMessage(i, col4, string);
            }
            else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
            {
               sendPlayerMessage(i, col5, string);
            }
         }
         else
         {
            sendPlayerMessage(i, col1, string);
         }
      }
   }
   return 1;
}

 
Az imént említett kód az rp szerverekhez:
 
function onPlayerText(playerid,text)
{
   ProxDetector(20.0,playerid, getPlayerName(playerid)+ \" mondja: \" + text,0xE6E6E6E6,0xC8C8C8C8,0xAAAAAAAA,0x8C8C8C8C,0x6E6E6E6E);
   return 0;
}

10
Szkriptek / [CODE] PlayerToPoint
« Dátum: 2011. December 30. - 17:01:35 »
Ezzel le tudjuk ellenõrizni hogy a játékos egy adott körön belül van-e
 
function PlayerToPoint(radi, playerid, x, y, z)
{
    if(isPlayerConnected(playerid))
{
local oldposx, oldposy, oldposz;
local tempposx, tempposy, tempposz;
local oldpos = getPlayerCoordinates(playerid);
tempposx = (oldpos[0] -x);
tempposy = (oldpos[1] -y);
tempposz = (oldpos[2] -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
   return 1;
}
}
return 0;
}

11
Szkriptek / [CODE] createVehicleNearPlayer
« Dátum: 2011. December 30. - 17:01:11 »
Ezzel a funkcióval a játékosok mellé tudunk jármûvet lerakni.
 
function createVehicleNearPlayer(playerid, vehicleid, color1, color2, color3, color4)
{
local playerPosition = getPlayerCoordinates(playerid);
createVehicle(vehicleid,playerPosition[0], playerPosition[1] + 5, playerPosition[2], getPlayerHeading(playerid), color1, color2, color3, color4);
return 1;
}

12
Szkriptek / [REL] /lock, /unlock
« Dátum: 2011. December 30. - 17:00:43 »
Ezzel a script-el a jármûvek ajtaját lehet nyitni/zárni
 
function onPlayerDisconnect(playerid, reason)
{
oldvehicleid[playerid] = false;
return 1;
}
addEvent(\"playerDisconnect\", onPlayerDisconnect);
function onPlayerEnterVehicle(playerid, vehicleid, seatid)
{
if(seatid == 0 && oldvehicleid[playerid] != false && oldvehicleid[playerid] != vehicleid && getVehicleLocked(oldvehicleid[playerid]).tointeger() == 1)
{
setVehicleLocked(oldvehicleid[playerid], 0);
if(getVehicleLocked(oldvehicleid[playerid]) == 0)
{
   oldvehicleid[playerid] = vehicleid;
   sendPlayerMessage(playerid, \"Amelyik jármûbõl utoljára kiszálltál, automatikusan kinyílik neked!\", White);
}
}
if(seatid == 0)
{
oldvehicleid[playerid] = vehicleid;
}
return 1;
}
addEvent(\"playerEnterVehicle\", onPlayerEnterVehicle);
function onPlayerCommand(playerid, command)
{
local cmd = split(command, \" \");
if(cmd[0] == \"/lock\")
{
local vehicleid = getPlayerVehicleId(playerid);
if(isPlayerInAnyVehicle && getPlayerSeatId (playerid) == 0)
{
   setVehicleLocked(vehicleid, 1);
   sendPlayerMessage(playerid, \"A jármû bezárva!\", White);
}
return 1;
}
if(cmd[0] == \"/unlock\")
{
local vehicleid = getPlayerVehicleId(playerid);
if(isPlayerInAnyVehicle && getPlayerSeatId (playerid) == 0)
{
   setVehicleLocked(vehicleid, 0);
   sendPlayerMessage(playerid, \"A jármû kinyitva!\", White);
}
if(oldvehicleid[playerid] != false)
{
   if(getVehicleLocked(oldvehicleid[playerid]) == 1)
   {
      setVehicleLocked(oldvehicleid[playerid], 0);
      sendPlayerMessage(playerid, \"A jármû kinyitva!\", White);
   }
}
return 1;
}
return 0;
}
addEvent(\"playerCommand\", onPlayerCommand);

 
A scriptet nem én készítettem, csak lefordítottam.
A script készítõje: THE[GOD]FATHER

13
Leírások/Útmutatók / [Függvény] getPlayerHealth
« Dátum: 2011. December 30. - 17:00:08 »
float getPlayerHealth ( int playerid )

 
Paraméterek:
 -int playerid - A játékos id-jét kell megadni egész számmal
Visszaadott érték:
 -A játékos életét adja vissza tizedet törtben
Példa:
 
function onPlayerEnterVehicle( playerid, vehicleid, seatid )
{
    sendMessageToAll(\"Beszálltál egy jármûbe. Életerõd: \" + getPlayerHealth(playerid));
    return true;
}
addEvent(\"playerEnterVehicle\", onPlayerEnterVehicle);

14
Leírások/Útmutatók / [Függvény] setPlayerHealth
« Dátum: 2011. December 30. - 16:59:14 »
bool setPlayerHealth ( int playerid, int health )

 
Paraméterek:
 -int playerid - a játékos id-jét kell megadni egész számmal
 -int health - az új élet értékét kell megadni egész számmal
Visszaadott érték:
Ha sikeresen beállítja a játékos életét akkor true (igaz) értéket ad vissza, ha nem sikerül akkor false (hamis) értéket ad vissza.
Példa:
 
function onPlayerEnterVehicle( playerid, vehicleid, seatid )
{
    if(getPlayerHealth(playerid) < 100) setPlayerHealth(playerid, 100);
    return true;
}
addEvent(\"playerEnterVehicle\", onPlayerEnterVehicle);

15
Leírások/Útmutatók / [Függvény] getPlayerName
« Dátum: 2011. December 30. - 16:58:41 »
string getPlayerName ( int playerid )

 
Ezzel a függvénnyel egy megadott id-jû játékos nevét kérhetjük le.
Paraméterek:
 -int playerid (azaz a játékos id-je egész számmal megadva)
Visszaadott érték:
 -A játékos nevét adja vissza
Példa:
 
function onPlayerConnect(playerid)
{
    sendMessageToAll(getPlayerName(playerid) + \" [iD: \" + playerid + \"] felcsatlakozott a szerverre\");
}
addEvent(\"playerConnect\", onPlayerConnect);

Oldalak: [1] 2 3 ... 5
SimplePortal 2.3.7 © 2008-2024, SimplePortal