hi leute ich habe Carsystem by GermanReallife-Team, finde es ist ein guter script.
leider habe ich ein problem. immer wenn ich ein auto kaufe, dann zieht es dem spieler kein geld ab, auch wenn ich es wieder verkaufe passiert nichts.
bei anderen spieler auf meinem server zieht es auch kein geld ab. was kann ich tun. muss ich da was verändern.
bitte um hilfe
german carsystem hilfe
- ZoD1aC
- Geschlossen
- Erledigt
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
-
-
Hm...benutzt du es als Filterscript oder direkt im Gamemode ?
-
Das sieht mir stark nach unserem Car-System aus wegen dem "German-Reallife-Team"
Wende dich im bezug auf das Carsystem doch bitte an unseren Scripter Ping.Edit: habe nun selber nachgefragt und er meinte "er hat nen anti money cheat system und muss alle zeilen in denen GivePlayerMoney und GetPlayerMoney steht passend ersetzen"
-
durch was muss ich GivePlayerMoney und GetPlayerMoney ersetzten?
ps habe es als filterscript -
Das musst du per CallRemoteFunction machen!
Schreib mir mal hier rein wie in deinem Script das Geld des Players normalerweise abgezogen wird...
-
hier ich hoffe es reicht ,wenn nicht sag bescheid
else if (strcmp("/buycar", cmd, true, 10) == 0)
{
if (Spectating[playerid][0]!=-1)
{
if (Carlist[playerid][Typ]==-1)
{
new preis = Kaufliste[Spectating[playerid][0]][Preis];
if (preis <= GetPlayerMoney(playerid))
{
new autohaus=Kaufliste[Spectating[playerid][0]][Autohaus];
GivePlayerMoney(playerid, - preis);
Carlist[playerid][Typ]=Spectating[playerid][0]; Carlist[playerid][X]=Autospawns[autohaus][X]; Carlist[playerid][Y]=Autospawns[autohaus][Y];
Carlist[playerid][Z]=Autospawns[autohaus][Z]; Carlist[playerid][Rotation]=Autospawns[autohaus][Rotation]; Carlist[playerid][Status]=1; Carlist[playerid][Lock]=0;
Carlist[playerid][Carid]=CreateVehicle(Kaufliste[Spectating[playerid][0]][Modelid],Carlist[playerid][X],Carlist[playerid][Y],Carlist[playerid][Z],Carlist[playerid][Rotation],-1,-1,-1);
SetVehicleParamsForAll(Kaufliste[Spectating[playerid][0]][Carid],0,0);
TogglePlayerControllable(playerid,1);
Spectating[playerid][0]=-1;
RemovePlayerFromVehicle(playerid); -
Nicht aus dem Filterscript^^, sondern aus deinem Gamemode...
-
aso ok sry
ich hoffe du meinst das hier
if(strcmp(cmd, "/starttest", true) == 0)
{
if(PlayerToPoint(2.0, playerid,364.3292,173.8366,1008.3828))
{
new money = GetPlayerMoney(playerid);
if(money < 10000)
{
SendClientMessage(playerid, COLOR_GRAD1, " Du hast nicht genug Geld bei dir!");
}
if(money >= 10000)
{PlayerMoney[playerid] -= 10000;
SetPlayerPos(playerid,-2024.7223,-114.0907,1035.1719);
SetPlayerInterior(playerid,3);
TogglePlayerControllable(playerid,0); -
Hmm, das hilft mir auch nicht wirklich^^. Wenn bei einem Autokauf das Geld nicht abgezogen wird liegt es daran das in deinem Gamemode ein Anti-Money-Cheat System eingebaut ist!
Da muss zum Beispiel GivePlayerMoney durch z.B. GivePlayerCash oder so ersetzt worden sein! Und das brauch ich^^.
Naja, jedenfalls musst du jede Methode so ändern:
CallRemoteFunction("Deine-GetPlayerMoneyFunktion","i",playerid)
CallRemoteFunction("Deine-GivePlayerMoney","ii",playerid, - preis) -
ich benutze die vorlage des psychosandman perfect rolplay
das ist glaub ich der anticheat
public AntiMoneyCheat() // AntimoneyCheat
{
new i, j;
for (i = 0, j = MAX_PLAYERS; i < j; i++)
{
if(GetPlayerMoney(i) > PlayerMoney[i])
{
new moneydif;
moneydif = GetPlayerMoney(i)-PlayerMoney[i];
GivePlayerMoney(i, - moneydif);
}
else if(GetPlayerMoney(i) < PlayerMoney[i])
{ -
Das muss ich mir selber erst angucken, ich schreibe dann wieder hier rein!
-
ok danke
-
Versuch es mal so hier..
Ersetz bei dem /buycar Befel:
GivePlayerMoney(playerid, - preis);
mit diesem hier:
CallRemoteFunction("PlayerMoney[playerid]","ii",playerid, - preis);
und teste mal ob das Geld nun abgezogen wird! -
es klappt leider nicht
D:\gta server\Psychosandman\filterscripts\carsystem1.4.pwn(795) : error 017: undefined symbol "PlayerMoney"
D:\gta server\Psychosandman\filterscripts\carsystem1.4.pwn(795) : warning 215: expression has no effect
D:\gta server\Psychosandman\filterscripts\carsystem1.4.pwn(795) : error 001: expected token: ";", but found "]"
D:\gta server\Psychosandman\filterscripts\carsystem1.4.pwn(795) : error 029: invalid expression, assumed zero
D:\gta server\Psychosandman\filterscripts\carsystem1.4.pwn(795) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
-
Schreib mir mal den ganzen /buycar Abschnitt hier rein.
-
else if (strcmp("/buycar", cmd, true, 10) == 0)
{
if (Spectating[playerid][0]!=-1)
{
if (Carlist[playerid][Typ]==-1)
{
new preis = Kaufliste[Spectating[playerid][0]][Preis];
if (preis <= GetPlayerMoney(playerid))
{
new autohaus=Kaufliste[Spectating[playerid][0]][Autohaus];
// GivePlayerMoney(playerid, - preis);
PlayerMoney[playerid](playerid, - preis);
Carlist[playerid][Typ]=Spectating[playerid][0]; Carlist[playerid][X]=Autospawns[autohaus][X]; Carlist[playerid][Y]=Autospawns[autohaus][Y];
Carlist[playerid][Z]=Autospawns[autohaus][Z]; Carlist[playerid][Rotation]=Autospawns[autohaus][Rotation]; Carlist[playerid][Status]=1; Carlist[playerid][Lock]=0;
Carlist[playerid][Carid]=CreateVehicle(Kaufliste[Spectating[playerid][0]][Modelid],Carlist[playerid][X],Carlist[playerid][Y],Carlist[playerid][Z],Carlist[playerid][Rotation],-1,-1,-1);
SetVehicleParamsForAll(Kaufliste[Spectating[playerid][0]][Carid],0,0);
TogglePlayerControllable(playerid,1);
Spectating[playerid][0]=-1;
RemovePlayerFromVehicle(playerid);
format(string,128,"Du hast dir erfolgreich für $%i ein/einen %s gekauft!",preis,Kaufliste[Carlist[playerid][Typ]][Name]);
SendClientMessage(playerid, COLOR_RED, string);
SendClientMessage(playerid, COLOR_GREEN, "Wenn du dein Fahrzeug zerstörst, gib /fixcar ein.");
SendClientMessage(playerid, COLOR_GREEN, "Mit /carlock kannst du dein Fahrzeug für andere Leute freigeben oder abschließen.");
SendClientMessage(playerid, COLOR_GREEN, "Mehr Befehle kannst du unter /carhelp sehen.");
SendClientMessage(playerid, COLOR_YELLOW, "Dein Auto steht am Ausgabepunkt bereit! Viel Spaß beim Fahren!");
}
else { format(string, 128, "Du hast nicht genug Geld für das Auto (benötigt: $%i)!", preis); SendClientMessage(playerid, COLOR_LIGHTRED, string); }
}
else { SendClientMessage(playerid, COLOR_GREY, "Du besitzt bereits ein Auto!"); }
}
else { SendClientMessage(playerid, COLOR_GREY, "Du besichtigst kein Auto!"); }
return 1;
} -
OMG, du solltest nicht nur PlayerMoney dort eintragen sondern den kompletten Code den ich da oben stehen hatte^^.
CallRemoteFunction("PlayerMoney[playerid]","ii",playerid, - preis);
-
es wird immer noch kein geld abgezogen
ich habe
GivePlayerMoney(playerid, - preis);
durch deiins ersetzt
CallRemoteFunction("PlayerMoney[playerid]","ii",playerid, - preis); -
Ich teste das eben mal selber, hab mir den Gamemode mal besorgt, wenn ich alles soweit habe schreibe ich wieder hier rein!
-
ok ich danke dir das du dir die zeit nimmstz und mir hilfst
-