das wäre mal n schönes filterscript...^^
Beiträge von Sry4pwn
-
-
Vista Home Premium x64
+ 7 Home Premium x64 (Laptop) -
genau deswegen hab ich dich ja gefragt...
wieso sollte man es dann eher schneller als ressourecnsparender programieren ?niemand merkt was & es zieht mehr leistung
-
naya, ich denke mir bei geschwindigkeit kann man schon mal was wegnehmen, meinetwegen muss der typ dann eben ne halbe sekunde länger warten bis er ne antwort kriegt...
was er bei so ner for-schleife jedoch nicht muss, ausser der prozessor is von 1970...^^oder wieviel macht sowas aus. Bemerkt man da wirklich einen unterschied wenn das ausführen eines cmds etwas länger dauert ?
-
natürlich weniger, aber wenn ich die abfragen weglasse muss er die schleife noch 470 mal durcführen, wenn ich nach 30x meine 2 cops schon gefunden habe...
-
ja das war eben meine frage...
lieber eine schleife viel zu oft durchlaufen lassen, oder mehrere abfragen einbaun... -
ah okayy danke ;))
-
Habe eine Frage zum ressourcensparen...
am einfachsten erkläre ich mein anliegn einfach durch folgendes beispiel:
(Dabei möchte ich bei einem bestimmten cmd abfragen ob überhaupt 2 cops online sind, sonst funktionierts nicht. !)hier die erste variante:
cmd (...)
{
new found;
for(new i =0; i<MAX_PLAYERS; i++) {
if(isCop(i)) found++;
}
...if(found>=2) {...}
}oder eben die zweite:
cmd (...)
{
new found;
for(new i =0; i<MAX_PLAYERS; i++) {
if(isCop(i)) found++;
if(found>=2) break;
}
...if(found>=2) {...}
}Welche von beiden Varianten ist ressourcensparender... ?
-
Jetz speichert ers aber als float, wer will das schon.
Setpvarint will einen int.
Wenn du etwas mit einer dezinalzal multiplizierst, kommt ein float raus.Such mal nach floatround
-
bei allen cmds, bei denen man die sprache ändert, kann es schonmal nich sein, dass man geschweidte klammern benutzt,
für ein array benutzt man immer eckige []also statt zB pLanguage{playerid} = GER;
einfach pLanguage[playerid] = GER;
-
normalerweise müsste es doch damit gehen oder ?
InterpolateCameraPos(playerid, 0.0, 0.0, 10.0, 1000.0, 1000.0, 30.0, 10000, CAMERA_MOVE);
//falsche funktion
hier die richtige: -
Ich frage mich immer wieder wie Leute wie du so weit kommen, dass Sie sagen können sie sind fast fertig.
Da fand ich das registersystem am Anfang schwieriger -
dann solltest du mal ganz von vorne anfangen...
was haben so leute wie du in so nem forum verloren...^^was bringt dir das, wenn dir jetzt jemand den fertigen code schickt ?
der sinn an der scripting-seite ist, dass man sich austauscht und den anderen hilft,nicht dass man die arbeit für andere macht
wenn du im sa-mp wiki nicht lesen kannst, dann nochmal die funktion gibt eine zahl zwischen 0 und der zahl die du als parameter eingesetzt hast -1 zurück.
also eine zahl zwischen 0-24 wäre dann
random(25);in deinem fall könntest du das zB mit einem switch(random(4)) umsetzen.
Dann machst du eben 4 cases und in jedem setzt du den checkpoint eben an einen anderen punkt. -
ich denk mal die wollten dir hier alle helfen.
Mir wäre es ach lieber, wenn sie mir sagen dass beides schrott is, bevor sie mir sagen welcher besser is.achja und zu deiner aussage die neuen pc's kosten 800-1000€, würde ich nichtmal so sagen...
vielleicht high-end pc's, aber ich denke für 500-600€ lässt sich doch schon einiges machen... -
das is ja mal kompletter schwachsinn das so zu erklären
bei einer for schleife stehen 3 sachen in den klammern.
also
for(new i=0;i<15;i++) {
GivePlayerMoney(i, 100);
}
wenn dass so aufgebaut ist, wird im ersten teil mit new i=0 eine neue variable deklariert.
im zweiten teil wird eine bedingung abgefragt... also solange die im 1. teil erstellte variable i zB kleiner als 15 ist wird die for-schleife nochmals ausgeführt.
im dritten teil wird eine aktion durchgeführt, wie zB dass i um eins erhöht wird, sonst würde die bedingung im 2. teil nie false sein und es würde eine endlosschleife entstehen.
m vierten teil also innerhalb der { } wird dann die aktion ausgeführt, also bei der oberen schleife würde dann den ersten 15 leuten auf dem server geld gegeben werdendu musst nicht genau i verwenden, das ist nur ein sehr geläufiger bezeichner für eine variable in for-schleifen...
weiter gehts mit j, k, l...in samp wirds oft verwendet, um eine aktion bei allen Spielern durchzuführen...
so wird i als playerid verwendet..oder du kannst eben auch aktionen verschieden oft durchführen lassen...
-
ähm du hast DamageLabel schonma nich deklariert
du musst das so machen:
new DamageLabel[playerid] = Create3DTextLabel(string,0xFF0000FF,0.0,0.0,0.0,20.0,-1,0);
-
ja im nachhinien
funktionierts ?
ansonsten mal die neuen error zeilen hier rein kopieren. -
rück das ma ordentlich ein, sonst wird dir hier wohl keienr helfen
ah gut danke
also schonmal zusammen:
INVALID_PLAYER_ID
-
am besten machst du dir erstmal klar, wie du speichern willst.
entscheide dich für PVars oder arrays bzw enums.Beides ist nur unnötig kompliziert.
Ich würde PVars benutzen, ist aber bei jedem seine sachedas müsste dann beim speichern so aussehen:
dini_IntSet(Spielerdatei,"Rank",GetPVarInt(playerid,"Rank")]);
-
naya, da er den z-Angle auch beibehalten will :
new pAuto[MAX_PLAYERS];
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new Float:x,Float:y,Float:z, Float:a;
switch(dialogid == 6)
{
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid, a);
case 1: {
switch(listitem)
{
case 0: {
SendClientMessage(playerid,Pink,"Sie haben sich ein Fahrzeug 1 gespawnt");
pAuto[playerid] = CreateVehicle(DeineVehicleId,x,y,z,a,0,0,-1);
PutPlayerInVehicle(playerid,pAuto[playerid],0);
return 1;
}
case 1: {
SendClientMessage(playerid,Pink,"Sie haben sich ein Fahrzeug 2 gespawnt");
pAuto[playerid] = CreateVehicle(DeineVehicleId,x,y,z,a,0,0,-1);
PutPlayerInVehicle(playerid,pAuto[playerid],0);
return 1;
}
case 2: {
SendClientMessage(playerid,Pink,"Sie haben sich ein Fahrzeug 3 gespawnt");
pAuto[playerid] = CreateVehicle(DeineVehicleId,x,y,z,a,0,0,-1);
PutPlayerInVehicle(playerid,pAuto[playerid],0);
return 1;
}
}
}
}
return 1;
}