Du musst die maxnpcs in der server.cfg anpassen und die npc-scripts in den npcmodes ordner packen und natürlich die recordings in den record ordner...
#Handy
Du musst die maxnpcs in der server.cfg anpassen und die npc-scripts in den npcmodes ordner packen und natürlich die recordings in den record ordner...
#Handy
wenn jemand wirklich auf die Laufzeitperformance achtet.
Ich sag mal so, bei 10.000 Durchläufen brauchen beide 1ms für das setzen...da ist kein Unterschied...erst ab über 1.000.000 Durchläufen wird da was ersichtlich, aber bitte...wer hat Schleifen im Skript für mehr als 10.000 Durchläufe...
und nur eine komplizierte Schreibweise
Man hat 1x die Makros...dann ist es einfach nur noch hinzufügen, denke so komplex ist das nicht.
Der Vorteil an der Methode ist einfach, dass man keine 32 Variablen mit einem Array von jeweils MAX_PLAYERS erstellen muss!
Somit hält das halt die amx schön klein und wie gesagt, den Laufzeit unterschied wirst du niemals auch nur ansatzweise inGame merken ![]()
Wenn man es über eine DB usw macht dauert es schon etwas länger
Wie lang dauert es für dich bitte eine Integer Variable zu deinem speichersystem hinzuzufügen?!
Ich denke maximal 30 Sekunden... ![]()
Alles anzeigen<?
session_start();
if( !$_SESSION['loggedIn'] ) {
header( 'Location:index.php?status=false' );
exit();
}
?>
Anstatt Header Informationen zu nutzen (das geht übrigends wegen dem session_start hier nicht mehr bzw deshalb erfolgt die Warnung mach es einfach über einen meta tag):
<?php
session_start();
if( !$_SESSION['loggedIn'] ) {
echo '<meta http-equiv="refresh" content="0; URL=index.php?status=false">';
exit();
}
?>
mfg. ![]()
Wie kommen alle eigentlich immer darauf, das alle Scripter süchtig sind. So ein gutes Itemsystem braucht 1-2 Wochen wenn man täglich ein bissien Scriptet.
und hab ein Itemsystem in 1-2 Tagen (maximal 3).
Es soll zumindestens gut sein. Und ohne Fehler&Sicherheitslücken. Und das geht nicht in 2 Stunden.
Ich bitte euch...eigentlich braucht man dafür keine 5 Minuten hier mal ein sehr gutes Beispiel dafür:
enum e_Items (<<=1)
{
Hut = 1,
Shirt,
Tasche,
Fahrrad,
Shit //man kann hier 32 Items erstellen, sollte fürs erste reichen :)
};
new e_Items:Items[MAX_PLAYERS];
//Dann ein paar Makros:
#define GivePlayerItem(%0,%1) Items[%0] |= %1
#define RemovePlayerItem(%0,%1) Items[%0] &= ~(%1)
#define ResetAllItems(%0) Items[%0] = 0
#define HasItem(%0,%1) (Items[%0] & (%1))
//Dann kann man das einfach setzen:
GivePlayerItem(playerid, Hut);
//Dann removen:
RemovePlayerItem(playerid, Hut);
//Dann einfach prüfen:
if(HasItem(playerid,Hut))
{
//Hier hat er einen Hut
}
//Speichern, ganz easy als Integer in seinem Speicher System...in Items[playerid] steht alles und dann einfach laden lassen...
Effizient, einfach und schnell ![]()
mfg. ![]()
Hast du evtl ein großes Array deklariert? ![]()
Zeig doch mal, was für Variablen du so hast...besonders new test[xxx][xxx][xxx]; Nur solche Array Variablen sind hier relevant...
Mit strlen oder sizeof kommst du nicht weiter.
Also am schnellsten und einfachsten wäre es, wenn du es statisch machst z.B. einfach so:
stock GetLen(x) return ((x)==0)?7:6;
//Nutzen kannst du das dann so:
const frakid = 0;
printf("%d",GetLen(frakid)); //Gibt dir dann halt 7 zurück da der 0te index in deinem Array 7 Einträge hat, alle anderen 6
Wenn du es dynamischer haben willst, musst du mit einem End-Byte arbeiten, z.B. so:
//Dann schreib das Array so:
stock const FrakSkinM[][] =
{
{1,2,7,15,21,22,26,-1},
{265,267,266,281,282,283,-1},
{265,267,266,281,282,283,-1},
{265,267,266,281,282,283,-1}
};
//Und die Funktion:
stock GetLen(const str[])
{
new idx;
for(new i=str[0]; i!=-1; i=str[++idx]){}
return idx;
}
//und nutzung:
const frakid=0;
printf("%d",GetLen(FrakSkinM[frakid])); //Gibt 7 aus
Da jede Zeile die gleiche Größe haben muss
Das stimmt nicht.
stock const FrakSkinM[][] =
{
{1,2,3},
{1,2,3,4}
};
Kann man gut machen, da funktioniert aber das sizeof(FrakSkinM[]) nicht ![]()
mfg. ![]()
Es existiert schon ein Liberty City Interior ![]()
Den könnte man evtl ausmappen:
Position: -729.276000,503.086944,1371.971801
Interiorid: 1
Der Airport existiert auch, musste auch nur ausmappen:
Position: -1827.147338,7.207417,1061.143554
Interiorid: 14
//Oder alternativ:
Position: -1861.936889,54.908092,1061.143554
Interiorid: 14
Da verfügen einige Objekte über keine Kollission, aber kannst ja was drunter mappen ![]()
mfg. ![]()
Du machen looki looki hier: http://forum.sa-mp.de/gta-mult…eschnipsel-57#post1968334
Suche hätte bestimmt geholfen ![]()
new static const gSAZones[][SAZONE_MAIN]
Wenn schon dann nur:
new const gSAZones[][SAZONE_MAIN]
//Beser wäre aber:
stock const gSAZones[][SAZONE_MAIN]
Du solltest das zweispaltig machen und mit \t oder dem neuen DialogStyle (DIALOG_STYLE_LIST) arbeiten ![]()
Naja, es gibt hier zwei Möglichkeiten, entweder NaviInfo[n][naAktiv] ist immer 1 oder sizeof(NaviInfo) ist 1.
Evtl machst du mal einen print-Debug und postest mal deine Lade Methode...
Vermutlich, wenn du das über MySQL machst hast du vergessen auf deinem Server irgendwas richtig einzurichten (dafür gibt es den mysql_log wo man sowas nachlesen kann, was man falsch gemacht hat...)
mfg. ![]()
Stelle das bitte mal nach, wenn du das so behauptest, anstatt gleich wieder Leute anzugreifen.
Ich habe es nachgestellt...und es ist passiert...und nu?!
und wen habe ich bitte angegriffen? ![]()
Wieso? GTA ist dann doch schon beendet wenn er crasht. Das habe ich schon oft genug gemacht
Er muss nur den Crash Report schließen und gut ist.
Es muss aber nicht crashen...es kann auch passieren dass der Prozess einfach nur hängen bleibt ![]()
Das dem Spieler anzeigen lassen, dann sollte dieser normalerweise crashen.
Oh ja, super Idee, dann kann er versuchen mit dem Taskmanager sein gta zu beenden, falls er es nicht schafft den fokusiert zu bekommen...kann er den PC neustarten ![]()
Kick ihn einfach und sag ihm er soll /q machen oder so ![]()
Meine Frage ist nun, kann man abfragen wie lang der string ist und kann man dann daruch die Länge der Box anpassen?
Ja kann man...die Funktion strlen sollte dir bekannt sein ![]()
#inculde <crashdetect>
Lösch die Zeile...abgesehen davon, dass es #include heißen muss..brauchst du das Include nicht. Musst nur das Plugin einfügen und fertig ![]()
mfg. ![]()
Ich suche die Animation, wie als wenn man reden würde. Sprich, wo sich die Arme der Person bewegen.
Einfach so:
ApplyAnimation(playerid,!"PED",!"IDLE_CHAT",4.0,0,0,0,0,0);
Hast du auch die maxnpcs in der server.cfg angepasst?