Hallo,
ich wollte mal wissen, ob es schon möglich ist für samp 0.3 zu scripten, denn hier : http://forum.sa-mp.de/wbb/san-andreas-multiplayer/scripting-base/the-godfather/18651-godfather-für-samp-0-3-fähigkeit-2?highlight=0.3+server haben schon mehrere gesagt sie würden ein neues Script anfangen wollen...
Soweit ich weis sind doch die neuen Funktionen noch nicht bekannt und es gibt noch keine 0.3 server exe!?
Habe ich da was verpasst oder leben die Leute in dem Threat in der Zukunft?
MfG. Ich
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
-
Thx...
€: Ich habe nen kleinen Bug, mit meinem Anti Geld Hack system, der kontrolliert nichtmehr jede Sekunde das Geld : SetTimer("money",1000,true);
public money()
{
new playerid;
GivePlayerMoney(playerid,pInfo[playerid][Geld]);
}Vorher hats aber geklappt!
-
Benutze eine Schleife dafür innerhalb von dem Callback "money", so wird das nciht funktionieren, auch früher schon nicht
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected[i])
{
//hier dein Code mit "i" anstatt "playerid"
}
}Dein Money System wird aber sowieso nicht funktionieren... Du musst das Geld mit dem Geld des Scriptes vergleichen und dann wenn die beiden Zahlen unterscheidlich sind, weißt du, dass er gecheatet hat
if(GetPlayerMoney(i) > pInfo[i][Geld]) ResetPlayerMoney(i); GivePlayerMoney(i, pInfo[i][Geld]);
Natürlich musst du jedes mal im Script wenn du dem Spieler Geld gibst vorher auch die pInfo[playerid][pGeld] Variable aktualisieren
pInfo[playerid][pGeld] += value;
GivePlayerMoney(playerid, value); -
Es ist mir egal, ob ich merke, ob jmd. cheatet (100 % ist das eh nicht machbar, da Geld ja auch beim Pay'n Spray abgezogen wird und es deshalb zu unregelmäßigkeiten kommt. Meine Idee ist/war, dass das Geld in der Datei gespeichert wird und alles was man kauft mit pInfo[playerid][money] -=xxx$ abgezogen wird, anstadt mit der von Samp vorgesehenen Funktion. So wird das Geld in einer Datei auf dem Server gespeichert und nicht ClientSide...
Bis 0.2x hats ja geklappt, doch als ich 0.3 getestet habe, bin ich in meine Bank gegangen und musste feststellen, das das Geld nicht resetet wird, was man auf der Hand hat, in die Menge die in der Datei steht, dann habe ichs nochmal mit S0beit versucht und es ging immernoch nid.... -
Zitat
Bis 0.2x hats ja geklappt, doch als ich 0.3 getestet habe, bin ich in meine Bank gegangen und musste feststellen, das das Geld nicht resetet wird
public money()
{
new playerid;
GivePlayerMoney(playerid,pInfo[playerid][Geld]);
}
Hat NIEMALS unter 0.2 funktioniert, genauso wenig wie in irgendeiner anderen Funktion. Dein von dir geposteter Code bringt nur soviel, dass jede Sekunde "money" aufgerufen wird und SPielerid 0 (sonst NIEMAND) dauerhaft "pInfo[playerid][pGeld] hinzuaddiert bekommt, er hat irgendwann undlich Geld in seiner Anzeige, auch wenn du das Geld nicht benutzt.
Es ist mir egal, ob ich merke, ob jmd. cheatet (100 % ist das eh nicht machbar, da Geld ja auch beim Pay'n Spray abgezogen wird und es deshalb zu unregelmäßigkeiten kommt.
Durch lesen meines Codes UND meines Textes hättest du bemerkt, dass nicht überprüft wird, ob das Geld kleiner ist, sondern nur überrüft wird ob das Geld größer ist, falls ja wird das Geld wieder zurückgesetzt auf die Variable in deinem Script, sofern du diese überhaupt mit hochzählen lasst durch z.B. "GiveUserMoney" anstatt "GivePlayerMoney" bei JEDEM Geld geben.
stock GiveUserMoney(playerid, amount)
{
GivePlayerMoney(playerid, amount);
pInfo[playerid][pGeld] += amount;
}
Bekanntlicherweise macht ein PaynSpray somit nichts aus, da es Geld abzieht, genauso wie ein Sprunk Automat usw. -
Minimale Verbesserung:
[...]
GiveUserMoney(playerid, amount); // muss Player heißen und nicht User
[...] -
Danke, habs übersehen und editiert
-
Naja es hat auf jedenfall geklappt, vorher wars aber nid GivePlayerMoney sondern SetPlayerMoney oder so, aber das habe ich geändert, weils nidmehr funktioniert hat. Entweder ist der Timer im Arsch oder die funktion...
-
breadfish.de
Hat das Thema geschlossen.