Du hast die Abfrage von listitem == 3 unter die Abfrage von listitem == 2 gestellt. Das kann nie wahr werden.
if(dialogid == DIALOG_FraktionBallas)
{
if(response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid,DIALOG_FraktionBallasFahrzeuge,DIALOG_STYLE_MSGBOX,"{00ff00}Fahrzeuge","(1) Burrito\n(2) Remington\n(3) Strech Limo\n(4) Bike\n(5) Bike\n(6) Tahoma\n(7) Voodo\n(8) Blade\n(9) Broadway\n(10) Savanna\n(11) Maverick","Ok","");
}
if(listitem == 1)
{
ShowPlayerDialog(playerid,DIALOG_FraktionBallasWaffen,DIALOG_STYLE_LIST,"{00ff00}Waffen:","Baseballschläger\nDeagle\nMP5\n9mm","Ok","");
}
if(listitem == 2)
{
if(GetPlayerMoney(playerid) >= 50)
{
SetPlayerHealth(playerid,100);
GivePlayerMoney(playerid,-50);
}
else
{
SendClientMessage(playerid,rot,"Sie besitzen keine 50$");
}
}
if(listitem == 3)
{
SetPlayerArmour(playerid,100);
GivePlayerMoney(playerid,-50);
}
}
}
So passt es.
Beiträge von Jeffry
-
-
Du setzt bei OnPlayerDeath eine Spielervariable auf 1, die heißt zum Beispiel pTod. Dann fragst du diese bei OnPlayerSpawn ab, wenn sie 1 ist, dann setzt du den Spieler mit SetPlayerPos zum Friedhof und setzt mit SetPlayerWorldBounds die unsichtbaren Grenzen. Gleichzeitig startest du einen SetTimerEx von 120000 ms. Wenn dieser dann aufgerufen wird, setzt du den Spieler wieder aus dem Friedhof raus, entfernst die Grenzen und setzt pTod wieder auf 0.
Codebeispiel:
Im enum:
pTod,
OnPlayerDeath:
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsPlayerConnected(killerid) && killerid != playerid)
{
SendClientMessage(killerid,Rot, "Du hast ein Verbrechen begangen! (Mord) Reporter: Anonym");
PlayerInfo[killerid][Verbrechen] += 1;
SendClientMessage(playerid,Rot,"Du bist Gestorben! Grund: Unbekannt");
PlayerInfo[playerid][Tode] += 1;
GivePlayerMoney(playerid, 100);
}
PlayerInfo[playerid][InSkinChange] = false;
PlayerInfo[playerid][Duty] = false;
if(PlayerInfo[playerid][pTod] == 0) PlayerInfo[playerid][pTod] = 1;
return 1;
}
OnPlayerSpawn:
if(PlayerInfo[playerid][pTod] == 1)
{
SetPlayerPos(playerid, /* Position */);
SetPlayerWorldBounds(playerid, /* Poisitionen */);
SetTimerEx("WegVonFriedhof", 120000, 0, "d", playerid);
PlayerInfo[playerid][pTod] = 2; //Falls er auf dem Friedhof stirbt, dass der Timer nicht nochmal gestartet wird.
}
Das Timer-Callback:
forward WegVonFriedhof(playerid);
public WegVonFriedhof(playerid)
{
PlayerInfo[playerid][pTod] = 0;
SetPlayerPos(playerid, /* Position */);
SetPlayerWorldBounds(playerid, 99999.0, -99999.0, 99999.0, -99999.0);
return 1;
} -
SetPVarInt(playerid, "pKey1", Get);
zu:
SetPVarInt(playerid, "pKey1", strval(Get));PS: Kleine Programmierer-Regel: Variablen schreibt man am Anfang immer klein, Funktionen groß.
EDIT:
crs0r: Haha, super! Gute Nacht. -
TogglePlayerSpectating(playerid, 0);
vor SpawnPlayer.Wenn der Spieler noch nicht die Class-Selection benutzt hat, musst du auch SetSpawnInfo (das Auskommentierte) nutzen.
-
Vertausch die beiden mal:
SetVehicleParamsEx(car,engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
ON zu OFF, und beim anderen OFF zu ON (bzw 1 bei zu und 0 bei auf). So steht es im Wiki.SA-MP eben. Keine Ordnung. Bei http://wiki.sa-mp.com/wiki/SetVehicleParamsForPlayer ist genau anders herum. Wer macht sowas?!
-
Klappt es so?
dcmd_flock(playerid,params[])
{
#pragma unused params
new car = -1;
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
car = GetPlayerVehicleID(playerid);
}
else if(!IsPlayerInAnyVehicle(playerid))
{
new Float:x, Float:y, Float:z;
for(new i=0; i<MAX_VEHICLES; i++)
{
GetVehiclePos(i, x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 7.0, x, y, z))
{
car = i;
break;
}
}
}
if(car != -1)
{
if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
{
return SendClientMessage(playerid, Rot, "Du sitzt auf einem Fahrrad.Das kann man nicht abschließen!");
}
if(!IsAGangCar(car) && !IsAFrakCar(car))
{
return SendClientMessage(playerid, Rot, "Du sitzt in keinem Frak-/Gang-Car!");
}
if(IsALSPDCar(car) && PlayerInfo[playerid][Beruf] != TEAM_LSPD) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsAFBICar(car) && PlayerInfo[playerid][Beruf] != TEAM_FBI) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsAArmiCar(car) && PlayerInfo[playerid][Beruf] != TEAM_Army) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsAMedicCar(car) && PlayerInfo[playerid][Beruf] != TEAM_MEDIC) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsAFahrschulCar(car) && PlayerInfo[playerid][Beruf] != TEAM_Fahrschule) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsAPresidentCar(car) && PlayerInfo[playerid][Beruf] != TEAM_Präsident) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsANewsCar(car) && PlayerInfo[playerid][Beruf] != TEAM_Sa-News) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsAOamtCar(car) && PlayerInfo[playerid][Beruf] != TEAM_Oamt) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsAGrooveCar(car) && PlayerInfo[playerid][Beruf] != TEAM_Groove) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsALCNCar(car) && PlayerInfo[playerid][Beruf] != TEAM_LCN) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsABallasCar(car) && PlayerInfo[playerid][Beruf] != TEAM_Ballas) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsABikerCar(car) && PlayerInfo[playerid][Beruf] != TEAM_Biker) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsAVagosCar(car) && PlayerInfo[playerid][Beruf] != TEAM_LosVagos) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsAYakuzaCar(car) && PlayerInfo[playerid][Beruf] != TEAM_Yakuzza) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
if(IsARifaCar(car) && PlayerInfo[playerid][Beruf] != TEAM_SFRifa) return SendClientMessage(playerid, Rot, "Du kannst dieses Auto nicht abschließen!");
//Terror Car
//Taxi Car
if (AutoTuer[car] == false)
{
GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(car,engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
AutoTuer[car] = true;
TextDrawSetString(pSpeedo[playerid][6], " ~g~A~w~ufgeschlossen");
}
else
{
GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(car,engine,lights,alarm,VEHICLE_PARAMS_OFF,bonnet,boot,objective);
AutoTuer[car] = false;
TextDrawSetString(pSpeedo[playerid][6], " ~r~A~w~bgeschlossen");
}
}
return 1;
}Wenn nein, bekommst du irgendwelche Chat-Nachrichten?
-
dcmd_flock(playerid,params[])
{
#pragma unused params
new car = -1;
if(GetPlayerVehicleSeat(playerid) == 0)
{
car = GetPlayerVehicleID(playerid);
}
else if(!IsPlayerInAnyVehicle(playerid))
{
new Float:x, Float:y, Float:z;
for(new i=0; i<MAX_VEHICLES; i++)
{
GetVehiclePos(i, x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 7.0, x, y, z))
{
car = i;
break;
}
}
}
if(car != -1)
{
if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
{
return SendClientMessage(playerid, Rot, "Du sitzt auf einem Fahrrad.Das kann man nicht abschließen!");
}
if(!IsAGangCar(car) && !IsAFrakCar(car))
{
return SendClientMessage(playerid, Rot, "Du sitzt in keinem Frak-/Gang-Car!");
}
if(IsAGrooveCar(car) && PlayerInfo[playerid][FraktionsID] != TEAM_Groove) return SendClientMessage(playerid, Rot, "Du bist kein Groove Mitglied!");
if(IsALCNCar(car) && PlayerInfo[playerid][FraktionsID] != TEAM_LCN) return SendClientMessage(playerid, Rot, "Du bist kein LCN Mitglied!");
//usw...
if (AutoTuer[car] == false)
{
GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(car,engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
Motor[car] = true;
TextDrawSetString(pSpeedo[playerid][6], " ~g~A~w~ufgeschlossen");
}
else
{
GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(car,engine,lights,alarm,VEHICLE_PARAMS_OFF,bonnet,boot,objective);
Motor[car] = false;
TextDrawSetString(pSpeedo[playerid][6], " ~r~A~w~bgeschlossen");
}
}
return 1;
}Abfrage, ob das Fahrzeug ein Groove Fahrzeug ist und ob der Spieler nicht in Fraktion 10 (Groove) ist, wenn das zutrifft, Fehlermeldung ausgeben.
-
Suche folgende Objekte.
Objekt ID: 3850
Und das andere:
Objekt ID: 2773 -
Da fehlt die Rotation.
Autohauscars[2] = AddStaticVehicle(411,1273.6696,-1803.5338,13.3912,0.0,28,1); // LKW1
Ich habe sie hier mal zu 0.0 gesetzt. -
format(query,sizeof query,"INSERT INTO user (username,password,email,alter) VALUES ('%s','%s','%s',%d)",SpielerName(playerid),password,email,strval(inputtext));
alter ist ein SQL-Befehl.Benenne deine Spalte in MySQL um (zu Age, oder so), oder ändere das Query zu:
format(query,sizeof query,"INSERT INTO user (username,password,email,`alter`) VALUES ('%s','%s','%s',%d)",SpielerName(playerid),password,email,strval(inputtext)); -
Bzw, ein Beispiel wäre cool.
http://forum.sa-mp.com/showthread.php?t=252128
Schau dir diesen Code mal an. Den habe ich vor einiger Zeit gemacht. Das ist in etwas das (der /dropweapon Befehl), was du haben willst, dann weißt du in etwas was du alles brauchst. -
Was steht im Server Log, wenn du es so laufen lässt?
if(!strcmp(cmdtext, "/befehl", true, 7))
{
printf("/befehl eingegeben: %s", cmdtext);
if(cmdtext[7] == ' ' || strlen(cmdtext) == 7)
{
printf("1");
if(!strlen(cmdtext[8])) return SendClientMessage(playerid, 0xFF0000FF, "Error: /befehl [Link]");
new link[128];
format(link, sizeof(link), cmdtext[8]);
printf("2");
static bool:streamvar;
printf("streamvar = %d | link = %s", streamvar, link);
if(!streamvar)
{
for(new x, o = GetMaxPlayers(); x < o; ++x)
{
if(!IsPlayerConnected(x) || IsPlayerNPC(x)) continue;
PlayAudioStreamForPlayer(x, link);
printf("Stream für %d an", x);
}
streamvar = true;
}
else
{
for(new x, o = GetMaxPlayers(); x < o; ++x)
{
if(!IsPlayerConnected(x) || IsPlayerNPC(x)) continue;
StopAudioStreamForPlayer(x);
printf("Stream für %d aus", x);
}
streamvar = false;
}
return 1;
}
} -
Was für einen Fehler bekommst du?
-
if (IsAVerkaufVeh(vehicleid) && !ispassenger)
zu:
if(IsAVerkaufVeh(vehicleid) && ispassenger) -
Poste mal den Code wie du ihn eingefügt hast.
Hast du das /befehl geändert? -
Ja, das geht.
Schau dir mal dieses Ladebalken-System an: http://forum.sa-mp.com/showthread.php?t=113443Damit kannst du sowas machen. Oder du codest dir eins selbst.
-
Dann ist möglicherweise das zu klein:
new string[256];
zu:
new string[512];Wenn es noch immer nicht da steht poste mal den Code.
-
ocmd:stats(playerid,params[])
{
new string[256];
format(string, sizeof(string),""COLB"|===============Allgemeine Informationen===============|\n"COLO"Name: "COLW"%s\n"COLO"Level: "COLW"%d\n"COLO"Geld: "COLW"%d\n"COLO"Adminlevel:"COLW"%d\n"COLO"Fraktion:"COLW"%s\n"COLO"Rang:"COLW"%d\n"COLO"Perso:"COLW"%s",
GetName(playerid), SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pAdminlevel],GetFrakName(SpielerInfo[playerid][pFraktion]),SpielerInfo[playerid][pRang],(SpielerInfo[playerid][pPerso]==1) ? ("Ja") : ("Nein") );
ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,""COLO"[4YR]Statistiken",string,"Ok","");
return 1;
}Wenn du es nur anzeigen lassen willst wenn du einen Perso hast:
if(SpielerInfo[playerid][pPerso]==0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Perso."); -
if(!strcmp(cmdtext, "/befehl", true, 7))
{
if(cmdtext[7] == ' ' || strlen(cmdtext) == 7)
{
if(!strlen(cmdtext[8])) return SendClientMessage(playerid, 0xFF0000FF, "Error: /befehl [Link]");
new link[128];
format(link, sizeof(link), cmdtext[8]);
static bool:streamvar;
if(!streamvar)
{
for(new x, o = GetMaxPlayers(); x < o; ++x)
{
if(!IsPlayerConnected(x) || IsPlayerNPC(x)) continue;
PlayAudioStreamForPlayer(x, link);
}
streamvar = true;
}
else
{
for(new x, o = GetMaxPlayers(); x < o; ++x)
{
if(!IsPlayerConnected(x) || IsPlayerNPC(x)) continue;
StopAudioStreamForPlayer(x);
}
streamvar = false;
}
return 1;
}
}Müsste so passen.
-
In dem Ordner sind mehrere .so Dateien. Nutze die mysql_static.so, die hat die fehlende Library bereits eingebaut.