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

Oldalak: 1 ... 29 30 [31] 32 33 ... 40
451
SA-MP: Szerverfejlesztés / Reakció teszt
« Dátum: 2012. július 05. - 13:38:56 »
Új verzió elérhetõ  :thumbsup:

452
SA-MP: Szerverfejlesztés / Reakció teszt
« Dátum: 2012. július 03. - 15:35:48 »
Reakció teszt
 
Köszöntõ
Üdv! Szeretném publikálni a legfrissebb szkriptem, a reakció tesztet.

Lényege, hogy lehet reakciótesztet küldeni könnyedén.

Funkciók
RandomText


 
Segítségével egy véletlenszerû szöveget hozhatsz létre.
Paraméterek:
 
()

 

  • Nincs paraméter.

 

CMD:randomstring(playerid,params[])
{
new str[128];
format(str,128,\"%s\",RandomText()); // Átformázzuk egy véletlenszerû szöveggé.
SendClientMessageToAll(-1,str); //Majd kiírjuk.
return 1;
}

 


CreatedTest


 
Leellenõrizhetõ, hogy az adott teszt létre van -e hozva.
Paraméterek:
 
(testid)

 

  • testid - A teszt id-je.

 

CMD:testcreated(playerid,params[])
{
if(CreatedTest(1)) return 1; // Ha létre van hozva az 1-es számú teszt, igazzal térünk vissza.
return 1;
}

 


AutoTest


 
Leellenõrizhetõ, hogy az adott teszt autómata-e.
Paraméterek:
 
(testid)

 

  • testid - A teszt id-je.

 

CMD:testauto(playerid,params[])
{
if(AutoTest(1)) return 1; // Ha  az 1-es számú teszt autómatikus, igazzal térünk vissza.
return 1;
}

 


DeleteTest


 
Törölhetsz vele egy adott tesztet.
Paraméterek:
 
(testid)

 

  • testid - A teszt id-je.

 

CMD:deletetest(playerid,params[])
{
DeleteTest(1); // Töröljük az 1-es számú tesztet.
return 1;
}

 


DeleteAllTest


 
Törölheted vele az összes tesztet.
Paraméterek:
 
()

 

  • Nincs paraméter

 

CMD:deletealltest(playerid,params[])
{
DeleteAllTest(); // Töröljük a teszteket
return 1;
}

 


SendTest


 
Elküldhetsz vele egy tesztet.
Paraméterek:
 
(color,msg[],reward)

 

  • color - A szöveg színe.

  • msg[] - A kód, amit a játékosnak be kell írnia, hogy nyerjen.

  • reward - Mennyi pénzt adjon, ha megnyeri a reakciótesztet.


 

CMD:sendtest(playerid,params[])
{
SendTest(-1,RandomText(),20000); //Elküldünk egy tesztet fehéren, véletlenszerû szöveggel, és 20000$-t kap, ha megnyeri a tesztet.
return 1;
}

 


SendAutomaticTest


 
Elküldhetsz vele egy tesztet, ami folyamatosan ismétli magát.
Paraméterek:
 
(color,msg[],reward,time)

 

  • color - A szöveg színe.

  • msg[] - A kód, amit a játékosnak be kell írnia, hogy nyerjen.

  • reward - Mennyi pénzt adjon, ha megnyeri a reakciótesztet.

  • time - Az idõ, amennyiszer ismétlõdjön. (1000 = 1mp)


 

CMD:sendautotest(playerid,params[])
{
SendAutomaticTest(-1,RandomText(),20000,1000*60); //Elküldünk egy tesztet fehéren, véletlenszerû szöveggel, és 20000$-t kap, ha megnyeri a tesztet,60 másodpercenkét jön elõ újra.
return 1;
}

 


StopAutomaticTest


 
Megállíthatunk vele egy ismétlõdõ tesztet.
Paraméterek:
 
(testid)

 

  • testid - A teszt id-je.

 

CMD:stopautotest(playerid,params[])
{
StopAutomaticTest(1); //Megállítjuk az 1-es számú autómatikus tesztet.
return 1;
}

 


StopAllAutomaticTest


 
Megállíthatunk vele az összes ismétlõdõ tesztet.
Paraméterek:
 
()

 

  • Nincs paraméter

 

CMD:stopallautotest(playerid,params[])
{
StopAllAutomaticTest(); //Megállítjuk az összes autómatikus tesztet.
return 1;
}

 


Fontos:
Include verzió esetén a te OnPlayerText-ed alá rakd be: test_OnPlayerText(playerid,text[]);

A te OnGameModeInit-ed vagy OnFilterScriptInited alá pedig: test_Init

Így:
 
public OnPlayerText(playerid,text[])
{
        test_OnPlayerText(playerid,text); //Elejére kell minden elõtt.
        return 1;
}

 

public OnGameModeInit() //Vagy onfilterscriptinit
{
        test_Init(); //Elejére kell minden elõtt.
        return 1;
}

 
Frissítések:
1.1
 
  • Autómata tesztek hozzáadva

  • Include verzió hozzáadva

  • Továbbfejlesztett RandomText()


1.0
 
  • Megjelenés

Példascript:
 

#include <a_samp>
#include <test>
 
public OnFilterScriptInit()
{
test_Init();
SendAutomaticTest(-1,RandomText(),30000,1000*60);
return 1;
}
public OnPlayerText(playerid,text[])
{
test_OnPlayerText(playerid,text);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}

 


453
Szkript kérések / Sebességkorlát
« Dátum: 2012. július 03. - 15:08:04 »
Idézetet írta: ppatrik2012 date=1341320617\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23682\" data-ipsquote-contentclass=\"forums_Topic
Szerintem próbákd úgy, hogy megadod a SetVehicleSpeed parancsal, azt, hogy mien gyorsan menjen(nem biztos hogy jó)
 
Meg van adva...

454
Szkript kérések / BonusCar
« Dátum: 2012. július 03. - 15:07:37 »
Zeteni az nem jó.
 
new k,kt[MAX_PLAYERS];
public OnGameModeInit()
{
k = CreateVehicle(kocsiid,X,Y,Z,A,szín1,szín2,300000); // írd át
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
KillTimer(kt[playerid]);
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid = k)
{
kt[playerid] = SetTimerEx(\"kocsi\", 60*1000, 1,\"i\",playerid);
}
return 1;
}
forward kocsi(playerid);
public kocsi(playerid)
{
GivePlayerMoney(playerid, 500); // átírhatod
return 1;
}

 
   

455
Szkript kérések / Sebességkorlát
« Dátum: 2012. július 03. - 13:19:11 »
Hello!
Elkezdtem csinálni egy sebességkorlátot, de sehogy sem akar összejönni.
Fl0rian \"SetVehicleSpeed\" nevû kódját használom. A baj az, hogy érzékel mindent, de ahelyett,hogy lelassítaná a kocsit, 300 fölé megy a sebessége. És nem tudom megcsinálni :(
Kód:
 
public Sebessegkorlat(playerid)
{
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
    if(sebesseg[playerid] != 0.0)
    {
        new vid = GetPlayerVehicleID(playerid);
        if(GetVehicleSpeed(vid) > floatround(sebesseg[playerid]))
          {
          SetVehicleSpeed(vid,floatround(sebesseg[playerid]));
   }
}
}
return SetTimerEx(\"Sebessegkorlat\", 500, false, \"i\", playerid);
}

456
SA-MP: Szerverfejlesztés / SetVehicleSpeed( vehicleid, speed );
« Dátum: 2012. július 02. - 15:08:45 »
Nálam nem mûködik :S
 
public Sebessegkorlat(playerid)
{
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
    if(sebesseg[playerid] != 0.0)
    {
        new vid = GetPlayerVehicleID(playerid);
        if(GetVehicleSpeed(vid) >= sebesseg[playerid])
          {
          SetVehicleSpeed( vid, floatround(sebesseg[playerid],floatround_round) );
   }
}
}
return SetTimerEx(\"Sebessegkorlat\", 500, false, \"d\", playerid);
}

457
Képek / Videók / PamKutya!!Érdemes megnézni...
« Dátum: 2012. június 30. - 14:49:52 »
Idézetet írta: Technokol date=1340095981\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"22275\" data-ipsquote-contentclass=\"forums_Topic
Alapból rossz nézni,hogy felgyújtja azt a kibeb@szott Húszezrest :O
 
1. Kétezres.
2. Nem igazi, másolt, nézd meg az oldalát..
Komolyan elhitted, hogy igaziból felgyújt egyet? -.-\"

458
Idézetet írta: ChuckNorris date=1341009985\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23511\" data-ipsquote-contentclass=\"forums_Topic
Nekem tetszik, nem szeretném ha elveszne ezért engedelmeddel átrakom a tanulós részbe, tervezed még bõvíteni?
 
Igen, még szeretnék egy hiba listát írni :)

