COMMAND:getguns(playerid,params[])
{
new gID,str[124];
if(sscanf(params, "d",gID))return SendClientMessage(playerid,0xC8C8C8FF,"/getguns [Anzahl]");
if(gID < 1 || gID > 5) return SendClientMessage(playerid,0xC8C8C8FF, "Die Anzahl muss zwischen 1 und 5 liegen!");
if(pInfo[playerid][hGuns] >= 5)return SendClientMessage(playerid,0xC8C8C8FF,"Mehr als 5 Waffeneinheiten kannst du nicht kaufen!");
if(IsPlayerInRangeOfPoint(playerid,2,-682.3103,965.5809,12.1328) && pInfo[playerid][Job] == 1)
{
for(new i = 0; i < sizeof(wdcars); i++)
{
if(GetPlayerVehicleID(playerid) == wdcars[i])
{
pInfo[playerid][hGuns]+= gID;
GivePlayerMoney(playerid,gID* -300);
format(str,sizeof(str),"Du hast dir %d Waffeneinheiten für %d $ gekauft",gID,gID* 300);
SendClientMessage(playerid,0x00A8FFFF,str);
}
else { return SendClientMessage(playerid,0xC8C8C8FF, "Du sitzt in keinem der Pickups!"); }
}
}
else { return SendClientMessage(playerid,0xC8C8C8FF, "Du bist nicht am Waffenspot oder kein Waffendealer!"); }
return 1;
}
Beiträge von Stylernero
-
-
Positive: Du hast das geil gemappt, vlt die geilste mapp die ich hier gesehen habe.
Negatives: Wo ist der Stadtort der Mapp ?? 1. Er muss zufinden sein und darf nicht zu weit von der Stadt entfernt wein. SF, LS, LV oder BS ??
EDIT: Danke, downloade mir die !
Bewertung:
Idee: 2/3 (Gibt es eigentlich schon öfters)
Arbeit: 4/4 (Hamma)
Umsetzung: 3/3 (Das ist was ich mir unter einem Gefängis vorstelle)
_______________
Gesammt: 9/10gut (plus)
-
Eignet sich vielleicht für einen Stunt Server aber glaube nicht das für nen Stuntserver gemacht wurde.
Es gefällt mir persönlich nicht ! Deswegen diese Bewertung:Idee: 1/3
Umsetzung: 2/4
Arbeit: 2/3
________________
Gesamt: 5/10ausreichend (minus)
nach schulnoten system -
Das Feld sieht etwas komisch aus..
Idee: 2/3
Umsetzung: 3/4
Beitrag: 3/3
__________________
Gesammt: 8/10Gut !!
-
Wollt ich machen, nachdem ich dabei geholfen worden bin
-
Ich hab eine frage bezüglich einem teil meines Krankenhaus Systems. Ich möchte das wenn die Spieler ihre Krankenhaus zeit noch nicht abgesessen haben, nach dem relog die restliche Zeit noch im Krankenhaus absitzen müssen.
Und das der Timer auf 4 Minuten gestellt wird. Wäre nett wenn mir das einer schnell hier rein posten könnte.
Hier die Teile des Systems:
forward KrankenhausTimer(playerid);
public KrankenhausTimer(playerid)
{
if(IsPlayerConnected(playerid))
{
if(KrankenhausAufenthalt[playerid] == 1)
{
KrankenhausAufenthalt[playerid] = 0;
SpawnPlayer(playerid);
SendClientMessage(playerid,weiß,"|____ Krankenhaus ____|");
SendClientMessage(playerid,weiß,"Du wurdest entlassen. Die Behandlung kostet allerdings.");
SendClientMessage(playerid,weiß,"Da du über keine Krankenversicherung verfügst, musst du den Betrag bezahlen.");
SendClientMessage(playerid,weiß,"Kosten der Behandlung: 80$.");
SendClientMessage(playerid,weiß,"|_____________________|");
}
}
}public OnPlayerDeath(playerid, killerid, reason)
{
if(OnlineSpawn[playerid] == 1)
{
for (new MSGC=0; MSGC<=100; MSGC++)
SendClientMessage(playerid,weiß,"");
ResetPlayerWeapons(playerid);
SendClientMessage(playerid,weiß,"|____ Krankenhaus ____|");
SendClientMessage(playerid,weiß,"Du bist nun im Krankenhaus. Du wirst gerade behandelt und darfst das Krankenhaus");
SendClientMessage(playerid,weiß,"nicht verlassen bis die Ärtze mit der Untersuchung fertig sind. Dieser Vorgang");
SendClientMessage(playerid,weiß,"wird eine Zeit von mindestens 3 Minuten nach sich ziehen.");
SendClientMessage(playerid,weiß,"|_____________________|");
SetTimerEx("KrankenhausTimer",KRANKENHAUS_ZEIT*1000,0,"i",playerid);
TogglePlayerControllable(playerid, 0);
SetPlayerPos(playerid,1162.871704, -1339.109619, 14.297291);
SetPlayerCameraPos(playerid, 1223.379028, -1333.354126, 33.809105);
SetPlayerCameraLookAt(playerid, 1178.824829, -1325.804077, 13.284119);
SetPlayerInterior(playerid, 0);
KrankenhausAufenthalt[playerid] = 1;
}
return 1;
} -
Maddin, du bist Gott !!
-
Das war doch nicht böse gemeint.
Habs versucht aber find keine Lösung -
Nun 4 Warnings und 1 Error, also nein !!
-
Immer noch die gleichen Warnings
-
Hier sind die Zeilen:
if(listitem == 2)
{
new String[128];
new Name[MAX_PLAYER_NAME];
new Geld = Spieler[playerid][Bankguthaben];
GetPlayerName(playerid,Name,sizeof Name);
format(String,sizeof(String),"[Kontostand von %s]\nGeld: %d\nSparkasse",Name,Geld);
ShowPlayerDialog(playerid,DIALOG_STYLE_MSGBOX,0,"Sparkasse Kontostand",String,"Weiter","Weiter");
return 1;
}C:\Dokumente und Einstellungen\Patrick Jansch\Desktop\SERVER\gamemodes\sf.pwn(1827) : warning 219: local variable "Geld" shadows a variable at a preceding level
C:\Dokumente und Einstellungen\Patrick Jansch\Desktop\SERVER\gamemodes\sf.pwn(1829) : warning 213: tag mismatch
C:\Dokumente und Einstellungen\Patrick Jansch\Desktop\SERVER\gamemodes\sf.pwn(1827) : warning 204: symbol is assigned a value that is never used: "Geld"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase3 Warnings.
-
Wie mache ich das wenn ich will wenn der Spieler /getjob macht, dass er dann auch 15 Minuten warten muss und er den Job erst nach 15 minuten den job bekommen kann ?
-
Alles klar !! Danke euch allen ! Damit habt ihr mir viel Zeit erspart. Danke auch an Maddin für die perfekte Beschreibung. Hab sie gespeichert.
DANKE !! -
Grex: Das war die beste Antwort ever !!
-
Sinnvoll ist es ! stimmt, aber es ist trotzdem möglich da 128 oder 256 zu nehmen oder ?
-
Wenn es z.b im string text 189 buchstaben sind kann ich string[200]; nehmen ?
-
Was für ein string wäre es bei diesen Sätzen:
format(string,sizeof string,"AdmCmd: %s wurde von %s gebannt. Grund: %s.",spieler2,spieler,grund)
SendClientMessageToAll(adminrot,string)
format(string,sizeof string,"AdmCmd: Du wurdest vom Admin %s gebannt und kannst nun nicht mehr connecten.",spieler);
SendClientMessage(pID,adminrot,string); -
Wie genau kann ich feststellen welche anzahl ich für z.b string nehmen muss ??
Kann mir das vielleicht jemand anhand eines befehls zeigen ?
Wäre echt nett. Hab satt immer ins GF gucken zu müssen ! -.- -
Ich hätte es komplett anders gescriptet aber wenns klappt
-
Hallo,
ich wollte nun auch endlich mal was auf Breadfish starten, und dachte mir das ich einfach mal nen kleines Tutorial machen werden.
Mein Tutorial beinhaltet das Thema wie man ein funktionstüchtiges (/kick) System erstellen kann. Ich werde es mit der Script Version
DCMD und SSCANF vor Scripten.Es ist nichts großes, aber sollte für Anfänger eigentlich ganz nützlich sein.
Okay, fangen wir an.
__________________________________________________________________________________________________________________________________________________________
Den Befehl scripten wir wie gewohnt unter
public OnPlayerCommandText(playerid, cmdtext[])Als aller erstes erstellen wir den Befehl.
Man schreibt den Befehl so aufgebaut direkt unter OnPlayerCommandtext. So sieht er aus: dcmd(BEFEHL,BUCHSTABEN ANZAHL,cmdtext);. Direkt darunter setzten wir return 0;Ist dies erfolt sollte es bei OnPlayerCommandtext so aussehen:
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(kick,4,cmdtext);
return 0;
}WICHTIG: Ihr müsst die richtige Buchstaben Anzahl angeben. Ist diese Falsch, wird der Server den Befehl nicht erkennen und würde euch sagen, dass es diesen Befehl nicht gibt.
Ich sage es noch einmal. Die Zeile ist so aufgebaut: dcmd(ANAHL, BUCHSTABENANZAHL,cmdtext);_______________________________________________________________________________________________________________________________________________________
Nun scripten wir den Befehl.Alle Informationen stehen rechts neben jeder gescripteten Zeile:
Als erstes: So sollte der Befehl ohne meine Grünen Informationen aussehen.
dcmd_kick(playerid,params[]) // Erstellt den Befehl
{
new pID; // Erstellt die ID des anderen Spieler (des Spielers der gekickt werden soll.)
new string[128]; // string sollte eigentlich klar sein. 128 ist die länge des Strings.
new grund[128]; // DAs ist die Variabel des Grundes (Im Befehl muss man /kick [playerid] und den [Grund] eingeben.
new spieler[MAX_PLAYER_NAME], spieler2[MAX_PLAYER_NAME]; // Gehört zur erstellung der IDs von uns und des anderen Spielers. (spieler sind wir, spieler 2 der andere spieler)if(Spieler[playerid][Adminlevel] >= 3) // Wenn der Spieler admin rank 3 ist oder einen höheren besitzt. alles dadrunter kann den befehl nicht ausführen.
{
if(sscanf(params,"us",pID,grund)) // was soll alles geschehen ?? (einmal soll die id des Spielers angegeben werden und danach der Grund.. "u = ID, s = grund"
return SendClientMessage(playerid,weiß,"Verwendung: /kick [playerid] [Grund]"); // siehe eine Zeile oben
if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,weiß,"Der Spieler ist offline"); } // Wenn der angegebene Spieler nicht da ist.
GetPlayerName(playerid,spieler,sizeof spieler);//erstellt unsere ID und dient dazu damit später unser name in der nachricht angezeigt werden kann
GetPlayerName(pID,spieler2,sizeof spieler2); // erstellt die ID des gekickten spielers. pID = spieler2. Dient auch für die spätere Nachricht
format(string,sizeof string,"AdmCmd: %s wurde von %s gekickt. Grund: %s.",spieler2,spieler,grund); // ist die nachricht und sollte eigentlich klar sein,
SendClientMessageToAll(adminrot,string); // diese nachricht wird dem Server angezeigt. bei %s werden die Ids angezeigt und der angegebene Grund.
format(string,sizeof string,"AdmCmd: Du wurdest von %s gekickt. Grund: %s.",spieler,grund); // diese nachricht wird dem gekickten spieler vor dem kick mit
SendClientMessage(pID,adminrot,string); // kick (pID) angezeigt.
Kick(pID); // kickt den spieler im anschluss
}
return 1;
}_______________________________________________________________________________________________________________________________________________________
Bitte Bewerten und Kommentieren. Ich würde gerne eure Meinungen über dieses Tutorial wissen !!
Feedback erlaubtMFG