Ich habe TACHOTIMER jetzt auch 500 gesetzt
#define TACHOTIMER 500
wenn ich jetzt wie du gesagt hast mache /1000
Geschwindigkeit = (Strecke / (TACHOTIMER/1000)) * 3.6;
kommt der bei Geschwindigkeitsanzeige nur 0 Km/h raus.
Ich habe TACHOTIMER jetzt auch 500 gesetzt
#define TACHOTIMER 500
wenn ich jetzt wie du gesagt hast mache /1000
Geschwindigkeit = (Strecke / (TACHOTIMER/1000)) * 3.6;
kommt der bei Geschwindigkeitsanzeige nur 0 Km/h raus.
Hallöschen,
Ich hab endlich mein Tacho hinbekommen ( )
allerdings springt das Tacho noch sehr...
anfangs war es so, das der Timer zu langsam lief.
Jetzt habe ich ihn auf 100 gestellt.
Jetzt springt das Tacho von 30 Km/h auf 140 Km/h und plötzlich wieder auf 6 Km/h.
So wirklich super ist das nicht
kann mir jemand helfen wie ich das verbessern kann?
public UpdateTacho()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && !IsPlayerNPC(i) && !IstEinKeinTachoFahrzeug(GetPlayerVehicleID(i)))
{
new Float:Strecke, Float:Geschwindigkeit;
GetVehiclePos(GetPlayerVehicleID(i),X1[i],Y1[i],Z1[i]);
Strecke = floatsqroot(floatpower(floatabs(floatsub(X1[i], X2[i])), 2)+floatpower(floatabs(floatsub(Y1[i], Y2[i])), 2)+floatpower(floatabs(floatsub(Z1[i], Z2[i])), 2));
Geschwindigkeit = (Strecke / (TACHOTIMER/100)) * 3.6 ; //Tachotimer läuft auf 100 millisekunden)
new Tachostring[20];
format(Tachostring, sizeof(Tachostring), "%d Km/h", floatround(Geschwindigkeit));
TextDrawSetString(Tacho[i], Tachostring);
GetVehiclePos(GetPlayerVehicleID(i),X2[i],Y2[i],Z2[i]);
TextDrawShowForPlayer(i, Tacho[i]);
}
else
{
TextDrawHideForPlayer(i,Tacho[i]);
}
}
return 1;
}
ich wüsste nur eine sehr aufwendige methode:
Du erstellst ein Object auf dem Auto (Es gibt ja ein Minigun object)
du erstellst einen Befehl wo abgefragt wird ob man in der nähe des
Objektes ist, wenn ja bekommt man eine Minigun. Dann noch ein Timer
der jede Sekunde abfragt ob du noch in der nähe des Objectes bist, wenn
nicht wird dir die Minigun wieder weg genommen.
Eine andere möglichkeit kenne ich nicht.
du machst eine abfrage
if(PlayerInfo[playerid][pDeagleskill]....)
und veränderst dann das Textdraw.. z.b. bei Skill 1 steht dort "Anfänger", bei Skill 2 "Zivillist".
sobald du den Server startest steht immer was drin
stock LoadBiz(i)
{
new str[128];
format(str, sizeof str, "/bizzs/%d.ini", i);
if(dini_Exists(str))
{
sBiz[Name] = dini_Int(str,"Name");
sBiz[Besitzer] = dini_Int(str,"Besitzer");
sBiz[PosX] = dini_Float(str,"PosX");
sBiz[PosY] = dini_Float(str,"PosY");
sBiz[PosZ] = dini_Float(str,"PosZ");
sBiz[Waren] = dini_Int(str,"Waren");
sBiz[Kasse] = dini_Int(str,"Kasse");
sBiz[Preis] = dini_Int(str,"Preis");
sBiz[Level] = dini_Int(str,"Level");
sBiz[Besitzt] = dini_Int(str,"Besitzt");
}
return 1;
}
sBiz[i][PosX] = dini_Float(str,"PosX");
sBiz[i][PosY] = dini_Float(str,"PosY");
sBiz[i][PosZ] = dini_Float(str,"PosZ");
Hallöschen,
erst einmal zu meinem problem:
Wenn man /abladen eingibt kommt, "Du kannst hier nichts Abladen!", obwohl ich neben einem Biz stehe.
/Errors habe ich keine
Code:
if(strcmp("/abladen",cmdtext,true,10)==0)
{
for(new i = 0;i < MAX_BIZ; i++)
{
if(IsPlayerInRangeOfPoint(playerid,20.0,sBiz[i][PosX],sBiz[i][PosY],sBiz[i][PosZ])) //Hier die Abfrage, die bugt
{
for(new p = 0; i<sizeof(Truck); p++)
{
if(GetPlayerVehicleID(playerid) == Truck[p])
{
if(GetVehicleModel(GetVehicleTrailer(GetPlayerVehicleID(playerid))) == 435)
{
if(Aufgeladen[playerid] == 1)
{
SetTimerEx("Abladen",5000,0,"ii",playerid,i);
TogglePlayerControllable(playerid, 0);
SendClientMessage(playerid, Blau, "Die Ware wird abgeladen... ");
return 1;
}
else
{
SendClientMessage(playerid, Rot, "Du hast nichts geladen!");
return 1;
}
}
else
{
SendClientMessage(playerid, Rot, "Du brauchst einen passenden anhänger!");
return 1;
}
}
else
{
SendClientMessage(playerid, Rot, "Du befindest dich nicht in deinem Truck!");
return 1;
}
}
}
else
{
SendClientMessage(playerid, Rot, "Du kannst hier nichts Abladen!");
return 1;
}
}
}
findet jemand einen fehler?
Hallöschen,
mal ne frage...
Mein public sieht derzeit so aus:
public Abladen(playerid,Biz)
und das ist mein dazugehöriger Timer:
SetTimer("Abladen",6000,false);
Wie sicher schon auffällt benutzt das public "Biz"
wie kann ich "Biz" im Timer mit benutzen?
Windows XP 32Bit
.NET Framework 4.5:
.NET Framework 4.5 wird auf diesem Betriebssystem nicht unterstützt
Ich würds ja gern Testen, währe da nicht:
Pawnfox.exe ist keine zulässige Win32-Anwendung
sieht aus wie ein Godfather,
ausserdem kaum informationen über die features.
Und 300€ für Fraktionen die man so auch in einem kostenlosen Godfather bekommt?
Ich finde den server mega.
Es entsteht eine kleine Wirtschaft im Server und die Community ist sehr Reif.
Ich kann den Server nur weiterempfehlen.
das was du uns hier geschickt hast ist nich die server.log sondern die server.cfg
und das lanmode hat damit nichts zutuhn^^
poste mal deine server.log
Scheint ein gewöhnlicher Klammerfehler zu sein.
Zeige mal etwas mehr von weiter oben.
Gruss: Sonic
jetzt weis ich wenigstens wonach ich suchen muss
//finde keinen Klammerfehler weder ich noch der Notepad trick
Heyho,
ich habe ein problem, ich bekomme folgende Errors:
C:\...\AcL.pwn(337) : error 004: function "LoadBiz" is not implemented
C:\...\AcL.pwn(980) : error 004: function "LevelRespektpunkte" is not implemented
C:\...\AcL.pwn(990) : error 004: function "SaveBiz" is not implemented
C:\...\AcL.pwn(1060) : error 004: function "Aendern" is not implemented
C:\...\AcL.pwn(1075) : error 004: function "Aendern" is not implemented
C:\...\AcL.pwn(1090) : error 004: function "SpielerSpeichern" is not implemented
C:\...\AcL.pwn(7163) : warning 203: symbol is never used: "ret_memcpy"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
6 Errors.
die Errors sind ja eigendlich nicht Schwer zu fixxen...
zu dem letzten Error:
Es ist garkeine funktion in meinem Script namens ret_memcpy eingebaut?
zu den public Errors:
die publics stehen am Ende vom Script und sind auch mit forwards am anfang reingeschrieben?
forward SaveBiz();
forward LoadBiz();
forward SpielerSpeichern(playerid);
forward LevelRespektpunkte(); //oben im Script
public SpielerSpeichern(playerid)
{
if(IsPlayerConnected(playerid))
{
new Spieler[65];
new SName[MAX_PLAYER_NAME];
GetPlayerName(playerid,SName,sizeof(SName));
format(Spieler,sizeof(Spieler),"/Accounts/%s.Account",SName);
/* if(!dini_Exists(Spieler))
{
dini_Create(Spieler);
printf("%s wurde Erstellt, da er beim Speichern nicht vorhanden war.",Spieler);
}*/
if(dini_Exists(Spieler))
{
...
}
}
return 1;
}
public SaveBiz()
{
new str[128];
for(new i = 0; i<MAX_BIZ; i++)
{
format(str, sizeof str, "/Bizes/%d.ini", i);
if(dini_Exists(str))
{
...
}
}
return 1;
}
public LoadBiz()
{
new str[128];
for(new i = 0; i<MAX_BIZ; i++)
{
format(str, sizeof str, "/Bizes/%d.ini", i);
if(dini_Exists(str))
{
...
}
}
return 1;
}
doch, am ende von OnPlayerCommandText:
return SendClientMessage(playerid,Rot,"Server: Unbekannter Befehl! Verwende /Hilfe um Hilfe zu bekommen.");
hängt das vielleicht mit den publics, stocks oder ocmd zusammen?
Heyho,
seitdem ich Errors mit meinen publics hatte und sie so zu einem stock gemacht habe
kommt immer "SERVER: Unknown Command"
hat da jemand ein vorschlag oder eine idee für die ursache, sonst kann ich mein Script weg werfen
immernoch
C:\...\gamemodes\AcL.pwn(382) : warning 213: tag mismatch
//Edit hat geklappt, danke
also
if(!strlen(const String[]))
oder wie? xD