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

Oldalak: [1]
1
Segítségkérés / logontime = jailtime? MIVAAAAAAAAAAAN?
« Dátum: 2013. január 19. - 19:47:43 »
Üdv!
Valakinek van ötlete ehhez? Engem már szétvet az ideg.
Ha értéket adok a pInfo[playerid][jailtime]-nak, azt a pInfo[playerid][logontime] kapja meg.
 

            strcpy(temp, sprintf(\"%s/jailtime\", PName[playerid]));
            printf(\"%s\", temp);
            new a = djInt(userdb, temp);
            printf(\"opl logontime: %d\", iPlayer[logontime]);
            printf(\"jailtime: %d\", a);
            iPlayer[jailtime] = a;
            printf(\"opl logontime: %d\", iPlayer[logontime]);

 
    eredmeny:
 
    bundaskenyer/jailtime
    opl logontime: 1358620879
    jailtime: 0
    opl logontime: 0

 
Deklarálások:
 
#define iPlayer pInfo[playerid]
enum PLAYER_ENUM {
jailtime = 0,
level = 0,
job = 0,
money = 0,
repulesiengedely = 0,
buntetes = 0,
mute = 0,
logontime = 0,
locked_veh,
lock_type,
IP[16]
};
new pInfo[MAX_PLAYERS][PLAYER_ENUM];

2
Hivatalos fórumról áthozott szkriptek / ZCMD_fixed (0.3.1)
« Dátum: 2013. január 16. - 18:12:28 »
(A fordítás eredetije megtalálható a http://forum.sa-mp.com/showthread.php?t=91354 oldalon. A módosításokat a fordítás végén közlöm)
Leírás
Ez egy kis include, ami az OnPlayerCommandText() callback-et használja a játékosok parancsainak feldolgozására. Minden parancsnak van egy külön funkciója, mint a dcmd-ben, de a zcmd követlenül hívja meg a CallLocalFunction() segítségével. Ez a módszer sokkal gyorsabb, mintha egymás után hasonlítanád össze a szövegeket a beírt paranccsal minden egyes scriptedben lévõ parancsnál (különösen ha egy nem létezõ parancsot ír be a játékos, az összeset végignézi) valamint a fölénye a régi változattal szemben egyenesen arányos a parancsok számával. Készítettem egy sebesség tesztet amikor még csak gondolkoztam ezen a dolgon, az eredményei megtalálhatóak itt.
Használat
Egy parancs létrehozásához csupán egy public funkciót kell létrehoznod egy speciális elõredefiniált makró segítségével, így:
 

COMMAND:parancsom(playerid, params[]) // vagy CMD:parancsom(playerid, params[])
{
  // Csinalj valamit
  return 1;
}

 
vagy (régi mód):
 

command(parancsom, playerid, params[]) // or cmd(parancsom, playerid, params[])
{
  // Csinalj valamit
  return 1;
}

 
Itt a params[] egy string ami a paramétereket tartalmazza, a playerid az ID-je a játékosnak, aki ezt a parancsot beírta.
Ez minden! Nagyon egyszerû, ugye?
 
  Fontos: A 0.3-as verzió óta az OnPlayerCommandText nem használható többé (a ZCMD_NO_CALLBACK opció is el lett távolítva), de van helyette 2 új callback:
 
 OnPlayerCommandReceived(playerid, cmdtext[])

 
Ez akkor hívódik meg, mikor a játékos beír egy parancsot. Ha itt return 0 -val térünk vissza, a parancs nem kerül feldolgozásra.
 
 OnPlayerCommandPerformed(playerid, cmdtext[], success)

 
Ez pedig a parancs lefutása után hívódik meg, ha itt return 0 -val térünk vissza, a játékos a szokásos \"SERVER: Unknown command\" üzenetet fogja megkapni. A \"success\" paraméter az az érték, amivel a parancs funkciója visszatér (ha nincs ilyen funkció, a success értéke 0).
Ezeket a callback-eket nem szükséges beleírni a scriptedbe, ha nem használod õket.
  Hogy csináljunk két különbözõ parancsot, amik ugyanazt teszik
Például, van egy /valami parancs:
 

COMMAND:valami(playerid, params[])
{
  // valami dolog itt
  return 1;
}

 
és szeretnél egy másikat is csinálni, pl. /masik ami azt csinálja, amit a /valami csinál. A legegyszerûbb módja ennek:
 

COMMAND:masik(playerid, params[])
{
  return cmd_valami(playerid, params);
}

 
  Megjegyzés #1: Ha a zcmd-t egy filterscriptben szeretnéd használni, include elé szúrd be ezt a define-t:(a javított kiadásban erre nincs szükség)
 
#define FILTERSCRIPT

 
  Megjegyzés #2: Ha meg szeretnéd vizsgálni, hogy a \"params\"(paraméterek) string üres-e, ne így tedd:
 

if (!strlen(params))
{
  // nincs parameter
}

 
vagy:
 

if (!params[0])

 
mivel a string hossza sosem nulla (errõl bõvebben: itt), egyszerûen használd a zcmd-be épített isnull() függvényt:
 

if (isnull(params))

 
Tulajdonképpen, ha az sscanf-et használod, nem kell elvégezned ezt az ellenõrzést, mivel abban van beépített \"isnull\" vizsgálat.
Itt egy példa, hogyan készíthetünk egy /givemoney parancsot zcmd és sscanf használatával:
 

COMMAND:givemoney(playerid, params[])
{
if (IsPlayerAdmin(playerid))
{
new
  kinek, // a jatekos, akinek a penzt szeretnenk adni
  mennyit;
// a jatekos ID-je es a mennyiseg kinyerese a parameterekbol:
if (!sscanf(params, \"ui\", kinek, mennyit))
{
  if (kinek != INVALID_PLAYER_ID)
  {
    new
      uzenet[40];
    GivePlayerMoney(kinek, mennyit);
    format(uzenet, sizeof(uzenet), \"Kaptál $%d-t az admintól!\", mennyit);
    SendClientMessage(kinek, 0x00FF00FF, uzenet);
  }
  else SendClientMessage(playerid, 0xFF0000FF, \"A játékos nem elérhetõ\");
}
else SendClientMessage(playerid, 0xFFFFFFFF, \"Használat: /givemoney <játékosnév/id> <mennyiség>\");
}
else SendClientMessage(playerid, 0xFF0000FF, \"Csak adminisztrátorok használhatják ezt a parancsot!\");
return 1;
}

 


Változtatások balintx által
A ZCMD_fixed két fõ változtatást foglal magában:
 
  • Mostantól nincs szükség a FILTERSCRIPT makró definiálására, ha filterscriptben kívánjuk használni a zcmd-t.
    Nem csak felesleges, de biztosan volt már, hogy elfelejtkeztünk róla és nem értettük miért nem mûködnek parancsaink.

  • ZCMD mostantól támogatja a magyar ékezetes parancsokat.
    Ennek mûködése:

  1. a játékos által beírt parancs ékezetes betûinek ékezet nélkülivé alakítása

  2. az ékezet nélkülivé alakított parancs funkciójának meghívása


Használatához nem kell átírni a már létezõ modokat, csupán újra kell fordítani a zcmd_fixed.inc -el.
Példa a használatra:
 

CMD:jatekosnev(playerid, params[])
{
    szUzenet[MAX_PLAYER_NAME + 12];
    strcat(szUzenet, \"* Neved: \");
    GetPlayerName(playerid, szUzenet[9], MAX_PLAYER_NAME);
    SendClientMessage(playerid, -1, szUzenet);
    return 1;
}

 

  • a fenti kód le fog futni a /jatekosnev, /játékosnév parancsokra is.

Letöltés
 
/**********************************
*                                *
*   @Author:      ZeeX           *
*   @Version:     0.3.1          *
*   @Released:    31/10/2009     *
*                                *
**********************************/
// Edited by KoczkaHUN
//
// Now it supports Hungarian language
// and you do not have to use the
// FILTERSCRIPT define before
// #include-ing zcmd.
//
// Created 17/05/2012
#if defined _zcmd_included
#endinput
#endif
#define _zcmd_included
#define MAX_FUNC_NAME (32)
#define COMMAND:%1(%2)          \\
   forward cmd_%1(%2); \\
   public cmd_%1(%2)
#define CMD:%1(%2) \\
   COMMAND:%1(%2)
#define command(%1,%2,%3) \\
   COMMAND:%1(%2, %3)
#define cmd(%1,%2,%3) \\
   COMMAND:%1(%2, %3)
#if !defined isnull
#define isnull(%1) \\
      ((!(%1[0])) || (((%1[0]) == \'\\1\') && (!(%1[1]))))
#endif
 
forward OnPlayerCommandReceived(playerid, cmdtext[]);
forward OnPlayerCommandPerformed(playerid, cmdtext[], success);
 
static
bool:zcmd_g_HasOPCS = false,
bool:zcmd_g_HasOPCE = false;
 
public OnFilterScriptInit()
{
zcmd_g_HasOPCS = funcidx(\"OnPlayerCommandReceived\") != -1;
zcmd_g_HasOPCE = funcidx(\"OnPlayerCommandPerformed\") != -1;
    return CallLocalFunction(\"zcmd_OnFilterScriptInit\", \"\");
}
#if defined _ALS_OnFilterScriptInit
    #undef OnFilterScriptInit
#else
    #define _ALS_OnFilterScriptInit
#endif
#define OnFilterScriptInit zcmd_OnFilterScriptInit
forward zcmd_OnFilterScriptInit();
public OnGameModeInit()
{
zcmd_g_HasOPCS = funcidx(\"OnPlayerCommandReceived\") != -1;
zcmd_g_HasOPCE = funcidx(\"OnPlayerCommandPerformed\") != -1;
if (funcidx(\"zcmd_OnGameModeInit\") != -1)
{
return CallLocalFunction(\"zcmd_OnGameModeInit\", \"\");
}
return 1;
}
#if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
#else
    #define _ALS_OnGameModeInit
#endif
#define OnGameModeInit zcmd_OnGameModeInit
forward zcmd_OnGameModeInit();
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (zcmd_g_HasOPCS && !CallLocalFunction(\"OnPlayerCommandReceived\", \"is\", playerid, cmdtext))
    {
        return 1;
    }
    new
        pos,
        funcname[MAX_FUNC_NAME] = \"cmd_\";
      while (cmdtext[++pos] > \' \')
{
switch (cmdtext[pos])
{
   case \'á\',\'Á\': funcname[pos+3] = \'a\';
   case \'é\',\'É\': funcname[pos+3] = \'e\';
   case \'í\',\'Í\': funcname[pos+3] = \'i\';
   case \'ó\',\'ö\',\'õ\',\'Ó\',\'Ö\',\'Õ\': funcname[pos+3] = \'o\';
   case \'ú\',\'ü\',\'û\',\'Ú\',\'Ü\',\'Û\': funcname[pos+3] = \'u\';
   default: funcname[pos+3] = tolower(cmdtext[pos]);
}
}
while (cmdtext[pos] == \' \') pos++;
if (!cmdtext[pos])
{
if (zcmd_g_HasOPCE)
{
   return CallLocalFunction(\"OnPlayerCommandPerformed\", \"isi\", playerid, cmdtext, CallLocalFunction(funcname, \"is\", playerid, \"\\1\"));
}
return CallLocalFunction(funcname, \"is\", playerid, \"\\1\");
}
if (zcmd_g_HasOPCE)
{
return CallLocalFunction(\"OnPlayerCommandPerformed\", \"isi\", playerid, cmdtext, CallLocalFunction(funcname, \"is\", playerid, cmdtext[pos]));
}
return CallLocalFunction(funcname, \"is\", playerid, cmdtext[pos]);
}
#if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
#else
    #define _ALS_OnPlayerCommandText
#endif
#define OnPlayerCommandText zcmd_OnPlayerCommandText
forward zcmd_OnPlayerCommandText(playerid, cmdtext[]);

 

Legal
Az eredeti include Zeex tulajdona.
Az eredeti publikáció itt megtalálható: http://forum.sa-mp.com/showthread.php?t=91354
A módosítás az utolsó, 0.3.1-es zcmd változathoz készült.

3
Általános / [DISCUSSION] [EMR]Emergency v3 Remake
« Dátum: 2013. január 15. - 22:01:59 »
Üdv mindenkinek!
\"Vita\"-topikom elsõsorban azoknak szól majd, akik emlékeznek még a több mint 2 éve bezárt EMR (Emergency) szerverére.
Leginkább azoknak, akik adminok voltak ott, vagy gyakran feljáró civilek.
Az akkori modot Hambi készítette, az Õ döntése volt a szerver bezárása és az is, hogy elforduljon a játékosoktól. Így a szerver és sokak számára a SAMP is feledésbe merült.
Idõvel többekben visszatértek a régi emlékek, és a vágy egy esetleges újranyitásra. Gamemode hiányában azonban erre nem volt lehetõségünk, Hambi pedig sehol nem elérhetõ.
Elérkeztünk 2013 januárjához, amikor a gondolatok tettekké alakultak. Több régi EMR tag felvette egymással a kapcsolatot, és elkezdtük megcsinálni a mod remake-jét.
Ez nem egy olyan mod lesz, ami csak hasonlít az eredetire, esetleg más néven, hanem amennyire csak lehet szeretnénk pontosan visszaadni az eredeti EMR feelinget. Így a cél a legutolsó hivatalos (v3) mod újraírása.
Azonban az évek alatt mindenki rengeteget felejtett, és bár többünknek rendelkezésre áll tengernyi screenshot és emlék, vannak olyan dolgok amikre már mi sem emlékszünk.
A két fõ ok, amiért e topic létrejött:
- Minden információ, screenshot, videó kell, amibõl többet tudunk meg a mod mûködésérõl. Ha birtokában álltok ilyeneknek, ne habozzatok a megosztásával! Ha te már nem is akarsz többet az EMR-en játszani, nekünk sokat segítenél vele, gyorsabban elkészülhetne a mod.
- A szerverre leginkább a régi játékosokat várjuk. Akik régen EMR-esek voltak, és szeretnének csatlakozni az adminokhoz, természetesen várjuk õket, hisz a klánt is újra szeretnénk éleszteni. Ez a topic arra is jó, hogy felvegyük egymással a kapcsolatot, nosztalgiázzunk a régi dolgokon. Az új játékosokat természetesen ugyanúgy szeretettel fogadjuk.
Szeretnék megkérni mindenkit, hogy tekintsen el a régen szerzett sérelmeitõl, melyek az EMR-hez köthetõek. Rengeteg idõ telt el, sok mindenki változott, nem lenne jó ha a topic tele lenne anyázásokkal, hogy az adminok mekkora ilyen-olyanok voltak. Sok régi játékosunk, akik akkoriban szidalmazták a szervert, jelezte hogy jönnének, ha ismét lenne EMR. Ez sokat jelent.
Ha a topic kicsit beindul, itt lesz egy állapot, amin keresztül nyomon lehet követni a mod állását, valamint hamarosan kikerülnek azok az információk is, amelyekrõl nincsenek pontos adataink. Ti segíthettek!
2rGV82g2hFI
\"30tzi.jpg\"
\"fgAgN.png\"
\"YQPdI.png\"
\"clS2D.png\"
\"fJdVs.jpg\"
\"V4DAU.png\"
Hamarosan EMR! (ha ti is akarjátok)

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