459
Segítségkérés / Progress Bar
« Dátum: 2012. június 29. - 18:21:16 »
Ez éhségrendszernek számít?  :confused:
Olvass leírást...

460
A másik fórumon nem nagyon értékelték, de sok munkám van benne, hátha itt megbecsülik :)
Általános Pawno Hibalista


A leírás tartalmazza a leggyakoribb Pawno hibákat (errorokat) és figyelmeztetéseket (warningokat) egy SA-MP szkript fordításánál.
Ha a fordító hibát talál egy fájlban, akkor üzenetet küld, ebben a sorrendben:
 

  • A fájl neve


  • A sor, ahol a fordító hibát észlelt a zárások között, közvetlenül a fájlnév után.


  • A hiba típusa: \"Hiba\" (error), \"Végzetes hiba\" (fatal error), \"Figyelmeztetés\" (warning)


  • A hiba azonosítója/száma


  • Hiba leírása (Hibaüzenet)


Példa:
 
hello.pwn(3) : error 001: expected token: \";\", but found \"{\"

 
Megjegyzés: A sor száma nem mindig azonos a hibás sor számával.
 
Hibák (errorok) kategóriái


A hibák 3 osztályra sorolhatók:
 

Hibák

 

  • Olyan helyzetekben jön elõ, amikor a fordító nem tudja kezelni a megadott kódot.


  • Hibakódok 1 -99 -ig.


 

