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: ObiWan - 2013. február 15. - 18:29:55

Cím: Score Hiba!!!!
Írta: ObiWan - 2013. február 15. - 18:29:55
Üdv fórumozók!
Azt szeretném megvalósítani, hogy a szerverem minden 1 percben adjon a playernek +1 pontot.
El is kezdtem, de abba a problémába ütköztem, hogy nem 1 percenként adja a pontot, hanem valamivel kevesebb és 499 ad mindíg.
Mi lehet a gond?
Így néz ki a dolog:
 
forward Pont(playerid);
SetTimer(\"Pont\",1000*60*1,true);
public Pont(playerid)
{
for(new i=1;i<MAX_PLAYERS;i++)
{
SetPlayerScore(playerid, GetPlayerScore(playerid)+1);
}
}
Cím: Score Hiba!!!!
Írta: BackUP - 2013. február 15. - 18:35:33
Set Timert- 60.000-rel próbáltad? Szozat nélkül talán jóbb.
Cím: Score Hiba!!!!
Írta: sticky2 - 2013. február 15. - 18:37:08
\"Kicsit\" hibás :D
 
Kód: (pawn) [Kijelölés]
forward Pont(playerid);
public OnFilterScriptInit()
{
SetTimer(\"Pont\", 60000, 1);
return 1;
}
public Pont(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerScore(playerid, GetPlayerScore(playerid)+1);
}
}

Cím: Score Hiba!!!!
Írta: BackUP - 2013. február 15. - 18:43:05
Mondjuk igaz :D
Cím: Score Hiba!!!!
Írta: ObiWan - 2013. február 15. - 18:46:08
mostmár jó az idõ, de most viszont az a gond hogy 1 percenként ad 2x500pontot
azaz 1 percenként 1000pontot, pedig 1et kellene
Cím: Score Hiba!!!!
Írta: Red-Eye - 2013. február 15. - 19:01:46
Idézetet írta: sticky2 date=1360949828\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"33823\" data-ipsquote-contentclass=\"forums_Topic
\"Kicsit\" hibás :D
 
Kód: (pawn) [Kijelölés]
forward Pont(playerid);
public OnFilterScriptInit()
{
SetTimer(\"Pont\", 60000, 1);
return 1;
}
public Pont(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerScore(playerid, GetPlayerScore(playerid)+1);
}
}


ez se volt annyival jobb xD mondjuk egy kicsivel azért már jobb volt de figyelmetlen xD
 
forward Pont(playerid);
public OnFilterScriptInit()
{
SetTimer(\"Pont\", 60000, 1);
return 1;
}
public Pont(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerScore(i, GetPlayerScore(i)+1);
}
}

 
aki ügyes meglátja mit írtam át xD
Cím: Score Hiba!!!!
Írta: ZyZu. - 2013. február 15. - 19:03:36
Idézetet írta: sticky2 date=1360949828\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"33823\" data-ipsquote-contentclass=\"forums_Topic
\"Kicsit\" hibás :D
 
Kód: (pawn) [Kijelölés]
forward Pont(playerid);
public OnFilterScriptInit()
{
SetTimer(\"Pont\", 60000, 1);
return 1;
}
public Pont(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerScore(playerid, GetPlayerScore(playerid)+1);
}
}


Ez is hibás mert csak az ID 0 -nak adja majd a pontot oda.. :)
Cím: Score Hiba!!!!
Írta: Red-Eye - 2013. február 15. - 19:05:20
Zyzu késtél ezzel a kijelentéseddel egy pöpet xD
Cím: Score Hiba!!!!
Írta: ZyZu. - 2013. február 15. - 19:12:26
Akkor is hibás nem az i de az is hiba volt hanem a SeTimer helyett én inkább SeTimerEx -et használnék mivel csak az ID: 0 -nak adja..
Cím: Score Hiba!!!!
Írta: ObiWan - 2013. február 15. - 19:16:31
Ez már jó lett, de még mindíg hibás, mert 2 perc alatt kaptam 4 pontot, holott percenként csak 1 pontot kellene hogy adjon
Cím: Score Hiba!!!!
Írta: Red-Eye - 2013. február 15. - 19:18:19

forward Pont(playerid);
public OnFilterScriptInit()
{
SetTimer(\"Pont\", 60000, true);
return 1;
}
public Pont(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerScore(i, GetPlayerScore(i)+1);
}
}

 
utsó kommim ide,de ha ebben te látsz olyan hibát ami kihat a mûködésére szólj, és még ha tegyük fel a Pont eljárás playerid-ként csak 0-át kapna folyton akkor se befolyásolja a for ciklust mivel az a saját egyedi i változójával baromkodik és az i változik emiatt nem szükséges mégcsak az se hogy a eljárás megkapja a playerid-t, szóvaaal... :whistle:
sry a féloffért mindenkinek,csak van amit nem bírok elviselni xD
na vissza  témához, rögtön letesztelem mennyire rossz is ez a verzió.
addig meg byebi :smokin:
Cím: Score Hiba!!!!
Írta: ObiWan - 2013. február 15. - 19:22:57
Idézetet írta: Red-Eye date=1360952299\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"33823\" data-ipsquote-contentclass=\"forums_Topic


forward Pont(playerid);
public OnFilterScriptInit()
{
SetTimer(\"Pont\", 60000, true);
return 1;
}
public Pont(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerScore(i, GetPlayerScore(i)+1);
}
}

 
utsó kommim ide,de ha ebben te látsz olyan hibát ami kihat a mûködésére szólj, és még ha tegyük fel a Pont eljárás playerid-ként csak 0-át kapna folyton akkor se befolyásolja a for ciklust mivel az a saját egyedi i változójával baromkodik és az i változik emiatt nem szükséges mégcsak az se hogy a eljárás megkapja a playerid-t, szóvaaal... :whistle:
sry a féloffért mindenkinek,csak van amit nem bírok elviselni xD
na vissza  témához, rögtön letesztelem mennyire rossz is ez a verzió.
addig meg byebi :smokin:
 
Ezer bocs, már megoldottam. Én rontottam el azzal, hogy benthagytam az elõzõ settimer-t is és így ezért adott 2 pontot percenként.
Cím: Score Hiba!!!!
Írta: Red-Eye - 2013. február 15. - 19:27:08
Ha müxik akkor oksa  ;D valszeg nem sokat segítettem, de ha mégis akkor szívesen  ^-^
Cím: Score Hiba!!!!
Írta: ObiWan - 2013. február 15. - 19:28:32
Mostmár csak az kellene, hogy mentse is egy fájlba mindenki pontját dinivel.
Aztán meg betöltse. (dinihez egyáltalán nem értek :S)
Cím: Score Hiba!!!!
Írta: Red-Eye - 2013. február 15. - 19:31:50

#include <a_samp>
#include <dini>
enum pAdat
{
score
}
new nev[MAX_PLAYER_NAME];
new loc[100];
new PlayerAdat[MAX_PLAYERS][pAdat];
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Score Saver 4 Chansee by RedDEV (founded by Red-Eye)\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
 
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
    format(loc, sizeof(loc), \"/scores/%s.ini\",nev);
    if(!dini_Exists(loc))
{
    dini_Create(loc);
    dini_IntSet(loc, \"Score\", 0);
    PlayerAdat[playerid][score] = dini_Int(loc, \"Score\");
    }
else
{
    PlayerAdat[playerid][score] = dini_Int(loc, \"Score\");
    SetPlayerScore(playerid,PlayerAdat[playerid][score]);
    }
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
PlayerAdat[playerid][score] = GetPlayerScore(playerid); // <--- OTT xD
GetPlayerName(playerid,nev,sizeof(nev));
format(loc,sizeof(loc),\"/scores/%s.ini\",nev);
if(!dini_Exists(loc))
{
dini_Create(loc);
dini_IntSet(loc, \"Score\", 0);
}
else
{
dini_IntSet(loc,\"Score\",PlayerAdat[playerid][score]);
}
return 1;
}

 
másnak írtam de lehet hogy neked is jó lesz akkor de azért nézd át már régebben volt akkor mondjuk leteszteltem de akkor is xD jah meg ne felejts el scriptfiles-ban létrehozni egy scores nevû mappát
ha nem értesz rajta valamit szólj  8)
Cím: Score Hiba!!!!
Írta: Csabesz - 2013. február 15. - 19:36:16
Idézetet írta: ZyZu date=1360951946\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"33823\" data-ipsquote-contentclass=\"forums_Topic
Akkor is hibás nem az i de az is hiba volt hanem a SeTimer helyett én inkább SeTimerEx -et használnék mivel csak az ID: 0 -nak adja..
 
na ezzel a hsz-el, kicsit besültél :DDDd
Cím: Score Hiba!!!!
Írta: ObiWan - 2013. február 15. - 19:38:10
Minden tökéletesen mûködik. Köszönök midnent.
Témát zárom!