Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[Nvault] Nie zapisuje/odczytuje danych z pliku...


  • Zamknięty Temat jest zamknięty
30 odpowiedzi w tym temacie

#1 AmD

    aemde

  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 30.09.2010 11:44

Witam!

mam Problem z Zapisem/Odczytem Pliku vault...
Robiąc Xp Moda coś zepsułem i nie zapisuje mnie danych...

Oto mój Zapis, odczyt oraz stock...


public SaveXp(id) {

new vaultkey[64], vaultdata[256];
new name[64];

if(!is_user_steam(id)){
get_user_name(id,name,charsmax(name));
}
else
{
get_user_authid(id,name,charsmax(name));
}


format(vaultkey, 63, "%s-mod", name);
format(vaultdata, 255, "%i#%i#%i#%i#%i#", PlayerXP[id], PlayerLevel[id],SkillPoints[id], PtkGraw[id], PtkSpeed[id]);
nvault_set(g_Vault, vaultkey, vaultdata);
return PLUGIN_CONTINUE;
}

public LoadXp(id) {

new vaultkey[64], vaultdata[256];

new name[64];
if(!is_user_steam(id)){
get_user_name(id,name,charsmax(name));
}
else
{
get_user_authid(id,name,charsmax(name));
}

format(vaultkey, 63, "%s-mod", name);
format(vaultdata, 255, "%i#%i#%i#%i#%i#", PlayerXP[id], PlayerLevel[id],SkillPoints[id], PtkGraw[id], PtkSpeed[id]);
nvault_get(g_Vault, vaultkey, vaultdata,255);

replace_all(vaultdata, 255, "#", " ");

new playerxp[32], playerlevel[32], skillpoints[32], ptkgraw[32], ptkspeed[32];

parse(vaultdata, playerxp, 31, playerlevel, 31, skillpoints, 31, ptkgraw, 31, ptkspeed, 32);

PlayerXP[id] = str_to_num(playerxp);
PlayerLevel[id] = str_to_num(playerlevel);
SkillPoints[id] = str_to_num(skillpoints);
PtkGraw[id] = str_to_num(ptkgraw);
PtkSpeed[id] = str_to_num(ptkspeed);
return PLUGIN_CONTINUE;
}

Stock:

stock bool: is_user_steam(id)
{
static pcv_dp_r_id_provider;
pcv_dp_r_id_provider = get_cvar_pointer("dp_r_id_provider");
server_cmd("dp_clientinfo %d", id);
server_exec();

static uClient;
uClient = get_pcvar_num(pcv_dp_r_id_provider);

if ( uClient == 2)
return true;

return false;
}

Co tu jest źle?

Nie wiem czy to wina że sprawdzam to na lanie lub dla tego że na NS, a może po prostu coś zrąbałem nie wiem :) [nie sprawdzam na steam bo zanim on się włączy to zdążę 3 razy sprawdzić, nie testuje na serwerach bo mam tylko 1 i nie chce by gracze chwilowo wiedzieli że robię takie coś jak XP mod.]

Pozdrawiam ! :)

Użytkownik AmD edytował ten post 30.09.2010 11:45

  • +
  • -
  • 0

#2 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 30.09.2010 11:47

sa jakies bledy w logach? wszystko wydaje sie byc dobre (poza optymalnością :P )
  • +
  • -
  • 1

#3 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 30.09.2010 11:48

właśnie nic nie ma :/
ps. czemu nie optymalny? :)

// a i chyba pomyliłem działy... przyzwyczaiłem się że zazwyczaj tutaj pisze i tym razem też :)

Użytkownik AmD edytował ten post 30.09.2010 11:49

  • +
  • -
  • 0

#4 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 30.09.2010 11:49

moze blad zrobiles podczas wywolania tych funkcji ?
w client_putinserver (lub connect / aut..) powinno byc LoadXp(id);
i przy disconnect SaveXp(id);

Dodano 30 wrzesień 2010 - 12:52:
sprobuj tak
public SaveXp(id) {
        
        new vaultkey[35], vaultdata[256]; 
       
        
        if(!is_user_steam(id)){
                get_user_name(id,vaultkey,charsmax(vaultkey));
        }
        else
        {
                get_user_authid(id,vaultkey,charsmax(vaultkey));
        }
   
    
    format(vaultdata, 255, "%i %i %i %i %i", PlayerXP[id], PlayerLevel[id],SkillPoints[id], PtkGraw[id], PtkSpeed[id]); 
    nvault_set(g_Vault, vaultkey, vaultdata); 
    return PLUGIN_CONTINUE; 
}

public LoadXp(id) {
        
        new vaultkey[35], vaultdata[256]; 

        if(!is_user_steam(id)){
                get_user_name(id,vaultkey,charsmax(vaultkey));
        }
        else
        {
                get_user_authid(id,vaultkey,charsmax(vaultkey));
        }
   
    nvault_get(g_Vault, vaultkey, vaultdata,255); 

    new playerxp[32], playerlevel[32], skillpoints[32], ptkgraw[32], ptkspeed[32];
    parse(vaultdata, playerxp, 31, playerlevel, 31, skillpoints, 31, ptkgraw, 31, ptkspeed, 31); 
    
    PlayerXP[id] = str_to_num(playerxp); 
    PlayerLevel[id] = str_to_num(playerlevel); 
    SkillPoints[id] = str_to_num(skillpoints);
    PtkGraw[id] = str_to_num(ptkgraw);
    PtkSpeed[id] = str_to_num(ptkspeed);
    return PLUGIN_CONTINUE; 
}

  • +
  • -
  • 1

#5 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 30.09.2010 11:53

jest :) problem wystąpił gdy chciałem zrobić zapis na Nick albo tak jak teraz sid/nick

@edit
nie działa :/

Użytkownik AmD edytował ten post 30.09.2010 11:55

  • +
  • -
  • 0

#6 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 30.09.2010 11:53

tylko bedzie reset wszystkiego bo zmieniony jest vaultkey
  • +
  • -
  • 1

#7 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 30.09.2010 11:56

podczas wchodzenia na serwer i tak mam wszystko na 0...
  • +
  • -
  • 0

#8 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 30.09.2010 11:56

poza tym nie wiem czy az tablica 31 znakowa jest potrzebna podczas odczytu tych statystyk :P chyba ze punkty beda mialy tyle znakow
100000000000000000000000000000

Dodano 30 wrzesień 2010 - 12:58:
moze to
stock bool: is_user_steam(id)
{
        static pcv_dp_r_id_provider;
        pcv_dp_r_id_provider = get_cvar_pointer("dp_r_id_provider");
        server_cmd("dp_clientinfo %d", id);
        server_exec();
        
        static uClient;
        uClient = get_pcvar_num(pcv_dp_r_id_provider);
        
        if ( uClient == 2)
                return true;
        
        return false;
}
zamien na
stock bool: is_user_steam(id)
{
        new auth[34];get_user_authid(id, auth, 33);if(contain(auth, ":") != -1) return true;
        return false;
}

  • +
  • -
  • 2

#9 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 30.09.2010 12:06

o patrz działa!
dzięki :)
jeszcze sprawdzę coś bo jak dobrze pamiętam bo mi się te 2 ostatnie tablice nie wczytywały ale zaraz sprawdzę ;)

@edit ok działa wszystko pięknie :)
dziękuje!

@edit a jeszcze mam problem :)

zrobiłem 2 skille ale nie działają (w sumie to grawitacja zamiast się zmniejszać to się zwiększa...)
kod:

public logevent_start(id) {
new graw = get_user_gravity(id)
new speed = get_user_maxspeed(id)
for (new id=0; id < 32; id++) {
if(PtkGraw[id] > 0){
switch(PtkGraw[id]){
case 1: set_user_gravity(id, graw +0.1)
case 2: set_user_gravity(id, graw +0.12)
case 3: set_user_gravity(id, graw +0.14)
case 4: set_user_gravity(id, graw +0.16)
case 5: set_user_gravity(id, graw +0.17)
case 6: set_user_gravity(id, graw +0.18)
case 7: set_user_gravity(id, graw +0.20)
case 8: set_user_gravity(id, graw +0.27)
case 9: set_user_gravity(id, graw +0.29)
case 10: set_user_gravity(id, graw +0.35)
}
}
if(PtkSpeed[id] > 0){
switch(PtkSpeed[id]){
case 1: set_user_maxspeed(id, speed +0.1)
case 2: set_user_maxspeed(id, speed +0.12)
case 3: set_user_maxspeed(id, speed +0.14)
case 4: set_user_maxspeed(id, speed +0.15)
case 5: set_user_maxspeed(id, speed +0.16)
case 6: set_user_maxspeed(id, speed +0.17)
case 7: set_user_maxspeed(id, speed +0.18)
case 8: set_user_maxspeed(id, speed +0.20)
case 9: set_user_maxspeed(id, speed +0.29)
case 10: set_user_maxspeed(id, speed +0.35)
}
}
}
hud_prethink(id)
set_task(5.0, "logevent_start", id)
}

co tu jest źle?
(dałem taska ponieważ u mnie na serwie nie ma rund a jakoś muszę ustawić dla gracza skilla)

Dodano 01 październik 2010 - 11:54:
@odśwież.

Użytkownik AmD edytował ten post 30.09.2010 14:44

  • +
  • -
  • 0

#10 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 01.10.2010 21:03

case 1: set_user_gravity(id, graw +0.1)

case 1: set_user_gravity(id, graw -0.1)


wybierz sobie poprawna wersje
  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#11 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 01.10.2010 22:38

próbowałem...

sprawdzałem także w ifie,
próbowałem zrobić coś takiego:

set_user_maxspeed( id, speed + ( PtkSpeed[ id ] * 10.0 ) );
[podobnie zrobiłem z grawitacją]
i tak:


set_user_maxspeed( id, PtkSpeed[id] * 0.3 + speed)


ale grawitacja nadal zamiast być mniejsza jest ciągle większa...


[uwaga to są tylko przykłady! floaty zostały inaczej zapisane!]
  • +
  • -
  • 0

#12 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 01.10.2010 22:46

pieknie to wymyśliłeś
1.
public logevent_start(id) {
na
public logevent_start() {

2.
new graw = get_user_gravity(id)
new speed = get_user_maxspeed(id)

wrzucamy do petli

3. new graw = get_user_gravity(id)
new speed = get_user_maxspeed(id)
na
new Float:graw = get_user_gravity(id)
new Float:speed = get_user_maxspeed(id)

set_task(5.0, "logevent_start", id)
wywal to
  • +
  • -
  • 1

#13 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 02.10.2010 00:16

pieknie to wymyśliłeś

dzięki :^D

i tak nie działa...


public logevent_start() {
for (new id=0; id < 32; id++) {
new Float:graw = get_user_gravity(id)
new Float:speed = get_user_maxspeed(id)

if(PtkGraw[id] > 0){
switch(PtkGraw[id]){
case 1: set_user_gravity(id, graw -0.1)
case 2: set_user_gravity(id, graw -0.12)
case 3: set_user_gravity(id, graw -0.14)
case 4: set_user_gravity(id, graw -0.16)
case 5: set_user_gravity(id, graw -0.17)
case 6: set_user_gravity(id, graw -0.18)
case 7: set_user_gravity(id, graw -0.20)
case 8: set_user_gravity(id, graw -0.27)
case 9: set_user_gravity(id, graw -0.29)
case 10: set_user_gravity(id, graw -0.35)
}
}
if(PtkSpeed[id] > 0){
switch(PtkSpeed[id]){
case 1: set_user_maxspeed(id, speed +0.1)
case 2: set_user_maxspeed(id, speed +0.12)
case 3: set_user_maxspeed(id, speed +0.14)
case 4: set_user_maxspeed(id, speed +0.15)
case 5: set_user_maxspeed(id, speed +0.16)
case 6: set_user_maxspeed(id, speed +0.17)
case 7: set_user_maxspeed(id, speed +0.18)
case 8: set_user_maxspeed(id, speed +0.20)
case 9: set_user_maxspeed(id, speed +0.29)
case 10: set_user_maxspeed(id, speed +0.35)
}
}
}
}

coś źle?
  • +
  • -
  • 0

#14 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 02.10.2010 08:58

for (new id=0; id < 32; id++)
na
for (new id=1; id < 32; id++)

jeżeli graw nie działą
to warunek
if(PtkGraw[id] > 0){

nie jest spełniony
a maxspeed nie zauważysz różnicy
bo standardowo na nozu jest 250.0 więc jak dodasz te np,. 0.35 nie zauważysz zęby biegł szybciej musisz dodać np 35.0
  • +
  • -
  • 1

#15 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 02.10.2010 14:24

ok grawitacja działa :)
speed dalej nie chodź dałem 35.0... (nadal 250.0 z cisnę na nożu...)
muszę tą funkcje wywołać podczas spawnu gracza (najlepiej) więc dałem:

RegisterHam( Ham_Spawn, "player" , "logevent_start" , 1 );

czy to będzie działało prawidłowo jeśli gracz będzie się spawnił ponownie dzięki pluginowi? (np. by nie miał podwójnej grawitacji)
  • +
  • -
  • 0

#16 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 02.10.2010 14:32

RegisterHam( Ham_Spawn, "player" , "spawned" , 1 );

public spawned(id) {
                new Float:graw = get_user_gravity(id)
                new Float:speed = get_user_maxspeed(id)
        
                if(PtkGraw[id] > 0){
                        switch(PtkGraw[id]){
                                case 1: set_user_gravity(id, graw -0.1)
                                case 2: set_user_gravity(id, graw -0.12)
                                case 3: set_user_gravity(id, graw -0.14)
                                case 4: set_user_gravity(id, graw -0.16)
                                case 5: set_user_gravity(id, graw -0.17)
                                case 6: set_user_gravity(id, graw -0.18)
                                case 7: set_user_gravity(id, graw -0.20)
                                case 8: set_user_gravity(id, graw -0.27)
                                case 9: set_user_gravity(id, graw -0.29)
                                case 10: set_user_gravity(id, graw -0.35)
                        }
                }
                if(PtkSpeed[id] > 0){
                        switch(PtkSpeed[id]){
                                case 1: set_user_maxspeed(id, speed +0.1)
                                case 2: set_user_maxspeed(id, speed +0.12)
                                case 3: set_user_maxspeed(id, speed +0.14)
                                case 4: set_user_maxspeed(id, speed +0.15)
                                case 5: set_user_maxspeed(id, speed +0.16)
                                case 6: set_user_maxspeed(id, speed +0.17)
                                case 7: set_user_maxspeed(id, speed +0.18)
                                case 8: set_user_maxspeed(id, speed +0.20)
                                case 9: set_user_maxspeed(id, speed +0.29)
                                case 10: set_user_maxspeed(id, speed +0.35)
                        }
        }
}

speed jest resetowany co zmianę broni czyli gdy zmienisz broń powraca do normal
  • +
  • -
  • 1

#17 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 02.10.2010 15:00

nadal to samo :/
  • +
  • -
  • 0

#18 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 02.10.2010 15:07

ja ci dałem łądniejszy kod to że speed się resetuje to musisz użyć eventu zmiany broni i w nim ustawiać
  • +
  • -
  • 1

#19 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 02.10.2010 16:02

znając życie chodzi o:

register_event("CurWeapon","Funkcja_Publiczna","be")

całego spawna nie mogę pod to podpiąć bo wtedy gravity = -X ( zamiast mieć mniejszą nie mamy wcale )
zrobiłem funkcje z samym skillem prędkości ale nadal to samo :/
  • +
  • -
  • 0

#20 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 02.10.2010 16:07

grrr w curweapon dajesz
new Float:speed = get_user_maxspeed(id)

if(PtkSpeed[id] > 0){
switch(PtkSpeed[id]){
case 1: set_user_maxspeed(id, speed +0.1)
case 2: set_user_maxspeed(id, speed +0.12)
case 3: set_user_maxspeed(id, speed +0.14)
case 4: set_user_maxspeed(id, speed +0.15)
case 5: set_user_maxspeed(id, speed +0.16)
case 6: set_user_maxspeed(id, speed +0.17)
case 7: set_user_maxspeed(id, speed +0.18)
case 8: set_user_maxspeed(id, speed +0.20)
case 9: set_user_maxspeed(id, speed +0.29)
case 10: set_user_maxspeed(id, speed +0.35)
}
}

a z spawned usuwasz to co ci podałem powyżej
  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych