Szerző Téma: sscanf + ZCMD hiba  (Megtekintve 2063 alkalommal)

sscanf + ZCMD hiba
« Dátum: 2011. május 31. - 18:51:23 »
0 Show voters
Sziasztok!
Most kezdtem el nézegetni az sscanf függvényt!
Írtam is egy parancsot a használatával, de ha beírom akkor \"SERVER:Unknown command!\"
Nem tudom mi lehet a hiba, a parancsaban van egy ki fwrite()-s dolog is.
A kód:
[pawn]#include <a_samp>
#include <zcmd>
#include <sscanf2>
new parancs[32], Float:x, Float:y, Float:z, Float:angle;
new position[100];
new ang[12];
new cmd[32];
CMD:ctele(playerid, params[]) {
    if(sscanf(params, \"s[50]\",parancs)) {
        SendClientMessage( playerid, 0xFFFF00AA, \"Használat: /ctele [késõbbi parancs]\" );
    }
else
{
   GetPlayerPos(playerid, x,y,z);
   GetPlayerFacingAngle(playerid, angle);
   format(cmd, sizeof(cmd), \"CMD:%s(playerid)\\r\\n\", cmd);
   format(position, sizeof(position), \"      SetPlayerPos(playerid, %f, %f, %f);\\r\\n\", x, y, z);
   format(ang, sizeof(ang), \"      SetPlayerFacingAngle(playerid, %f);\\r\\n\", angle);
   new File:tele=fopen(\"tele.txt\", io_append);
   fwrite(tele, cmd);
   fwrite(tele, \"{\\r\\n\");
        fwrite(tele, position);
   fwrite(tele, ang);
   fwrite(tele, \"      SendClientMessage(playerid, 0xFFFF00AA, \'Sikeres teleportálás!\');\\r\\n\");
   fwrite(tele, \"      return 1;\");
        fwrite(tele, \"}\\r\\n\");
   fclose(tele);
   SendClientMessage(playerid, 0xFFFF00AA, \"Sikeresen létrehoztad a teleportot, most menj be a scriptfiles mappába, nyitsd meg a tele.txt fájlt, és tedd bele a benne lévõ kódot a GM-edbe/FS-be.\");
}
return 1;
}[/pawn]
Lehet, hogy nagyon alap dolgot rontottam el, de hát a kezdet mindíg nehéz  :)
Köszi a segítséget!

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
sscanf + ZCMD hiba
« Válasz #1 Dátum: 2011. május 31. - 19:22:37 »
0 Show voters
Ebben a konkrét szkriptben nem látok hibát, esetleg a \'parancs\' karakterlánc méretezésében; a sscanf függvénnyel 50-re hivatkozol, de csak 32 cellásnak deklaráltad.
Az lehet hiba esetleg, hogy a játékmódban és a filterszkript(ek)ben nem használod a zcmd-t.

sscanf + ZCMD hiba
« Válasz #2 Dátum: 2011. május 31. - 19:26:36 »
0 Show voters
Akkor azt mondod, hogy a gamemode elejére is kell az #include <zcmd>?
De annak miköze van ehhez az FS-hez?
(Am egy alap grandlarc 1 van bent, mert gm et még nem írtam)
A cellákat kijavítom, és megpróbálom úgy! :)
E: Javítottam, de így sem jó, mi lehet még a gond?
« Utoljára szerkesztve: 2011. május 31. - 19:45:21 írta mauladam »

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
sscanf + ZCMD hiba
« Válasz #3 Dátum: 2011. május 31. - 19:42:51 »
0 Show voters
Idézetet írta: mauladam date=1306862796\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"8492\" data-ipsquote-contentclass=\"forums_Topic
Az a baj hogy más scriptekben is ZCMD-t használok?
De az miért lenne baj? nem értelek.
 


Az lehet hiba esetleg, hogy a játékmódban és a filterszkript(ek)ben nem használod a zcmd-t.
 
[/quote]


Egyébként ha jól emlékszem, akkor filterszkripteknél a zcmd függvénykönyvtár beágyazása elõtt használnod kell a define direktívát így:
[pawn]
#define FILTERSCRIPT
//Fejállományok beágyazása
#include < a_samp >
#include < zcmd >
// ...
[/pawn]

sscanf + ZCMD hiba
« Válasz #4 Dátum: 2011. május 31. - 20:01:14 »
0 Show voters
így sem jó, nem tudom mi lehet a gond :(

sscanf + ZCMD hiba
« Válasz #5 Dátum: 2011. május 31. - 20:45:53 »
0 Show voters
Nem kerestem mi lehet a gond inkább átírtam kicsit:
Íme:
 

#include <a_samp>
#define FILTERSCRIPT
#include <zcmd>
#include <sscanf2>
public OnFilterScriptInit()
{
cmd_ctele(0, \"teszt\");
return 1;
}
CMD:ctele(playerid, params[])
{
new
str[128];
if(sscanf(params, \"s[128]\", str))
        SendClientMessage( playerid, 0xFFFF00AA, \"Használat: /ctele [késõbbi parancs]\" );
else if(strlen(str) > 32) SendClientMessage(playerid, 0xFFFF00AA, \"Leendõ teleport parancs névnek maximum 32 karakterbõl álló nevet adhatsz.\");
else
{
new
   Float:x,
   Float:y,
   Float:z,
   Float:angle;
new
   File:tele = fopen(\"tele.txt\", io_append);
if(tele)
{
   format(str, sizeof str, \"CMD:%s(playerid)\\r\\n{\\r\\n\", str);
   fwrite(tele, str);
   GetPlayerPos(playerid, x, y, z);
   GetPlayerFacingAngle(playerid, angle);
   format(str, sizeof str, \"   SetPlayerPos(playerid, %f, %f, %f);\\r\\n   SetPlayerFacingAngle(playerid, %f);\\r\\n\", x, y, z, angle);
   fwrite(tele, str);
   fwrite(tele, \"   SendClientMessage(playerid, 0xFFFF00AA, \\\"Sikeres teleportálás!\\\");\\r\\n   return 1;\\r\\n}\\r\\n\");
   fclose(tele);
   SendClientMessage(playerid, 0xFFFF00AA, \"Sikeresen létrehoztad a teleportot, most menj be a scriptfiles mappába, nyitsd meg a tele.txt fájlt, és tedd bele a benne lévõ kódot a GM-edbe/FS-be.\");
}
}
return 1;
}

sscanf + ZCMD hiba
« Válasz #6 Dátum: 2011. május 31. - 21:15:42 »
0 Show voters
:( :@
Így sem megy... nem tudom miért, error nincs meg semmi.

sscanf + ZCMD hiba
« Válasz #7 Dátum: 2011. május 31. - 21:36:46 »
0 Show voters
#include <a_samp>
#include <zcmd>
#include <sscanf2>
CMD:ctele(playerid, params[])
{
    new str[128];
    if(sscanf(params, \"s[128]\", str)) return SendClientMessage( playerid, 0xFFFF00AA, \"Használat: /ctele [késõbbi parancs]\");
    if(strlen(str) > 32) return SendClientMessage(playerid, 0xFFFF00AA, \"Leendõ teleport parancs névnek maximum 32 karakterbõl álló nevet adhatsz.\");
    new
         Float:x,
         Float:y,
         Float:z,
         Float:angle;
    new File:tele = fopen(\"tele.txt\", io_write);
    format(str, sizeof str, \"CMD:%s(playerid)\\r\\n{\\r\\n\", str);
    fwrite(tele, str);
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, angle);
    format(str, sizeof str, \"   SetPlayerPos(playerid, %f, %f, %f);\\r\\n   SetPlayerFacingAngle(playerid, %f);\\r\\n\", x, y, z, angle);
    fwrite(tele, str);
    fwrite(tele, \"   SendClientMessage(playerid, 0xFFFF00AA, \\\"Sikeres teleportálás!\\\");\\r\\n   return 1;\\r\\n}\\r\\n\");
    fclose(tele);
    SendClientMessage(playerid, 0xFFFF00AA, \"Sikeresen létrehoztad a teleportot, most menj be a scriptfiles mappába, nyitsd meg a tele.txt fájlt, és tedd bele a benne lévõ kódot a GM-edbe/FS-be.\");
    return 1;
}

sscanf + ZCMD hiba
« Válasz #8 Dátum: 2011. június 01. - 08:59:41 »
0 Show voters
@maulaadam
Ha így se mûködik akkor valószínûleg annyi filterscriptet próbálsz alkalmazni hogy szegény samp.exe nem tud vele mit kezdeni.
Hiába van megadva hogy maximum 16 filterscriptet tud kezelni olyan 8-9 után már kicsit megzakkan.
A másik ha zcmd parancs feldolgozó rendszert használsz egy filterscriptben akkor az összes többiben is ezt kellene használni sõt a game módban is.
Ahogy postoltam úgy felse kell menni a szerverre a parancsot beírni tesztelésként már eleve létre kell hoznia ezt a fájlt, ezzel a tartalommal:
 
CMD:teszt(playerid)
{
SetPlayerPos(playerid, 0.000000, 0.000000, 0.000000);
SetPlayerFacingAngle(playerid, 0.000000);
SendClientMessage(playerid, 0xFFFF00AA, \"Sikeres teleportálás!\");
return 1;
}
[/quote]
Esetleg elárulnád hány darab filterscriptet használsz egyszerre?
Vagy még jobb ha úgy próbálnád ahogy Tengerimalac is próbálná elmagyarázni. (Minden egyéb filterscripthez szükséges dolgot eltávolítva, bemásolja amit postoltam, old meg alapon.)
Magyarázat:
Talán arra akar utalni hogy a parancsot másold a game módba, természetesen e két inculde sort is oda biggyeszteni ha még nem lenne benne. :angel:
[pawn]
#include <zcmd>
#include <sscanf2>
[/pawn]

sscanf + ZCMD hiba
« Válasz #9 Dátum: 2011. június 01. - 12:56:31 »
0 Show voters
Összesen csak ez az egy filterscript van, amit használok, ne hogy összekavarjon valamit, ha tesztele, akkor mindíg csak a készülõ script van betéve. :)
Megpróbálom úgy, és jelzem az eredményt!
Sehogy sem jó! :\'(
« Utoljára szerkesztve: 2011. június 01. - 19:10:03 írta mauladam »

sscanf + ZCMD hiba
« Válasz #10 Dátum: 2011. június 01. - 21:52:34 »
0 Show voters
Tölts le másik zcmd.inc fájlt és azzal alakítsd át a filterscriptet. Más ötletem már nincs.
Csak annyit hogy próbálkozz elõbb vagy utóbb jó lesz a parancs mûködik tesztelve.

sscanf + ZCMD hiba
« Válasz #11 Dátum: 2011. június 02. - 15:07:34 »
0 Show voters
Ok. :)
Akkor próbálkozok majd ;D!
MEGOLDOTTAM!
Még 1 kérdésem lenne: ha helyesen írom be a parancsot, akkor is a használatos errort kapom vissza.
Miért lehet?(A kódban nem találok hibát)
« Utoljára szerkesztve: 2011. június 02. - 18:58:46 írta mauladam »

sscanf + ZCMD hiba
« Válasz #12 Dátum: 2011. június 02. - 21:18:47 »
0 Show voters
Idézetet írta: mauladam date=1307020054\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"8492\" data-ipsquote-contentclass=\"forums_Topic
Ok. :)
Akkor próbálkozok majd ;D!
MEGOLDOTTAM!
Még 1 kérdésem lenne: ha helyesen írom be a parancsot, akkor is a használatos errort kapom vissza.
Miért lehet?(A kódban nem találok hibát)
 
What?
használatos error[/quote]

sscanf + ZCMD hiba
« Válasz #13 Dátum: 2011. június 02. - 21:48:59 »
0 Show voters
Ezt is megoldottam! mindenkinek köszönöm a rávezetés és a tippeket  :) Zárok

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal