Auf welchen Wert wird Banned gesetzt, wenn er gebannt wird?
if(GetPVarInt(pID,"Banned"))
Fragt ja ab ob Banned true oder 1 ist.
Auf welchen Wert wird Banned gesetzt, wenn er gebannt wird?
if(GetPVarInt(pID,"Banned"))
Fragt ja ab ob Banned true oder 1 ist.
Ist nicht schwer zu verstehen.
Die Schule mit den meisten Stimmen bekommt ein Konzert
Wow wie toll Viel Glück
Ich habs zwar nicht verstanden, aber hab mal gevoted.
Suche den Roten Benzinkanister
1650 - petrolcanm
Suche dieses Graue objekt...
Das sind einzelne Objekte, die mit einer Toolbox in dieser Form erstellt wurden.
vgehshade01_lvs - 8838
vgncarshade1 - 3458
Das is ja voll nett Ich versuchs
Daran hab ich nicht gedacht, belassen wir es dabei.
Zitat von »_PayDay_«
Wenn du die for-Schleifen so verwendest, sparst du enorm Leistung.
Falsch.
Was du machst ist sogar noch leistungsschwächer, da du eine if-Abfrage mehr hast, und eine Variable erstellst.
Wenn man kein break nutzt, dann läuft die ja bis an das Limit weiter.
Naja mit IsPlayerInRangeOfPoint kann man ja nur in einer Kugel abfragen, zeig mal deine IsPlayerInArea Funktion.
AddStaticVehicle kann nur in OnGameModeInit genutzt werden, CreateVehicle dagegen schon. Überprüf mal ob du das auch tust.
if(strcmp(cmd, "/tanken", true) == 0)
{
new fillstation = -1;
for(new i = 0; i<MAX_TANKEN; i++) //Hier die Schleife
{
if(IsPlayerInRangeOfPoint(playerid, 8.0, TankenInfo[i][tPosX], TankenInfo[i][tPosY], TankenInfo[i][tPosZ]))
{
fillstation = i;//Tankstelle gefunden
break;//Schleife anhalten
}
}
if(fillstation != -1)//Fragt ab ob eine Tankstelle in der Nähe vom Spieler gefunden wurde
{
//if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
//{
// SendClientMessage(playerid,COLOR_RED,"* Ein Fahrrad hat keinen Tank!"); //Erstmal entfernt.
//}
//else
//{
new VID;
new FillUp;
new string[256];
VID = GetPlayerVehicleID(playerid);
FillUp = GetGasMax(GetVehicleModel(VID)) - Gas[VID];
if(GetPlayerMoney(playerid) >= FillUp+4)
{
SetTimer("Fillup",RefuelWait,0);
Refueling[playerid] = 1;
FreezePlayer(playerid);
TankenInfo[fillstation][tLiter] -= FillUp;
UpdateTankenLabel(fillstation);
format(string, sizeof(string), "* Tankstelle: {FFFFFF}Du betankst dein Fahrzeug an der %s Tankstelle!", TankenInfo[fillstation][tDescr]);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"* Tankstelle: {FFFFFF}Bitte warte bis es aufgetankt wurde!");
return 1;
}
else
{
format(string,sizeof(string),"* Du hast nicht genug Geld zum Tanken auf der Hand! Kosten: %d$",FillUp);
return SendClientMessage(playerid, COLOR_LIGHTGREEN,string);
}
}
else
{
return GameTextForPlayer(playerid,"~r~DU BIST AN KEINER TANKSTELLE!", 4000, 3);
}
}
Wenn du die for-Schleifen so verwendest, sparst du enorm Leistung.
Ich hab dir auch deine i und playerid Fehler gefixt.
Zeig mal wo du das Tor erstellst.
Beschreib es genauer, warum es nicht geht.
Was genau geht nicht?
Ich versuch mal was zusammen zu scripten.
//Edit:
Ganz oben:
#include <sscanf>//Wenn du es noch nicht eingebunden hast
#include <ocmd>//Wenn du es noch nicht eingebunden hast
#define COLOR_WHITE 0xFFFFFFFF//Wenn du es noch nicht definiert hast
#define COLOR_GREY 0xAFAFAFAA//Wenn du es noch nicht definiert hast
#define COLOR_GREEN 0x33AA33AA//Wenn du es noch nicht definiert hast
new PlayerContractPrice[MAX_PLAYERS];
new PlayerContractTarget[MAX_PLAYERS];
new bool:Finding[MAX_PLAYERS];
Unter OnPlayerConnect:
PlayerContractTarget[playerid] = -1;
PlayerContractPrice[playerid] = 0;
Unter OnPlayerDisconnect:
PlayerContractTarget[playerid] = -1;
PlayerContractPrice[playerid] = 0;
Unter OnPlayerDeath:
if(isPlayerInFrakt(killerid,12))
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(PlayerContractTarget[i] == playerid)
{
new string[128];
new pName[128];
GetPlayerName(playerid, pName, sizeof pName);
format(string, sizeof string, "[Hitman]Du hast %s getoetet, und %d$ bekommen!", pName, PlayerContractPrice[i]);
SendClientMessage(killerid, COLOR_GREEN, string);
new money = GetPlayerMoney(killerid);//Anpassen!
ResetPlayerMoney(killerid);//Anpassen!
GivePlayerMoney(killerid, money+PlayerContractPrice[i]);//Anpassen!
PlayerContractPrice[i] = 0;
PlayerContractTarget[i] = -1;
}
}
}
Ganz unten:
ocmd:contract(playerid, params[0])
{
new target,price;
if(sscanf(params, "ud", target,price))
{
if(!isPlayerInFrakt(playerid,12))
{
if(price <= 3000)
{
if(GetPlayerMoney(playerid) >= price)//Anpassen!
{
if(IsPlayerConnected(target))
{
if(PlayerContractPrice[playerid] == 0)
{
new string1[128];
new pName2[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName2, sizeof pName2);
new pName[MAX_PLAYER_NAME];
GetPlayerName(target, pName, sizeof pName);
format(string1, sizeof string1, "[Hitman]Du hast %d$ Kopfgeld auf %s gesetzt!", price,pName);
SendClientMessage(playerid, COLOR_GREEN, string1);
format(string1, sizeof string1, "[Hitman]%s hat ein Kopfgeld von %d$ auf %s gesetzt, erledige ihn.", pName2, price, pName);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(isPlayerInFrakt(i,12))
{
SendClientMessage(i, COLOR_GREEN, string1);
}
}
PlayerContractPrice[playerid] = price;
PlayerContractTarget[playerid] = target;
new money = GetPlayerMoney(playerid);//Anpassen!
ResetPlayerMoney(playerid);//Anpassen!
GivePlayerMoney(playerid, money-price);//Anpassen!
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast bereits einen Vertrag abgeschlossen!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist nicht online!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast nicht genug Geld!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Preis muss ueber 3000$ liegen!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du darfst kein Hitman sein um einen Auftrag abzuschließen!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "BENUTZE: /contract [Spieler-ID/Teil des Namens] [Preis]");
}
return 1;
}
ocmd:uncontract(playerid, params[0])
{
if(PlayerContractPrice[playerid] != 0)
{
new string1[128], pName[MAX_PLAYER_NAME];
GetPlayerName(PlayerContractTarget[playerid], pName, sizeof pName);
format(string1, sizeof string1, "[Hitman]Du hast das Kopfgeld auf %s zurueckgezogen!", pName);
SendClientMessage(playerid, COLOR_GREEN, string1);
new pName2[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName2, sizeof pName2);
format(string1, sizeof string1, "[Hitman]%s hat das Kopfgeld auf %s zurueckgezogen!", pName2, pName);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(isPlayerInFrakt(i,12))
{
SendClientMessage(i, COLOR_GREEN, string1);
}
}
new money = GetPlayerMoney(playerid);//Anpassen!
ResetPlayerMoney(playerid);//Anpassen!
GivePlayerMoney(playerid, money+PlayerContractPrice[playerid]);//Anpassen!
PlayerContractPrice[playerid] = 0;
PlayerContractTarget[playerid] = -1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast keinen Auftrag abgeschlossen!");
}
return 1;
}
ocmd:contractlist(playerid, params[0])
{
if(isPlayerInFrakt(i,12))
{
new string[128];
new bool:ContractExist;
for(new a=0;a<MAX_PLAYERS;a++)
{
if(PlayerContractPrice[a] != 0)
{
ContractExist = true;
new pName[MAX_PLAYER_NAME];
GetPlayerName(PlayerContractTarget[a], pName, sizeof pName);
format(string, sizeof string, "%s(ID: %d): %d$", pName, PlayerContractTarget[a], PlayerContractPrice[a]);
}
}
if(ContractExist == true)
{
SendClientMessage(playerid, COLOR_WHITE, "======[Hitman Auftraege]======");
SendClientMessage(playerid, COLOR_GREEN, string);
SendClientMessage(playerid, COLOR_WHITE, "==============================");
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Es gibt keine Auftraege!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du musst ein Hitman sein um alle Auftraege zu sehen!");
}
return 1;
}
ocmd:find(playerid, params[0])
{
new target;
if(sscanf(params, "u", target))
{
if(isPlayerInFrakt(i,12))
{
if(IsPlayerConnected(target))
{
if(Finding[playerid] == false)
{
Finding[playerid] = true;
new Float:x, Float:y, Float:z;
GetPlayerPos(target, x,y,z);
SetPlayerCheckpoint(playerid, x,y,z,2);
SetTimerEx("DeleteCheckpoint", 15000, false, "playerid", playerid);
new string[128],pName[MAX_PLAYER_NAME];
GetPlayerName(target, pName, sizeof pName);
format(string, sizeof string, "[Hitman]Es wurde ein Marker bei %s erstellt!",pName);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du suchst bereits jemanden!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist nicht online!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du musst ein Hitman sein um Personen ausfindig zu machen!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "BENUTZE: /find [Spieler-ID/Teil des Namens]");
}
return 1;
}
forward public DeleteCheckpoint(playerid);
public DeleteCheckpoint(playerid)
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, COLOR_GREY, "Der Marker wurde entfernt!");
return 1;
}
Ich habs nicht getestet, poste bitte wenn du Probleme hast
Musst es dann noch in deinem Login/Register speichern lassen
MfG
Ganz oben im Script unter #include
new Text3D:SpielerText[MAX_PLAYERS];//Variable "SpielerText" für jeden Spieler seperat erstellen
new bool:TextShowed[MAX_PLAYERS];//Variable "TextShowed" für jeden Spieler seperat erstellen
Unter OnPlayerCommandText
if (strcmp("/s", cmdtext, true, 10) == 0)//Wenn /s in den Chat geschrieben wird
{
if(TextShowed[playerid] == false)//Abfragen ob der Text nochnicht angezeigt wird
{
SpielerText[playerid] = Create3DTextLabel("Gib hier deinen Text ein!", 0xFFFFFFFF, 0.0, 0.0, 0.0, 10, 0, 0);//Den Text erstellen
Attach3DTextLabelToPlayer(SpielerText[playerid], playerid, 0,0,7);//Den Text über den Spieler setzen
}
else //Wenn er schon angezeigt wird
{
SendClientMessage(playerid, 0xFFFFFFFF, "Der Text wird bereits angezeigt!");//Fehlermeldung
}
}
if (strcmp("/saus", cmdtext, true, 10) == 0)//Wenn /saus in den Chat geschrieben wird
{
if(TextShowed[playerid] == true)//Abfragen ob der Text angezeigt wird
{
Delete3DTextLabel(SpielerText[playerid]);//Den Text löschen
}
else//Wenn er nicht angezeigt wird
{
SendClientMessage(playerid, 0xFFFFFFFF, "Der Text wird nicht angezeigt!");//Fehlermeldung
}
}
Ist ungetestet, hoffe konnte dir helfen.
//Edit: Hab das mit dem einrücken endlich geschafft
Vielen Dank Padarom, klappt ohne Probleme.
Und ich weiß jetzt wie while Schleifen funktionieren und dass es sie gibt
Hallo Breadfish,
Ich habe einen Timer der 30 Sekunden nach Gamemodestart ausgeführt wird und dann will ich einen Spieler zufällig auswählen lassen und dann wird er zum Zombie (ZombieEscape).
Ich weiß jetzt nicht wie soetwas geht, ich habe einen Bot drinnen.
Also nur Spieler und keine Bots sollen ausgewählt werden.
Hoffe mir kann jemand schnell was herscripten
Danke im Vorraus.
MfG
Sende mal den Code anders ist Hilfe unmöglich.
Wieda falscher Account -.-