Ich denke schon, dass ich das richtig verstanden habe.
Mit dem Code hast du keine einstelligen Beträge.
%02dGibt dir grunsätzlich immer 2 Ziffern aus.
Ich denke schon, dass ich das richtig verstanden habe.
Mit dem Code hast du keine einstelligen Beträge.
%02dGibt dir grunsätzlich immer 2 Ziffern aus.
Kleiner Fehler:
Es heißt muss "Latest Projekt", nicht "Newest Projekt" heißen.
MFG Manniac
Wenn es 01:01:02 ist, würden folgende Codes 2 verschieden sachen ausgeben
%d:%d:%d
=
1:1:2
%02d:%02d:%02d
=
01:01:02
Alles anzeigen1.C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(255) : warning 225: unreachable code
2.C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(257) : warning 202: number of arguments does not match definition
3.C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(255) : warning 204: symbol is assigned a value that is never used: "mms"
4.C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(255) : warning 204: symbol is assigned a value that is never used: "reason"
5.C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(307) : warning 217: loose indentation
6.C:\Users\Patrick\Desktop\Server\gamemodes\IRP-City.pwn(687) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1. Code ist nicht erreichbar, meistens ne Klammer zu früh oder ein return zu früh-
2. Du hast einen Parameter vergessen/zu viel
3. Hast eine Variable deklariert, die nicht benutzt wird.
4. Hastr eine Variable deklariert, die nicht benutzt wird
5. Einrückungsfehler
6. Zu viele / weniger Parameter
Du solltest genug eigeninitative haben, um die warnings zu beheben
Alles anzeigenCOMMAND:hallo(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, weiss, "Hallo, Herzlich Willkommen auf unserem Server!");
}
return 1;
}
Der Command hat ja mehr Fehler in 8 Zeilen, als die NSA Abhördaten hat.
Für was brauchst du die Abfrage, ob der Spieler auf dem Server ist? Wenn der Spieler den command eingibt, wird er wohl auf dem Server sein..
Des Weiteren sollte dort #pragma unused params verwendet werden.
Audio ingame aufgedreht?
Schreib das am besten so.
ocmd:ordnungsamtduty(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
new string[128],
fahrzeug,
Float:pos[4];//arrays ftw
format(string,sizeof(string),"%s ist nun als Ordnungsbeamter im Dienst.",SpielerName(playerid));
SendClientMessageToAll(BABYBLAU,string);
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
GetPlayerFacingAngle(playerid,pos[3]);
fahrzeug=CreateVehicle(525,pos[0],pos[1],pos[2],pos[3],-1,-1,0);
PutPlayerInVehicle(playerid,fahrzeug,0);
return 1;
}
Habe die Variablen in einem Array zusammengefasst
new bots,Botimer; Botimer = SetTimer("bot",1000,true);
forward bot();
public bot()
{
bots++;
switch(bots)
{
case 0:{ConnectNPC("Name","Name");}
case 1:{ConnectNPC("Name","Name");}
case 2:{ConnectNPC("Name","Name");}
[..]
case 15:{KillTimer(Botimer);}
}
}
Sollte doch auch funktionieren, oder?
if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Fehlerhafte Ausführung: Du bist nicht Online!");
btw, das macht keinen sinn..
Wenn er nicht online ist, kann er auch keinen CMD eingeben..
Gute Map, schöne Ideen gut & sauber verbaut.
Kritik zu dem Edit?
Ist nur der Frag mit Hintergrundmusik. Mehr nicht. Paar Effekte wären noch gut. (MBL usw)
Kann auch sein, dass du dir irgendeinen Virus o.Ä runtergeladen hast.
War bei mir mal der Fall.
Guten Abend,
Best regardz
Manniac
hat sich erledigt. Einfach via CMD removed
Paar Lieder von Avenged Sevenfold - z.b Hail to the king - kannste dir auch noch anschauen
Lösch einfach alles, was mit dem Server zu tun hat & Lies dir hier im Forum einige Tutorials durch.
Einrichtung, erste Schritte, Basic Commands, Speichern & Laden etc.
Wenn du das hast, können wir dir vernünftig weiterhelfen
MFG
Manniac
Es gibt in 95% aller Spiele einen Onlinemodus.
Du solltest deine Anfrage etwas spezifizieren
War ein relativ blöd gewähltes Beispiel.
Aber ich denke du hast verstanden, was ich gemeint habe.
Danke für den Link, ich werde mir das mal genauer anschauen
Guten Abend,
relativ gängig ist ja die Methode, eine Code folgendermaßen zu schreiben.
new string[128];
format(string,sizeof(string),"%s",input);
SendClientMessage(playerid,-1,string);
Wenn wir jetzt aber nicht das maximale Limit von 128 voll ausschöpfen, sondern bspw. als input das Wort "Baum" haben, haben wir ja nur 4 anstatt den 128 verwendet.
Gibt es da die Möglichkeit den Reset(für den Spieler)zu löschen oder ist dieser statisch in das Script eingetragen?
Guten Abend.
Da zu einem guten Script auch die Dynamische Flexibilität gehört, möchte ich heute anhand eines kleines Beispiels erklären, wie man Ingame - ohne dass man das Pickup manuell (statisch) ins Script einfügt - erstellen kann.
Ziel
Ziel ist, wie oben schon gesagt, das dynamische Erstellen eines Pickups. Wir verwenden dazu den Befehl '/createpickup <pickupid> <pickuptype>'.
Was wir brauchen
Ich werde in diesem Tutorial mit MySQL arbeiten, da man so ganz einfach Ingame die Pickups in der Datenbank verwalten kann.
Ein Tutorial, wie man MySQL installiert, gibt es hier
Des Weitern werde ich mit 'ocmd' & 'sscanf' arbeiten (-> sowohl beim speichern & laden, als auch bei dem command ).
Beide Plugins gibt es public zum downloaden.
Außerdem verwende ich zum Verwalten der Datenbank "XAMPP & phpmyadmin"
Dann fangen wir mal an..
Einrichten der Tabelle
Zuallerst müssen wir eine neue Tabelle in unserer MySQL Datenbank anlegen. Ich nenne sie mal "Pickups".
Nun müssen wir die Anzahl der Spalten angeben.
Dazu schauen wir uns die native 'CreatePickup' an.
CreatePickup(model, type, Float:X, Float:Y, Float:Z, Virtualworld)
Wir brauchen also 6 Spalten, richtig? Nein. Wir brauchen noch eine weitere, da wir später auf die einzelnen Pickups in der DB zugreifen wollen und somit für jedes Pickup eine eigene ID brauchen.
Das ganze sieht nach dem Erstellen dann so aus.
Nun müssen wir die Zeilen füllen.
In die 1. Zeile kommt die eindeutige ID (meinetwegen auch Identität), die wir mit 'AI'(=Auto-increment) autmatisch hochzählen lassen.
D.h : Wenn pro Eintrag wird die ID erhöht, sodass jedes Pickup eine eigene ID hat.
ID ist ein Integer, deswegen stellen wir bei 'TYP' 'INT' ein.
Bei Länge/Werte schreiben wir eine 3 rein. Diese steht für die einzelnen Ziffern. (123 = 3 Ziffern, 12 = 2 Ziffern usw)
Da diese Var immer automatisch hochgezählt werden wollen, setzen wir noch einen Haken bei 'A_I'
Nun müssen wir die verbleibenden Zeilen füllen. Dafür tragen wir einfach die Paramter, die in der native 'CreatePickup' gefordert werden, in die einzelnen Zeilen ein.
Hier dürfen wir nicht mehr 'A_I' verwenden.
Zudem sollte man bei der X, Y & Z Achse den Typ auf "Float" umstellen.
Sollte dann ungefähr so aussehen.
Nun ist die Tabelle vollständig erstellt & wir können uns dem Scripte widmen.
Scripting
Dafür erstellen wir uns das Grundgerüst des Commands
ocmd:createpickup(playerid,params[])
{
Soweit, so gut. Nun müssen wir ein paar Variablen deklarieren.
ocmd:createpickup(playerid,params[])
{
new modelid,//Modelid des Pickups. 1240 ist z.b ein Herz
Float:pos[3],//damit wir wissen, wo das Pickup erstellt werden soll
ptype;//Pickuptype. 1 ist z.b 'immer sichtbar', 0 'nicht sichtbar'
Jetzt kommt die gewohnte sscanf-Abfrage, ob alle Parameter angegeben wurden.
if(sscanf(params,"dd",modelid,ptype))return SendClientMessage(playerid,-1," '/createpickup <modelid> <pickuptype>");
Nun werden wir das Pickup erstellen. Dazu brauchen wir die Position des Spielers.
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
Jetzt wird das Pickup erstellt
CreatePickup(modelid,ptype,pos[0],pos[1],pos[2],GetPlayerVirtualWorld(playerid));
Das Pickup sollte nun sichtbar sein.
Jetzt müssen wir es in unsere Tabelle eintragen.
Dazu verwenden wir 'INSERT INTO'
new query[500];
format(query,sizeof(query),"INSERT INTO Pickups(`model`,`type`,`x`,`y`,`z`,`vw`) VALUES ('%d','%d','%f','%f','%f')",modelid,ptype,pos[0],pos[1],pos[2],GetPlayerVirtualWorld(playerid));
Erklärung dazu sollte in dem oben genannten Thread sein.
Nun müssen wir den Query noch abschicken.
mysql_query(query);
Die Daten sollten nun in unsere Tabelle eingetragen worden sein.
Somit hätten wir den ersten Teil des Tutorial abgeschlossen. Der 2. Teil - das Laden des Pickups - wird im Laufe des nächsten Tages folgen.
Bis dahin
Beste Grüße
Manniac
p.s: ich habe versucht, das ganze so übersichtlich wie möglich zu gestalten. Sollte es Verbesserungsvorschläge geben, immer her damit. Ich freue mich auf konstruktive Kritik
Unitymedia oder Kabel Deutschland.
Sind beide Top-Anbieter