Beiträge von Kaliber
-
-
die dll datei habe ich ja im SAMP Server ordner
Ne, das ist ne andere...schau mal genau hin
-
Downloade dir hier mal die 32-Bit Version (VSU4\vcredist_x86.exe).
Und dir fehlt diese .dll Datei: msvcr100d.dll
mfg.

-
Im Serverlog ist nichts.
Dann verwende mal das crashdetect Plugin
-
Außerdem wäre eine direkte Zuweisung (x = "Noob";) wesentlich performanter
Achwas...aber man kann halt nicht immer direkt den Wert der Variable wissen und wenn schon was drinnen steht...ist es schneller einfach das NULL-Byte zu verschieben als format zu verwenden..Bei lokalen Variablen spielt das eh keine Rolle, da die nach verlassen des jeweiligen Scopes gecleart werden...memcpy verwenden (was übrigens gleich schnell ist aber nur eine Zeile Code benötigt).
memcpy ist eine alternative zu strcat, aber die "löscht" dir auch nicht den string, sondern kopiert nur einen anderen String quasi darein. -
Wäre der String gelöscht, wäre das "u" nicht mehr da.
...zum 3.x ja ich denke jetzt hat es jeder verstanden, da aber das EOS verschoben wird, existiert das "u" zwar im Speicher, aber gehört nicht direkt mehr zu dem String
...es war nur eine Ergänzung, dass man so strings für die Funktionen quasi "leeren" kann...
-
Nur, weil du ein EOS da hinsetzt, ist der String nicht gelöscht.
Du...das ist mir auch klar und das hat doch schon Jeffry in seinem Post geschrieben.Ich wollte damit nur sagen, dass man dadurch strcat nutzen kann oder auch alle anderen String-Funktionen und die behandeln das dann so, als ob der String "gelöscht" wurde...
-
Also ich brauche nur das für die Tabelle , da bei INT nicht mehr als 3 Stellen angezeigt werden obwohl es 16 STellig ist.
...Eine Ip ist ein String, da du ja auch . drinnen hast
Das ist nicht nutzlos, das ist so als würdest du den String löschen (schnellere Alternative zu strdel)

new x[] = "Hallo";
x[0] = '\0';
strcat(x,"Noob");
print(x); //-> Noob -
Zeig mal die public Funktion OnQueryFinish

-
-
zerstören lassen oder ?
Richtig, macht es am besten so://Oben im Skript
new o1,o2;//Dann wo ihr die Obejkte erstellt:
o1 = CreateObject(...); //Das erste Objekt
//Hier die anderen
o2 = CreateObject(...); //Hier das letzte Objekt//Unter OnFilterScriptExit
for(new i=o1; i<=o2; i++) DestroyObject(i);Ich denke du arbeitest evtl mit einem Streamer dann einfach überall CreateDynamicObject und DestroyDynamicObject

mfg.

-
Aber das Problem hatten wir schon öfter
Also, nein das ist nicht normal, dann erstellst du die selben Objekte an der selben Position mehrmals
Das kommt, wenn du z.B. nur einen gmx machst, anstatt einen richtigen Server Restart

Oder wenn du Filterscripts öfters reloadst ohne dessen Objekte zu zerstören

mfg.

-
-
Naja so zum Beispiel:
new player_car[2][MAX_PLAYERS];
//Dann wo er das car kauft:
if(player_car[0][playerid]) return //hier hat er schon ein auto!
player_car[0][playerid] = CreateVehicle(...); //hier z.B. flash erstellen
player_car[1][playerid] = gettime()+60*60*3; //Hier nach 3std wirds gelöscht//Unter OnGameModeInit
SetTimer("AutoKauf",10000,1);//Dann außerhalb
forward AutoKauf();
public AutoKauf()
{
for(new i; i<MAX_PLAYERS; i++)
{
if(!player_car[0][i]) continue;
if((player_car[1][i]-gettime()) < 0)
{
DestroyVehicle(player_car[0][i]);
player_car[0][i]=0;
}
}
return 1;
}mfg.

//Edit: Hab was in der schleife vertauscht gehabt...
//Edit²: Ja ups..danke Jeffry -
obwohl alles richtig eingestellt ist.
Was sagt denn der Log?
-
Woran kann das liegen?
An einem Klammerfehler oder invaliden Makros:#define test# "hi"
oder
#define Job ""
oder
#define Job
oder du returnst einen String direkt in einer Funktion:
stock test() return "hallo";
oder du überschreibst einen Tag:
#define bool x
mfg.

-
Kann man dass umgehen irgendwie oder ist es von GTA SA so eingestellt?
Das kommt von GTA leider
P.S: Weiß jemand ein passendes Objekt für das Holz auf dem Walton?
Schau mal hier: http://gta-sa-mp.de/forum/inde…searchName&objSearch=woodEvtl: 1463
-
dann fängt der an zu Spammen
Bei mir nicht...dann hast du iwas falsch eingefügt?
Wenn dich die Nachrichten stören im Chat, nutze evtl GameTexte oder ein TextDraw

mfg.

-
Der Code funktioniert noch immer nicht korrekt, da du den Timer nicht beendest, wenn er die Taste früher loslässt.
Soll er das denn?
Dachte, wenn man die Taste drückt, soll der Motor nach 3sek angehen...
Eddy: Jetzt äußer dich mal

-
Es ist bis jetzt so, das der Nachricht er kommt, wenn ich los lasse, der Motor geht dann auch erst an, wenn ich los lasse .
Ja...so wolltest du das doch auch
Dann drück dich besser aus :b
Dann schreibs so:
//Am besten noch oben:
new bool:m_p[MAX_PLAYERS char];//Unter OnPlayerKeyStateChange
if(newkeys & KEY_LOOK_BEHIND || newkeys & KEY_SUBMISSION)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
if(!m_p{playerid}) SetTimerEx("@motor",3000,0,"i",playerid),m_p{playerid}=true;
}//Dann außerhalb:
@motor(i);@motor(i) return StartMotor(i),m_p{i}=false;mfg.
