GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: ppatrik2012 - 2014. március 10. - 15:21:29

Cím: Gyors kérdés[ZCMD ]
Írta: ppatrik2012 - 2014. március 10. - 15:21:29
Az lenne a kérdésem, hogy zcmd-vel hogyan lehet olyat írni, hogy pl: Beírom, hogy /tanc [1-4] és azt dobja be.(a szóköz a lényeg)
Cím: Gyors kérdés[ZCMD ]
Írta: bbTamas - 2014. március 10. - 15:26:06
A params nevû változóban tárolódik a parancs neve után beírt bármely szöveg:
Üres karakterláncot, isnull nevû függvénnyel ellenõrizhetjük.
Ha karakterlánc üres true értéket ad vissza az isnull függvény, ahogy itt is látható:
 
CMD:tanc(playerid,params[])
{
if(isnull(params))
{
SendClientMessage(playerid,-1,\" /tanc[1-4]\");
return 1;
}
//parancs többi része
return 1;
}
Cím: Gyors kérdés[ZCMD ]
Írta: Dfoglalo - 2014. március 10. - 15:36:47
Nem értek a ZCMD-hez, de szerintem így néz ki a dolog:
 
CMD:tanc(playerid, params[])
{
    new TancAnimID;
    if(sscanf(params, \"d\", TancAnimID)) return SendClientMessage(playerid, -1, \"Használata: /tanc <1-4>\"); // Csak akkor fut tovább a parancs, ha 1 db paraméter van megadva a parancsnál
    if(TancAnimID < 1 || TancAnimID > 4) return SendClientMessage(playerid, -1, \"1-4-ig adj meg egy számot!>\"); // Esetleg megnézheted, hogy 1-4-ig adta e meg a számot
    // Itt elindítod a táncot, valamint minden mást megcsináltatsz a szerverrel, amit csak akarsz.
    return 1;
}

 
[mod]Ha legközelebb ilyen és/vagy ehhez hasonló - ahogy te fogalmaztál - \"Villám kérdésed\" vagy \"Gyors kérdésed\" támad, kérlek használd a kiemelt témát![/mod]
Az viszont személy szerint tetszik, hogy te mindig megoldottnak jelölöd a témát, majd zárod is azt, ha megkapod a megfelelõ választ. Sok sikert a pawn nyelv tanulásához, illetve használatához. ;)
Cím: Gyors kérdés[ZCMD ]
Írta: ppatrik2012 - 2014. március 10. - 15:56:23
Idézetet írta: bbTamas date=1394461566\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47017\" data-ipsquote-contentclass=\"forums_Topic
A params nevû változóban tárolódik a parancs neve után beírt bármely szöveg:
Üres karakterláncot, isnull nevû függvénnyel ellenõrizhetjük.
Ha karakterlánc üres true értéket ad vissza az isnull függvény, ahogy itt is látható:
 
CMD:tanc(playerid,params[])
{
if(isnull(params))
{
SendClientMessage(playerid,-1,\" /tanc[1-4]\");
return 1;
}
//parancs többi része
return 1;
}

 

Igen, valahogyan régen így csináltam, de tovább, hogy kell? :O Nagyon felejtek.
 

Ha legközelebb ilyen és/vagy ehhez hasonló - ahogy te fogalmaztál - \"Villám kérdésed\" vagy \"Gyors kérdésed\" támad, kérlek használd a kiemelt témát!
Az viszont személy szerint tetszik, hogy te mindig megoldottnak jelölöd a témát, majd zárod is azt, ha megkapod a megfelelõ választ. Sok sikert a pawn nyelv tanulásához, illetve használatához. ;)
 
[/quote]
Köszönöm a jó kívánságodat :) Másrészt vettem az adást :D
Cím: Gyors kérdés[ZCMD ]
Írta: Dfoglalo - 2014. március 10. - 16:08:06
Utána csak simán elindítod az animációt. Most csak mondok egy példát (az én kódomhoz illõt).
Érték szerinti elágazással:
 
switch(TancAnimID)
{
    case 1:
    {
        ApplyAnimation(playerid,\"PED\",\"WALK_DRUNK\",4.1,1,1,1,1,1,1);
    }
    case 2:
    {
        ApplyAnimation(playerid,\"PED\",\"WALK_DRUNK\",4.1,1,1,1,1,1,1);
    }
    case 3:
    {
        ApplyAnimation(playerid,\"PED\",\"WALK_DRUNK\",4.1,1,1,1,1,1,1);
    }
    case 4:
    {
        ApplyAnimation(playerid,\"PED\",\"WALK_DRUNK\",4.1,1,1,1,1,1,1);
    }
    default:
    {
        // Itt esetleg elküldheted, hogy rossz ID, akkor viszont az elõzõ hozzászólásomba leírt 2. elágazásra nem lesz szükség
    }
}

 
Habár lehet egyszerûbben is, ilyenekkel is:
 
case 3: ApplyAnimation(playerid,\"PED\",\"WALK_DRUNK\",4.1,1,1,1,1,1,1);

 
Habár én ezt sosem használom, mert általában egy értékhez rengeteg utasítást teszek be.
Az if-eset pedig magadtól is meg tudod írni, példa:
 
if(TancAnimID == 3)
{
    ApplyAnimation(playerid,\"PED\",\"WALK_DRUNK\",4.1,1,1,1,1,1,1);
}

 
Ugyanezt lehet kapcsos zárójelek, látható tömbök létrehozása nélkül is csinálni.
Cím: Gyors kérdés[ZCMD ]
Írta: ppatrik2012 - 2014. március 10. - 16:30:49
ezzel a
default

 dologgal még nem találkoztam, ez mi lenne? Mivel nem értem pontosan.
egyébként mindjárt kipróbálom amit írtál, de elõtte, had ne írjak már ezért külön témába. 1 nagyon durva kérdés   :laugh:
Ha van egy változóm, pl.
 
new PlayerInfo[MAX_PLAYERS][infok]

 
A lényeg annyi lenne, hogy pl PlayerInfo[playerid][Money] értékét szeretném növelni, ez így néz ki:
 
PlayerInfo[jatekos][Money] = osszeg;

 
De ez hibás, mivel csak az \"=\" -ség jelet fogadja el.
A Lényeg, hogy az összeggel szeretném növelni a pénzét. Csak az a pozitív/negatív/egyenlõség/relációs jel kavarja a kakit :D
Cím: Gyors kérdés[ZCMD ]
Írta: Dfoglalo - 2014. március 10. - 17:47:21
Mint írtam, az egy érték szerinti elágazás. Programozás, szinte elsõ gyakorlati lecke. A default pedig olyan, mint egy sima if-es elágazásnál az else, tehát a különben ág.
 
PlayerInfo[jatekos][Money] = 10; // Most 10-et állítottunk be neki.
PlayerInfo[jatekos][Money] += 5; // Hozzáadtunk 5-öt, így most 15 pénze van (na, ez furán hangzott :D)

 
Ez egyébként szintén az elsõ leckék közé tartozik, az operátorok és azok használata.


Te nyilván nem iskolában tanulod, de attól még ha netrõl szeded az infót, illik elõször az alapokat (mint pl. ezeket) megtanulni, mielõtt bármi másba belekezdenél. De sebaj, remélhetõleg ma ismét tanultál valamit :D
Amúgy kivonással ugyanez:
 
PlayerInfo[jatekos][Money] -= 5;
Cím: Gyors kérdés[ZCMD ]
Írta: ppatrik2012 - 2014. március 10. - 21:35:44
Igazából suliban csak jövõre kezdjük el a programozást. De már régóta scriptelek pawno-val, csak mindig megúnom és kihagyok egy szebb idõt :D Ez alatt meg a legalapabb dolgokat felejtem el. A Függvény használatokkal tisztában vagyok, mármint hogyan lehet mit, de az ilyen alapokról feledkezem meg. És köszi, ment az ujjacska :D