kp, ob das ,das is was du gesucht hast joe aber Klick and Lick
Beiträge von BlackFoX
-
-
return 1;
}unter der dini speicherung einfach löschen
-
if(dini_Exists(save))
{
dini_IntSet(save,"Geld",GetPlayerMoney(playerid));
dini_IntSet(save,"Wanteds",GetPlayerWantedLevel(playerid));
dini_IntSet(save,"skin",GetPlayerSkin(playerid));
} -
#pragma unused Funktions oder Variablenname
Wurde schonmal erwähnt
-
new pname[16];
GetPlayerName(playerid,pname,sizeof(pname));
new disconnectreason[64];
switch(reason)
{
case 0: format(disconnectreason, sizeof(disconnectreason), "%s hat den Server verlassen. (Verbindung unterbrochen)", pname);
case 1: format(disconnectreason, sizeof(disconnectreason), "%s hat den Server verlassen. (verlassen)", pname);
case 2: format(disconnectreason, sizeof(disconnectreason), "%s hat den Server verlassen. (Kick/Ban)", pname);
}
SendClientMessageToAll(0xAAAAAAAA, disconnectreason); -
Die Positions Daten werden per GetVehiclePos in die Variablen auf Float basierend
reingepackt, in dem fall vX, vY, vZSobald du den befehl benutzt werden sie immer wieder neu ermittelt
-
SetPlayerCheckpoint oder SetPlayerRaceCheckpoint
new Fahrschule[3]; // Lokal Definieren
// OnGameModeInit
Fahrschule[0] = AddStaticVehicle(492,284.5026,-1526.1539,24.3755,234.5499,77,26);
Fahrschule[1] = AddStaticVehicle(492,299.0179,-1536.2606,24.3755,55.1702,81,27);Bei OnPlayerStateChange:
if(newstate == 2)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid == Fahrschule[0] ||vehicleid == Fahrschule[1])
{
// Aktion
}
} -
Ihr wollt euren Code Optimieren ?
Ok fang ich mal an , es geht klar um Pawn/C++/C egal jetzt, jedenfalls erster Tipp das euer Code kürzer und schneller wird,
was man oft im Script ,,The Godfather´´ sieht wäre:if(!strlen(tmp))
{
SendClientMessage(playerid,farbe,"nachricht");
return 1;
}Noch Kürzer ?? klar ! warum nicht ?
if(!tmp[0])return SendClientMessage(playerid,farbe,"nachricht");
Tja kurz genug ? :>
.:::: Hilfreich ::::.
Mich kotzt es persönlich an wenn Variablen einzeln definiert werden wobei man doch eig mehrere z.b. für einen Spieler braucht ,
das sieht meist so aus:new Bank[MAX_PLAYERS];
new Geld[MAX_PLAYERS];vllt auch so ?
new Bank[MAX_PLAYERS],
Geld[MAX_PLAYERS];naja beides der gleiche Müll wenn man es doch für jeden Spieler haben möchte , daran sitzt man ewig,
hier so gehts am besten:enum spielerpaket
{
geld,
bank,
}
new SpielerDaten[MAX_PLAYERS][spielerpaket];nun könnt ihr es so z.b. nutzen ( Für die, die Kein Plan haben )
SpielerDaten[playerid][geld] = 10000;
.:::: Text Optimieren :::::.
Manchmal wenn ich durch ein Skript schaue sehe ich das manche variablen auf 256 stehen und als Textwert genutzt werdennew String[256];
Da denk ich mir doch Sa-mp unterstützt allgemein nur 128 Zeichen ,
und zuviele Text Index Zellen machen das Skript noch unnötig Groß und den Code Langsamernew String[128];
schon besser, aber was ihr auch noch beachten solltet definiert wirklich nur die Zeichenlänge die man in dem fall braucht.
Das beste Beispiel , was ich übringens früher aus gewohnheit gemacht habe, eine Variable mit 128 Zellen zu definieren und darin einen Namen zu packen, aber ein Name kann maximal nur 16 Zeichen nutzen O_O"
also:
new Playername[16];
GetPlayerName(playerid,Playername,sizeof Playername);.:::: Speichern von Daten im Script::::.
So das ist mal gegen, die Leute die MySql nutzen für ihr Skript, es mag sein das MySql evntl. schneller ist und ihr Prima damit klar kommt, aber die normalen Datei Funktionen haben ebenso
ein gute Leistung und benutzen mit dieser Methode auch so gut wie keine großen Resourcen:DMA's Zitat:
Man muss ja nicht nach jedem kack speichernDa kann ich nur zustimmen, den Speichern würde ich erst wenn es die Situation erfordert,
wie z.b.Der Spieler geht Offline Daten werden bei OnPlayerDisconnect gespeichert
oder:
Der Server geht offline , Daten werden meist per OnGameModeExit() oder OnGameModeExitFunc() gespeichert
Das sind die besten wege zu einem Resourcen schonenden Skript!
Geschrieben von mir BlackFoX und DMA hat sich die Zeit genommen und nochmal drüber geschaut bzw. nochwas ausgebessert
-
Mach das unter:
www = TextDrawCreate(430.000000,430.000000,WWW); -
-
Er meint das die Nachricht an alle gesendet wird die Online sind
-
es müssen genau soviele Offene Brackets sein wie , geschlossende da sind und anders rumm
klasse()
{
if(expression == 0)
{}
} -
Tja dann hast du wohl eine klammer vergessen, }
-
Im GF glaube ich gibt es das Problem das die Autos nicht eine per Parameter festgelegte Spawn Zeit haben sondern,
eine bestimmte klasse checkt ob in dem Fahrzeug noch Passagiere sind wenn nicht wird es Respawnt -
SetTimer("Belebt",60000,0);
teste es einfach
-
SetTimer("Belebt",60000,false);
da fehlte was
Text angefangen aber nicht beendet
-
Wenn es nen GF ist dann gabs glaub ich schonmal iwo nen Thema dazu
ich glaube es lag an dieser Klasse im GF: CarCheck()
in dem Bereich:
if (gLastDriver[code=c] == 301) // <<<
{
CarRespawn(c); // <<<
}
if (gLastDriver[code=c] >= 300)
{
gLastDriver[code=c]++;
} -
if (strcmp(cmd, "/getplayer", true) ==0 )
{
new Float:xb,Float:yb,Float:zb;
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
return 1;
}
if(IsPlayerConnected(strval(tmp))
{
GetPlayerPos(playerid,xb,yb,zb);
SetPlayerPos(strval(tmp),xb+1.0,yb,zb);
}
return 1;
} -
Schnelle + Kurze Kopier Funktion für Textwerte:
stock StringCopy(destination[], Source[])
{
new index = 0;
while(index < strlen(Source))
{
destination[index] = Source[index];
index++;
}
} -
Motocross und nebenbei Urban,
wenn mir lw ist C++,Pawn und was nicht alles mit dem Rechner zu tun hat.
mit Kumpels treffen