Végzetes Hibák

 


  • A végzetes hibák azok a hibák, amikor a fordító egy adott hiba miatt (pl. Inc hiánya) totálisan összeomlik, nem tud talpraállni.


  • Amikor az elemzés megszakad.


  • Hibakódok 100 -199 -ig.


 

Figyelmeztetések

 

  • Figyelmeztetések akkor jelennek meg, amikor a hiba nem feltétlenül életbevágó, apróbb hibáknál.


  • Hibakódok 200 -299 -ig.


Gyakori hibák


001:expected token
Egy szükséges zárás hiányzik, ami lehet \";\" jel, vagy vesszõ: \",\"
Például:
 
error 001: expected token: \";\", but found \"return\"

 

main()
{
    print(\"test\") // Errõl a sorról hiányzik az adott jel
    return 1;
}

 
002:only a single statement (or expression) can follow each \"case\"
Minden esetben egy switch-nek különféle \"case\" értékei vannak. A hiba akkor szokott megjelenni, ha egy sorban egy \"case\"-hez több hozzárendelés van.
Ahhoz, hogy több hozzárendelést adjunk hozzá, kapcsos zárójelet kell hozzáadnunk, nem lehetnek egymás mellett.
 
Például:
 
error 002: only a single statement (or expression) can follow each \"case\"

 

main()
{
    switch(x)
    {
        case 0: print(\"hello\"); print(\"hello\");
    }
    return 1;
}

 
A fenti kódhoz egyéb hibák /figyelmeztetések is megjelennek:
 

error 002: only a single statement (or expression) can follow each \"case\"
warning 215: expression has no effect
error 010: invalid function or declaration

 
Javítva:
 

main()
{
    switch(x)
    {
        case 0:
        {
            print(\"hello\");
            print(\"hello\");
        }
    }
    return 1;
}

 
Gyakori figyelmeztetések


211: possibly unintended assignment
Általában az \"if\" parancsnál jelenik meg, az \"=\" jelekkel szokott lenni a probléma. Nem mind egy, hogy egyet, vagy kettõt írunk.
Példa:
 

if(a = 2) // figyelmeztetés (Ugyanis ezt akkor használjuk, ha az adott változónak a 2-es értéket akarjuk megadni.)
if(a == 2) // nincs figyelmeztetés
if((a = 2)) // nincs figyelmeztetés; 2-es értéket kap a változó és a kifejezés mindig igaz értéket ad vissza.

 
217: loose indentation
A fordító ezt a figyelmeztetést adja ki, ha a kódban soreltolódás van.
Példa:
Jó példa:
 

if(condition)
{
    action();
    result();
}

 
Rossz példa:
 

if(condition)
{
    action();
  result();
}

 
Forrás: SA-MP Wiki

461

Sziasztok!
 
 


Ebben a leírásban szeretném megmutatni, hogyan ellenõrizzük le a nem létezõ dolgokat egy ciklusban.


 
 
Van a ciklusunk és egy változónk:
 

for(new i; i<MAX_PLAYERS; i++) //Végigfutás az összes játékoson
{
if(valtozo == 9) //Ha egy játékosnak a változója 9
{
    SendClientMessage(i,\"A változód értéke 9.\"); //Akkor kiírjuk
}
}

 
Oké, de mi van, ha senkinek sem 9?


Rossz megoldás:
 
for(new i; i<MAX_PLAYERS; i++) //Végigfutás az összes játékoson
{
if(valtozo == 9) //Ha egy játékosnak a változója 9
{
    SendClientMessage(i,\"A változód értéke 9.\"); //Akkor kiírjuk
}
else return SendClientMessage(playerid,\"Nincs 9-es változós játékos.\"); //Ha nem, akkor kiírjuk, hogy nincs
}

 
Ez azért rossz, mert ha akár csak egy embernek nem 9 a változó értéke, kiírja, hogy nincs ilyen változós. Ez azért van, mert az összes játékoson futunk végig, nem egyen.


Jó megoldás:
 
for(new i; i<MAX_PLAYERS; i++) //Végigfutás az összes játékoson
{
new c = 0;
if(valtozo == 9) //Ha egy játékosnak a változója 9
{
    c++;
    SendClientMessage(i,\"A változód értéke 9.\"); //Akkor kiírjuk
}
if(c == 0) return SendClientMessage(playerid,\"Nincs 9-es változós játékos.\"); //Ha nem, akkor kiírjuk, hogy nincs
}

 
Létrehozunk egy másik változót, aminek az értéke 0. Ha van 9-es változójú játékos, akkor növeljük egy-el. Viszont ha nincs, nincs, ami növelje a változónkat, így 0 marad, ami azt jelenti, hogy nincs olyan játékos, akinek a váltózójának rtéke 0 lenne.


Remélem érthetõ volt.
További jó fórumozást,
Sramm

462
SA-MP: Szerverfejlesztés / Örök élet elleni "védelem"
« Dátum: 2012. június 26. - 16:12:36 »
Idézetet írta: Cannonn date=1340553594\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23298\" data-ipsquote-contentclass=\"forums_Topic


De ha örök élete van, akkor mit számít ha a meglévõ életpontjaiból levonsz valamennyit?
Tárolni kellene az élet pontjait a játékosoknak, majd annak az értéket állítgatni az OnPlayerGiveDamage alatt, majd az alapján beállítani az életpontjait.
Ez alapján még ki is lehet szûrni, hogy mire vegyen le életet, és mire nem a játékosnak.
 
Levon annyit, amennyit amúgy is levonna, végül 0-ra kerül és meghal.
Gyors, erõs fegyverrel még akkor is mûködik, ha a játékos életét folyamatosan feltölti egy idõzítõ, de idõzítõs megoldást nem igen használnak a csalások, szerintem.
 
[/quote]
De ha 99999999999999999999999999-ra állítod az életét, vonhatsz belõle 10-eket...

463
Segítségkérés / Server:Unkown Command
« Dátum: 2012. június 26. - 09:19:13 »
Nem ez volt a baj, hanem , hogy frakciós kosikat is Vinfoval csináltam :D

464
Segítségkérés / Server:Unkown Command
« Dátum: 2012. június 25. - 15:12:53 »
CMD:trunkzzar(playerid,params[])
       {
           if(!IsPlayerInAnyVehicle(playerid)) return HU(playerid,1,\"Nem vagy jármûben.\");
           new vid = GetPlayerVehicleID(playerid);
                    new engine,lights,alarm,doors,bonnet,boot,objective;
                    GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
                    if(engine != 1) return HU(playerid,1,\"A jármû motorjának járnia kell.\");
                    if(boot == 1) return HU(playerid,1,\"A csomagtartó tárva nyitva, elõször csukd be.\");
                    if(vInfo[vid][vTrunkLock] == 1) return hu(playerid,\"Már zárva van.\");
         vInfo[vid][vTrunkLock] = 1;
         SendClientMessage(playerid, FEHER, \"Sikeresen bezártad!\");
         return 1;
      }
      CMD:trunkznyit(playerid,params[])
       {
         if(!IsPlayerInAnyVehicle(playerid)) return HU(playerid,1,\"Nem vagy jármûben.\");
         new vid = GetPlayerVehicleID(playerid);
                    new engine,lights,alarm,doors,bonnet,boot,objective;
                    GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
                    if(engine != 1) return HU(playerid,1,\"A jármû motorjának járnia kell.\");
                    if(boot == 1) return HU(playerid,1,\"A csomagtartó tárva nyitva, elõször csukd be.\");
                    if(vInfo[vid][vTrunkLock] == 0) return hu(playerid,\"Már nyitva van.\");
         vInfo[vid][vTrunkLock] = 0;
         SendClientMessage(playerid, FEHER, \"Sikeresen kinyitottad!\");
         return 1;
      }

 
Ezt a két parancsot ha beírom, mindig azt írja, hogy Server: Unkown Command. Egyszerûen kész vagyok tõle :( Nem tudom megcsinálni. Ötlet?

465
Segítségkérés / auto probléma
« Dátum: 2012. június 22. - 14:37:17 »
Ez minden jármûbõl, ami nem az övé, kiszedi.

Oldalak: 1 ... 29 30 [31] 32 33 ... 40
SimplePortal 2.3.7 © 2008-2024, SimplePortal