Einfach die .map Datei mit einem Konverter konvertieren und dann bei OnGameModeInit/OnFilterScriptInit einfügen ![]()
mfg. ![]()
Einfach die .map Datei mit einem Konverter konvertieren und dann bei OnGameModeInit/OnFilterScriptInit einfügen ![]()
mfg. ![]()
Da (musste mal testen):
stock splitgm(const strsrc[], strdest[][], delimiter)
{
new i, li, aNum, len;
while(i <= strlen(strsrc))
{
if(strsrc[i] == delimiter || i == strlen(strsrc))
{
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return 1;
}
Beispiel:
new tmp[2][64];
splitgm("Hallo du!", tmp, ' ');
print(tmp[0]); //er printet "Hallo"
mfg. ![]()
Ich denke mal wenn du da 0.5sek sparen kannst und nur 1Byte oder so verschwendest...ist das denke ich mal okay ![]()
Also, ich würde da so einen break machen !
mfg. ![]()
Das was Goldkiller gepostet hat, ist eine Include Datei, du kannst sie direkt verwenden, musst einfach nur:
AddGate(_modelid, Float:_x[2], Float:_y[2], Float:_z[2] , Float:_rotx , Float:_roty , Float:_rotz , Float:_speed , Float:_size)
verwenden und diesen Pfad anlegen: "/gF4A/gate/gates.txt" ![]()
mfg. ![]()
Sry4pwn:
Meinst du Ressourcensparender oder schneller? Denn Ressourcensparender wäre deine erste Variante, nicht die von Kaliber...
Nein, da er 500 Spieler durchläuft ![]()
und wenn, dann wäre es seine 2. Variante ![]()
Doch wenn ich nun spawne, dann ist die Kamera irgendwo im nichts....
genau da SetCameraBehindPlayer(playerid); einfügen ![]()
Welche von beiden Varianten ist ressourcensparender... ?
Meine:
cmd (...)
{
new found = 0;
for(new i =0; i<100; i++) {
if(!IsPlayerConnected(i)) continue;
if(!IsACop(i)) continue;
found++;
if(found>=2) break;
}
if(found>=2) {...}
}
mfg. ![]()
danke dir Dog.
Du weißt aber, dass das Goldkiller war, der dir den Code gepostet hat ![]()
1.
Kick(playerid); //playerid = playerid vom Bot/NPC
2.
SetCameraBehindPlayer(playerid); //am ende einfügen
mfg. ![]()
Dieser Code ist sehr schlecht Reloadet und das nicht nur weil er 2 Timer benötigt, obwohl man das in einen schreiben kann ![]()
Du hast ja auch die Variable money noch nicht becshrieben ![]()
Schreibe es so:
if(dialogid == DIALOG_EINZAHLEN)
{
if(response == 0) return 1;
if(response == 1)
{
new money, string[128];
money = strval(inputtext);
if(GetPlayerMoney(playerid) < money)return SCM(playerid,msg,"Du hast nicht genug Geld.");
if(money<1||money>5000000)return SCM(playerid,ROT,"Falscher Wert (min. 1$ | max. 5000000$)");
GivePlayerMoney(playerid,-money);
SetPVarInt(playerid,"Konto",GetPVarInt(playerid,"Konto")+money);
format(string,sizeof(string),"Du hast erfolgreich %i$ auf dein Konto gezahlt.",money);
SendClientMessage(playerid,grün,string);
}
}
mfg. ![]()
Nein, es gibt keine andere Möglichkeit als einen Timer, aber du benötigst ja nur 1nen, bzw wenn du schon einen hast, kannst du alles auf 1nen Timer reduzieren ![]()
mfg. ![]()
Du kannst auch mit SetTimerEx arbeiten, dann ist eine Schleife nicht nötig ! ![]()
Bsp:
//Bei OnPlayerConnect
SetTimerEx("Up", 1000, 1, "i", playerid);
//Callback
forward Up(playerid);
public Up(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, X, Y, Z)) //Natürlich ersetzen
{
MoveObject(...);
}
return 1;
}
mfg. ![]()
for(new i; i<100; i++)
{
if(!IsPlayerConnected(i)) continue;
if(!IsPlayerInAnyVehicle(i)) continue;
if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
{
PlayAudioStreamForPlayer(i, "http....");
}
}
mfg. ![]()
Wie wäre es mit einem random System:
new skin = random(299);
SetPlayerSkin(playerid, skin);
oder irgentwie sowas evtl:
new skin = (playerid+70);
SetPlayerSkin(playerid, skin);
Alles möglich ![]()
mfg. ![]()
if(!IsPlayerInFrakt(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Cop!");
Du hast das ! da vergessen ![]()
mfg. ![]()
Schreibe es so:
forward Audio_OnSetPack(audiopack[]);
public Audio_OnSetPack(audiopack[])
Du hast den forward vergessen ![]()
mfg. ![]()
So ein Abschlepp System ist ganz simpel, hier schreib doch kurz eins selber: AttachTrailerToVehicle
mfg. ![]()
Es ist schneller als DCMD und ZCMD keine Ahnung.
Jedoch ist es NICHT das langsamste und OCMD ist auch sehr übersichtlich
Du weißt aber, dass kleinerOpa (der schreiber von OCMD) so ziemlich viel bei ZCMD abgeschaut hat und nur das "COMMAND" zu "ocmd" geändert hat ![]()
und ich finde ZCMD besser, da es zwei nützliche Callbacks anstelle von OnPlayerCommandText hat und man so nicht auf Gross-/Kleinschreibung achten muss !
mfg. ![]()