Aber wenn ich das ganze zurücklaufen lassen will?
Dann musst du es so schreiben:
static x = sizeof(SKINS_ZIVI)-1;
if(x == -1) x=sizeof(SKINS_ZIVI)-1;
SetPlayerSkin(playerid,SKINS_ZIVI[x]),x--;
mfg. ![]()
Aber wenn ich das ganze zurücklaufen lassen will?
Dann musst du es so schreiben:
static x = sizeof(SKINS_ZIVI)-1;
if(x == -1) x=sizeof(SKINS_ZIVI)-1;
SetPlayerSkin(playerid,SKINS_ZIVI[x]),x--;
mfg. ![]()
jetzt so als Beispiel.
Schreib das mal so:
//Oben im Skript
stock const skins[] = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
};
//In deinem Callback
static x;
if(x == sizeof(skins)) x=0;
SetPlayerSkin(skins[x]),x++;
mfg. ![]()
Bin gerade an einem Tut Textdraw und wollte fragen ob es eine andere Möglichekit gibt ein Große flächte mit Text zufüllen als mit 20 Textdraws.
Ja, du kannst mit ~n~ einen Zeilenumbruch in deinem TextDraw machen und somit über mehrere Zeilen schreiben ![]()
mfg. ![]()
Schreib mal deine Makros so:
#define givePlayerMoney(%0,%1) pInfo[%0][pGeld]+=%1,GivePlayerMoney(%0,%1)
#define setPlayerMoney(%0,%1) ResetPlayerMoney(%0),pInfo[%0][pGeld]=%1,GivePlayerMoney(%0,%1)
mfg. ![]()
Schade, dass es hier keinen Facepalm Smiley gibt für die Antwort von Kaliber...
Wieso? ![]()
Wenn du die GangZone beliebig verschiebst, dann ist sie doch nicht mehr über dem Gebiet, welches sie eingrenzen soll.
Das ist doch der Sinn einer "Zone" (normalerweise), dass sie halt eben einen exakten Bereich markiert und nicht beliebig mal so sich verschiebt.
//Edit:
Schreib die Funktion mal so:
stock FraktionsNamen(fID)
{
new rankname[32];
switch(fID)
{
case 0: rankname="Zivilist";
case 1: rankname="LSPD";
case 2: rankname="FBI";
case 3: rankname="Army";
case 4: rankname="Medic";
case 5: rankname="News Reporter";
case 6: rankname="T-GmbH";
case 7: rankname="Abfallwirtschaft";
case 8: rankname="Hitman";
case 9: rankname="Grove Street";
case 10: rankname="Al-Qaida";
case 11: rankname="Ballas";
case 12: rankname="Fahrschule";
case 13: rankname="La Cosa Nostra";
case 14: rankname="Taxi";
case 15: rankname="Yakuza";
case 16: rankname="Staatsverwaltung";
case 17: rankname="SAPD";
case 18: rankname="Aztecas";
case 19: rankname="Rifas";
case 20: rankname="RS";
case 21: rankname="Cripz";
case 22: rankname="Russische Mafia";
case 23: rankname="SFBC";
case 24: rankname="Vagos";
case 25: rankname="Wheelmen";
}
return rankname;
}
mfg. ![]()
da lohnt sich er Aufwand nicht, wenn man es in Relation zu den Fehlern sieht, wie man hier wunderschön sieht.
Zu deiner Information die Fehler entstanden nicht durch das packen der Variablen, sondern durch das const...was als Beispiel dienen sollte.
FraktionsNamen
Zeig mal wie du diese Funktion geschrieben hast ![]()
Ähm, wie schafft man es das die Gangzone die man dann erstellt sich nicht überlappt like this
...einfach auf deine Koordinaten achten die du speicherst, dass diese sich nicht überlappen ![]()
SpielerName(playerid)
Es wäre gut zu wissen, wo und wie du GetPlayerName nutzt...
Aber anhand deiner Variable musst du es so schreiben:
format(string,sizeof(string),"* HQ: Officer %s hat die S.W.A.T erlaubnis entzogen.",SpielerName);
mfg. ![]()
Also ich weiß gar nicht wo ich anfangen soll, da jede Zeile einen Fehler beinhaltet.
Schaue dir doch erst nocheinmal die Basics an, bevor du dich an solche Commands wagst.
mfg. ![]()
Soweit ich weiß brauchst du mindestens 1 AddPlayerClass unter GameModeInit
Nein, entweder AddPlayerClass oder SetSpawnInfo im Skript ![]()
wie bzw. wo ich es speichern soll.
Naja...entweder in einer Datenbank oder in einem File...
Sieht dann z.B. so aus:
Frak1 = 0 //ist offen
Frak2 = 1 //ist geschlossen
Frak3 = 0 //ist offen
...
und dann halt wieder in die Variable frak schreiben ![]()
mfg. ![]()
Ich habe bis jetzt noch nichts weil ich nicht weiß wie das geht.
Naja, einfach so:
#define MAX_FRAKS 15 //Halt wie viele du hast
new bool:frak[MAX_FRAKS char]; //Da alles mit false (0x00) initialisiert wird in Pawn, sind alle Fraktionen am Anfang offen
//Dann wenn der Spieler sich eingeloggt hat
const id = SpielerInfo[playerid][Fraktion]; //Halt mit deiner Speicherung anpassen
if(frak{id} && id != 0)
{
//Hier ist die Fraktion geschlossen.
SpielerInfo[playerid][Fraktion] = 0; //Hier setzt du ihn zum Zivi
SpawnPlayer(playerid);//damit er nochmal spawnt als Zivi
}
//In deinem FrakClose command:
frak{frakid} = true;
//In deinem FrakOpen command:
frak{frakid} = false;
//Und dann halt noch Speichern.
Hoffe das hilft dir als grobe Richtung ![]()
mfg. ![]()
Kann mir jmd weiter helfen?
Schreib das in dein Skript:
public OnPlayerRequestClass(playerid,classid) {
return SetSpawnInfo(playerid,0,299,0,0,3,0,0,0,0,0,0,0),SpawnPlayer(playerid);
}
mfg. ![]()
lso das das Hintergrundbild im Hintergrund ist und die Tabs auf dem Bild Drauf sind?
Meinst du sowas hier: http://www.w3schools.com/css/css_image_transparency.asp
limit 1
Ja..aus dem Grund kannst du kein Auto kaufen.
if(preis <= PlayerInfo[playerid][pCash] && PlayerInfo[playerid][pCarLimit] == 0)
Schreib die Zeile so:
if(preis <= PlayerInfo[playerid][pCash] && PlayerInfo[playerid][pCarLimit] == 1)
Dann gehts ![]()
mfg. ![]()
hier?....
Nein...einfach oben kurz unter der Eingabe von dem Befehl ![]()
PlayerInfo[playerid][pCarLimit]
Printe mal diese Variable...ist sie zufällig nicht auf 0? ![]()
//Edit: F0rg0t the n0t
if(preis < PlayerInfo[playerid][pBank])
Schau dir doch deinen eigenen Code an ![]()
Da steht, du musst das Geld auf der Bank haben...nicht auf der Hand ![]()