Szerző Téma: PVar hiba  (Megtekintve 552 alkalommal)

Gang[St]e[R]

  • Vendég
PVar hiba
« Dátum: 2011. november 24. - 20:18:01 »
0 Show voters
Üdv.
zeli azt mondta nekem, hogy ha pl.: gm-ben létrehozok egy pvart, akkor pl.: azt egy másik scriptbe is használhatom.
Most meg létrehozok egy SetPVarInt-et, egy include fájlban, de ha azt egy filterscriptben kérem le így pl.:
if(GetPVarInt(targetid, \"Fated\") == 0) 

 
Minthogyha be sem olvasná. Amikor a játékos csatlakozik 0-vá teszem, de ha beír egy parancsot, akkor 1 lesz az értéke, és hiába egy lesz az értéke, és hiába kérem le, azt a folyamatot csinálja amit én akkor állítok be ha az értéke 0, még is az értéke 1 ,de nem azt csinálja amit 1-es értékre állítottam be. Ötlet?

Dupla hozzászólás automatikusan összefûzve. ( 2011. november 24. - 20:27:20 )

Jah el is felejtettem: természetesen az include fájl bevan ágyazva egy játékmódba.
« Utoljára szerkesztve: 2011. november 24. - 20:27:20 írta GangSteR] »

PVar hiba
« Válasz #1 Dátum: 2011. november 24. - 21:52:45 »
0 Show voters
what?
Próbáld meg értelmesen leírni a folyamatot. (mit is akarsz?)
Mit kérsz le?
Mit nem csinál?
Melyik OnPlayerConnect-nél állítod az értékét?
Az .inc a módhoz van társítva?
Ne feledkezz meg a visszahívások sorrendjérõl 1.FS 2.FS 3.FS ... gamemód

Gang[St]e[R]

  • Vendég
PVar hiba
« Válasz #2 Dátum: 2011. november 24. - 22:26:11 »
0 Show voters
Idézetet írta: Zsolesszka date=1322167965\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"13687\" data-ipsquote-contentclass=\"forums_Topic
what?
Próbáld meg értelmesen leírni a folyamatot. (mit is akarsz?)
Mit kérsz le?
Mit nem csinál?
Melyik OnPlayerConnect-nél állítod az értékét?
Az .inc a módhoz van társítva?
Ne feledkezz meg a visszahívások sorrendjérõl 1.FS 2.FS 3.FS ... gamemód
 
Nah szóval:
Amikor a játékos csatlakozik, akkor ez történik: SetPVarInt(playerid, \"Fated\", 0); //Ez egy stockban van amely egy inc fájlban található, de az inc hozzá van írva #include <features> a módhoz, és az OnPlayerConnecthez a stock.
Amikor a játékos beír egy parancsot 1 lesz 0-ról az érték vagyis: SetPVarInt(playerid, \"Fated\", 1); //Ez is ugyanabban a módban van csak ez már nem az inc fájlból lett átrendelve.
És még egy teljesen független scriptben van megadva ily módon: if(GetPVarInt(targetid, \"Fated\") == 0) ez az egyik példa mert az if elágazás után adom meg mi legyen természetesen levan kérdezve ha 1-es az értéke, de ha pl.: beállítom ,hogy ha 0 az értéke akkor adjon életet, de ha 1 az értéke pénzt adjon:
[pawn]if(GetPVarInt(targetid, \"Fated\") == 0)
{
     SetPlayerHealth(targetid, 100);
}
else if(GetPVarInt(targetid, \"Fated\") == 1)
{
     GivePlayerMoney(targetid, 100);
}[/pawn]
És ugye ez egy különálló fs-ben van, amit meg elöbb montam az az include fájl bevan ágyazva egy játékmódba.
Ezzel az a gondom, hogy a módba hiába beállítom ,hogy az értéke 1 legyen: SetPVarInt(playerid, \"Fated\", 1); akkor azt szinte le se tolja, minthogyha úgy maradna ahogy connectkór megadtam, megvan adva neki az 1 érték még is az elöbbi példa fügvényekbe az a folyamat történik meg ami ha 0 nullával vagyis ez: if(GetPVarInt(targetid, \"Fated\") == 0) mikor megvan adva ,hogy egy.

PVar hiba
« Válasz #3 Dátum: 2011. november 25. - 00:04:43 »
0 Show voters
Jó.
A javaslat az lenne hogy ne 0 és 1 értékkel dolgozz hanem mondjuk 4 és 5.
Ez alapján talán betudod határolni mi lehet a probléma, tegyél be pár helyre print funkciót hogy lásd mi annak a PVar-nak a jelenlegi értéke, mikor csatlakozol a szerverre használod a funkciókat stb..
[pawn]
printf(\"Pvar értéke: %d (Fated)\", GetPVarInt(playerid, \"Fated\"));
[/pawn]
Másik észrevétel ellenõrizd a gamemód a filterscriptek a használt .inc fájlok karakterkódolását, elkezdett érzékeny lenni rá a SA-MP. (ANSI legyen mind (notepad++))

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
PVar hiba
« Válasz #4 Dátum: 2011. november 25. - 12:37:38 »
0 Show voters
[pawn]
if(GetPVarInt(targetid, \"Fated\") == 0)
{
     SetPlayerHealth(targetid, 100);
}
else if(GetPVarInt(targetid, \"Fated\") == 1)
{
     GivePlayerMoney(targetid, 100);
}
[/pawn]
Ez mindenesetre eleg hulye megoldas, mivel minden lefutasnal lekeri a PVar-t.
Ilyen helyzetekben hasznalj switch-et, vagy a lefutas elott kerd le es aztan mar csak ki kell olvasnod a valtozobol es nemkell mindig lekerni a megadott valtozot.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal