Szerző Téma: Régi skin ideiglenes elmentése, majd visszaállítása  (Megtekintve 602 alkalommal)

BarnyBoy

  • Vendég
Régi skin ideiglenes elmentése, majd visszaállítása
« Dátum: 2014. Július 15. - 21:02:16 »
0 Show voters
Üdv!
Egy ruhaboltrendszeren dolgozom,amely megmutatja a játékosnak a ruhát és csak azután tudja megvenni, viszont nem tudom hogy hogyan kellene visszaállítani neki az eredeti ruháját ha mégsem kéri a ruhát.
« Utoljára szerkesztve: 2014. Július 16. - 11:16:56 írta BarnyBoy »

Nem elérhető Blowy

  • 194
    • Profil megtekintése
Régi skin ideiglenes elmentése, majd visszaállítása
« Válasz #1 Dátum: 2014. Július 15. - 22:08:08 »
0 Show voters
Mielõtt átállítod a skint kérd le egy változóba a régi skinjét.
pl:
[pawn]new skin =  GetPlayerSkin(playerid);[/pawn]
és a végén SetPlayerSkin(playerid,skin) ha mégse szeretné megvenni.

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Régi skin ideiglenes elmentése, majd visszaállítása
« Válasz #2 Dátum: 2014. Július 15. - 22:30:34 »
+1 Show voters
Globálisan kellene létrehozni egy minden játékosra kiterjedõ cellájú (magyarán 500 cellás) tömböt, amiben eltárolod a skinjét.
 
#include a_samp
#include zcmd
#include sscanf
 
new g_oldSkin[MAX_PLAYERS] = {-1, ...};
 
CMD:skin(playerid, params[]) {
new skinid;
if(sscanf(params, \"d\", skinid)) return SendClientMessage(playerid, 0xFF0000FF, \"SYNTAX: /skin [id]\");
if(GetPlayerSkin(playerid) == skinid) return SendClientMessage(playerid, 0xFF0000FF, \"Ugyanazt a ruhát nem veheted fel!\");
if(g_oldSkin[playerid] != -1) return SendClientMessage(playerid, 0xFF0000FF, \"Már van rajtad próbaruha!\");
g_oldSkin[playerid] = GetPlayerSkin(playerid);
SetPlayerSkin(playerid, skinid);
return SendClientMessage(playerid, -1, \"Felvetted az új ruhádat próbára. Ha vissza szeretnél öltözni, használd a \'sback\' parancsot.\");
}
CMD:sback(playerid) {
if(g_oldSkin[playerid] == -1) return SendClientMessage(playerid, 0xFF0000FF, \"Nincsen rajtad próbaruha!\");
SetPlayerSkin(playerid, g_oldSkin[playerid]);
g_oldSkin[playerid] = -1;
return SendClientMessage(playerid, -1, \"Sikeresen visszaöltöztél!\");
}
« Utoljára szerkesztve: 2014. Július 16. - 07:41:16 írta KovaNovik »

Régi skin ideiglenes elmentése, majd visszaállítása
« Válasz #3 Dátum: 2014. Július 15. - 23:00:45 »
+1 Show voters
Globálisan kellene létrehozni egy minden játékosra kiterjedõ cellájú (magyarán 500 cellás) tömböt, amiben eltárolod a skinjét.[/quote]
Miért kellene Globálisan Tárolni?
 
Idézetet írta: Blowy date=1405454888\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49466\" data-ipsquote-contentclass=\"forums_Topic
Mielõtt átállítod a skint kérd le egy változóba a régi skinjét.
pl:
 
new skin =  GetPlayerSkin(playerid);

 
és a végén SetPlayerSkin(playerid,skin) ha mégse szeretné megvenni.
 
Blowy jól írta, csak lekell kérni és megadni neki.
Így:
[pawn]#include a_samp
#include zcmd
#include sscanf
new g_oldSkin[MAX_PLAYERS];
new playerskin;
CMD:skinproba(playerid, params[]) {
new skinid;
playerskin = GetPlayerSkin(playerid);
if(sscanf(params, \"d\", skinid)) return SendClientMessage(playerid, 0xFF0000FF, \"SYNTAX: /skin [id]\");
if(GetPlayerSkin(playerid) == skinid) return SendClientMessage(playerid, 0xFF0000FF, \"Ugyanazt a ruhát nem veheted fel!\");
g_oldSkin[playerid] = GetPlayerSkin(playerid);
SetPlayerSkin(playerid, skinid);
return SendClientMessage(playerid, -1, \"Felvetted az új ruhádat próbára. Ha vissza szeretnél öltözni, használd a \'sback\' parancsot.\");
}
CMD:sback(playerid) {
if(g_oldSkin[playerid] == -1) return SendClientMessage(playerid, 0xFF0000FF, \"Nincsen rajtad próbaruha!\");
SetPlayerSkin(playerid, playerskin);
g_oldSkin[playerid] = -1;
return SendClientMessage(playerid, -1, \"Sikeresen visszaöltöztél!\");
}[/pawn]

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Régi skin ideiglenes elmentése, majd visszaállítása
« Válasz #4 Dátum: 2014. Július 16. - 07:34:00 »
+1 Show voters
Nem értem, hogy lehetne eltárolni 4 bájtban 500*4 bájtnyi skin id-t.

BarnyBoy

  • Vendég
Régi skin ideiglenes elmentése, majd visszaállítása
« Válasz #5 Dátum: 2014. Július 16. - 11:16:43 »
0 Show voters
Köszönöm a válaszokat, sikerült Ryan_Adam leírása alapján! :) mindenkinek adtam +-t.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal