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

Oldalak: [1] 2 3 ... 18
1
Segítségkérés / stuntolás lekérdezése?.
« Dátum: 2012. December 04. - 18:46:24 »
Szerintem nem lehetséges..

2
Segítségkérés / Szonda
« Dátum: 2012. December 04. - 18:36:13 »

CMD:szonda(playerid, params[])
    {
    new PID;
    if(!IsPlayerInRangeOfPlayer(playerid, PID, 3.0)) // egy üres változót használsz a sugárnak, az x és az y pozíciónak
    {
    new pias;
    new name[MAX_PLAYER_NAME];
    new szo[128];
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerDrunkLevel(playerid, pias, sizeof(pias)); // rosszul használod a függvényt
    format(szo, sizeof(szo), \"%s alkohol szintje %s !\", name, pias);
    SendClientMessage(playerid, 0x31ed2bAA, szo);
    }
    else Msg(\"Nincs a közeledben 1 ember sem!\"); // hiányzik egy { jel
    return 1;
    }

 
Írtam gyorsan egyet, nem teszteltem de jónak kell lennie. :)
 
CMD:szonda(playerid, params[])
{
new giveplayerid;
new giveplayername[24];
new pName[24];
new str[128];
new Float:pos[3];
if(sscanf(params, \"u\", giveplayerid)) return SendClientMessage(playerid, -1, \"Használat: /szonda [JátékosID/Név(részlet)]\");
GetPlayerName(playerid, pName, 24);
GetPlayerName(giveplayerid, giveplayername, 24);
GetPlayerPos(giveplayerid, pos[0], pos[1], pos[2]);
if(!IsPlayerInRangeOfPoint(playerid, 3.0, pos[0], pos[1], pos[2])) return SendClientMessage(playerid, -1, \"Nem vagy a játékosnál!\");
format(str, 128, \"%s alkoholszintje: %d\", giveplayername, GetPlayerDrunkLevel(giveplayerid));
SendClientMessage(playerid, -1, str);
format(str, 128, \"%s megszondáztatott!\", pName);
SendClientMessage(giveplayerid, -1, str);
return 1;
}

3
Üdv :)

Azért nyitottam meg a témát mert nem csak reakciótesztnél használhatók a funkciók.  :)


Kezdjünk is bele..


Szkript elején létrehozunk egy bool változót amivel majd szabályozzuk hogy ha valaki beírta a megfelelõ karaktereket akkor a többi játékos ne kapja meg a nyereményt.

 
new bool:reakcio;

 
Létrehozunk egy tömböt, amibe írunk egy pár lehetõséget.
 
new karakterek[][] =
{
\"kutya\", \"macska\", \"krokodil\", \"viziló\", \"sas\"
};

 
Létrehozunk egy sima sztring változót amiben majd tároljuk az épp aktuális szót/karaktereket.
 
new szoveg[20];

 
Létrehozunk egy parancsot, amivel elindítunk egy reakciótesztet (idõzítõbe is meg lehet írni természetesen)
 
CMD:reakcioteszt(playerid)
{
new str[128];
    new rand = random(sizeof(karakterek));
format(szoveg, 100, karakterek[rand]);
format(str, 128, \"Reakció teszt! Szöveg: %s\", szoveg);
SendClientMessageToAll(-1, str);
reakcio = true;
return 1;
}

 
Mi mit jelent:
 
new str[128];

 
Létrehozunk egy változót amit majd a szöveg kiírására használunk.
 
new rand = random(sizeof(karakterek));

 


Létrehozunk egy \'rand\' nevû változót, amiben tárolunk egy szöveget/karaktert a \'karakterek\' tömbbõl véletlenszerûen

 
format(szoveg, 20, karakterek[rand]);

 
Formázzuk a \'szoveg\' nevû változót és a karakterek tömbbõl véletlenszerûen tároljuk benne a szöveget/karaktert.
 
format(str, 128, \"Reakció teszt! Szöveg: %s\", szoveg);

 


Formázzuk a \'str\' változónkat és tároljuk benne az adott szöveget, a \'szoveg\' változóval együtt. (Így fog kinézni: Reakció teszt! Szöveg: krokodil)

 
SendClientMessageToAll(-1, str);

 
Elküldjük minden játékosnak a szöveget.
 
reakcio = true;

 
A bool változónk értékét true-ra(igazra) állítjuk
Most jöhet maga a szöveg/karakter beírása. :)
 
public OnPlayerText(playerid, text[])
{
if(reakcio == true)
{
if(!strcmp(text, szoveg, true))
{
    new str[128];
   new pName[24];
   GetPlayerName(playerid, pName, 24);
   format(str, 128, \"%s megnyerte a reakciótesztet, nyereménye: 5000$\", pName);
   SendClientMessageToAll(-1, str);
   GivePlayerMoney(playerid, 5000);
   reakcio = false;
   return 0;
}
}
return 1;
}

 
Magyarázat:
 
if(reakcio == true)

 
Ha a \'reakcio\' változó értéke true(igaz) [tehát beírtuk a parancsot]
 
if(!strcmp(text, szoveg, true))

 
Ha a beírt szöveg, és a \'szoveg\' változó értéke megyegyezik (ezt ugye a parancsba elmentettük)
 
new str[128];

 
Létrehozunk egy változót amit majd a szöveg kiírására használunk
 
new pName[24];

 
Létrehozunk egy változót a nevünknek.
 
GetPlayerName(playerid, pName, 24);

 
Elmentjük a nevünket a pName változóba (ezután használhatjuk bárhol)
 
format(str, 128, \"%s megnyerte a reakciótesztet, nyereménye: 5000$\", pName);

 
Formázzuk az \'str\' változót és tároljuk benne a szöveget a nevünkkel együtt.
 
SendClientMessageToAll(-1, str);

 
Kiírjuk minden játékosnak a szöveget.
 
GivePlayerMoney(playerid, 5000);

 
Adunk a játékosnak 5000$-t.
 
reakcio = false;

 
A \'reakcio\' változó értékét átállítjuk false-ra(hamisra)

Tehát a játékos csak akkor kap pénzt ha a változó értéke true(igaz), és miután 1 valaki beírta a parancsot megkapja a pénzt és a változó értéke false(hamis) lesz.


Remélem érthetõ a dolog, nem csak erre hanem sok más egyéb dologra is használható. ^^

4
SA-MP: Szerverfejlesztés / Fegyver lekérõ
« Dátum: 2012. December 02. - 22:39:20 »
Kép alapján igényes és tényleg pepecsölõs munka, grat. :)

5
Segítségkérés / Tárgyból több mentése
« Dátum: 2012. December 02. - 01:09:00 »
Sima változóval :)

Csatlakozásnál beállítjuk az mp3-k számát (változó értékét) 0-ra

 

mp3[playerid] = 0;

 
Csinálunk egy parancsot amivel adunk magunknak még egy mp3-at.
 

CMD:mp3vesz(playerid)
{
    mp3[playerid]++;
    SendClientMessage(playerid, -1, \"Vettél 1 mp3-at\");
    return 1;
}

 
Eldobás (levonunk 1et a változó értékébõl)
 

CMD:mp3eldob(playerid)
{
    --mp3[playerid];
    SendClientMessage(playerid, -1, \"Eldobtál 1 mp3at\");
    return 1;
}

6
Segítségkérés / Érdekes problematika
« Dátum: 2012. December 02. - 01:03:51 »
TextDrawCreate(182, 504, str);

7
Segítségkérés / Érdekes problematika
« Dátum: 2012. December 01. - 21:26:19 »
1 full üres móddal futtattam, úgy se jó..

8
Segítségkérés / Érdekes problematika
« Dátum: 2012. December 01. - 16:12:03 »
Egy sima TextDrawCreate-nél megadom a 2 koordinátát, de nincs sehol a TD.. ha ugyan azt adom meg mint a másik td-nél van akkor ott van (csak épp egybefolynak..) Mi okozhatja?

9
Archívum / Miért nem indul az MTA?
« Dátum: 2012. December 01. - 13:30:13 »
HASONLÓ problémám volt, próbáld meg hogy amikor nem csinál semmit lerakod tálcára, majd vissza.

10
SA-MP: Szerverfejlesztés / Állítható visszaszámláló szkript by DaWee
« Dátum: 2012. December 01. - 13:00:49 »
Köszönöm  :) Nyugodtan  ^-^

11
SA-MP: Szerverfejlesztés / Állítható visszaszámláló szkript by DaWee
« Dátum: 2012. November 30. - 15:14:13 »
A téma neve elmond mindent  :D

Módban állítható a minimum és a maximum érték.


Letöltés: http://www.solidfiles.com/d/5c07d5b5af/
 

#include < a_samp >
#include < sscanf2 >
#include < zcmd >
new szamlalo;
new bool:aktiv[MAX_PLAYERS];
new counttimer[MAX_PLAYERS];
new Float:X, Float:Y, Float:Z;
new str[128];
main() { }
CMD:count(playerid, params[])
{
new count, string[80], pName[24];
GetPlayerName(playerid, pName, 24);
GetPlayerPos(playerid, X, Y, Z);
if(sscanf(params, \"i\", count)) return SendClientMessage(playerid, 0xeda023AA, \">> /count [3-10] <<\");
if(count > 10 || count < 3) return SendClientMessage(playerid, 0xeb1717AA, \"A visszaszámlálási idõ csak 3 és 10 között lehet!\");
if(aktiv[playerid] == true) return SendClientMessage(playerid, 0xeb1717AA, \"Már folyamatban van egy visszaszámlálás a közeledben..!\");
for(new p = 0; p < MAX_PLAYERS; p++)
{
    if(IsPlayerInRangeOfPoint(p, 15, X, Y, Z))
    {
        aktiv[p] = true;
        szamlalo = count;
   counttimer[p] = SetTimerEx(\"szamlalas\", 1000, true, \"i\", p);
   TogglePlayerControllable(p, 0);
   format(str, 128, \"~g~%d\", szamlalo);
   format(string, 80, \"%s elindított egy %d másodperces visszaszámlálást.\", pName, count);
   SendClientMessage(p, 0x17e0ebAA, string);
   GameTextForPlayer(p, str, 1500, 4);
   PlayerPlaySound(playerid, 1056, 0, 0, 0);
   --szamlalo;
}
}
return 1;
}
       
       
       
forward szamlalas(playerid);
public szamlalas(playerid)
{
format(str, 128, \"~g~%d\", szamlalo);
if(szamlalo == 0)
{
GameTextForPlayer(playerid, \"~w~GO-GO-GO\", 1500, 4);
KillTimer(counttimer[playerid]);
szamlalo = -1;
aktiv[playerid] = false;
TogglePlayerControllable(playerid, 1);
PlayerPlaySound(playerid, 1057, 0, 0, 0);
    } else {
   GameTextForPlayer(playerid, str, 1500, 4);
--szamlalo;
PlayerPlaySound(playerid, 1056, 0, 0, 0);
}
}
       

12
Segítségkérés / Kezdõ scripter
« Dátum: 2012. November 30. - 14:00:58 »
CMD:enter(playerid) // Parancs amire mûködik
{
if(IsPlayerInRangeOfPoint(playerid, 3, 1552.6385,-1675.8003,16.1953)) // Leellenörzi hogy az adott pozíció vagy a pozíció sugarában vagy-e
{ // Ha igen
        SetPlayerPos(playerid, 246.783996,63.900199,1003.640625); // Elteleportál arra a pozícióra ahol az interior található
        SetPlayerInterior(playerid, 6); // Bedob az adott interiorba (csak ebben az interior-ban találhatóak \'az objectek\')
        SendClientMessage(playerid, -1, \"Bementél az LSPD interiorjába.\"); // Üzenet
}
else if(IsPlayerInRangeOfPoint(playerid, 3, 1173.6118,-1323.2228,15.1953)) // vagy ha ezen a pozíción, vagy a sugarában vagy
{ // Ha az elõzõ feltétel igaz
    SetPlayerPos(playerid, 322.197998,302.497985,999.148437); // teleportál
    SetPlayerInterior(playerid, 5); // Interior ID-t vált
    SendClientMessage(playerid, -1, \"Bementél az LSMD interiorjába.\"); // Üzenet
}
// A következõ 3 sor nem kötelezõ
else // Ha egyik se igaz
{
    SendClientMessage(playerid, -1, \"LSMD nél, vagy LSPD nél kell lenned.\"); // üzenet
}
return 1;
}

13
SA-MP: Szerverfejlesztés / Munka Szkript by DaWee
« Dátum: 2012. November 29. - 17:12:15 »
Köszönöm. :) Nyugodtan fel lehet használni ^^

14
SA-MP: Szerverfejlesztés / Munka Szkript by DaWee
« Dátum: 2012. November 29. - 05:46:10 »
Köszönöm szépen  ^-^

15
SA-MP: Szerverfejlesztés / Munka Szkript by DaWee
« Dátum: 2012. November 28. - 21:23:22 »
3 délutánON dolgoztam vele.. de nem 2 perc volt.. :D Köszönöm :)

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