SetTimerEx("Robtimer",60000,0,"i",playerid);
Und
new RobUhr wird nie benutzt
SetTimerEx("Robtimer",60000,0,"i",playerid);
Und
new RobUhr wird nie benutzt
Die Zeilen wären nicht schlecht..
doch, wenn man die id hinterschreibt spawnt er auto, wenn man nur /v eingibt, öffnet sich ein dialog. da kannst dann die id oder den Namen reinschreiben und es wird ein auto gespawnt. mit /vweg machste den wieder weg
dcmd_v(playerid,params[])
{
new vID;
if(sscanf(params, "d", vID))
{
if(Spieler[playerid][Admin] >= 1)
{
return ShowPlayerDialog(playerid,DIALOG_AUTO,DIALOG_STYLE_INPUT,"Auto spawnwn","{FFFFFF}Gebe die {00FF00}ID{FFFFFF} oder den {00FF00}Namen{FFFFFF} des Gewünschten Fahrzeuges ein!","Okay","Cancel");
}
else
{
return 0;
}
}
if(vID < 400 || vID > 611)
{
return SendClientMessage(playerid,grau,"Nur Vehicle-ID's von 400-611 benutzen!");
}
if(Spieler[playerid][Admin] < 1)
{
return 0;
}
else
{
new Float:x, Float:y, Float:z, name[MAX_PLAYER_NAME];
GetPlayerPos(playerid, x, y, z);
GetPlayerName(playerid,name,sizeof(name));
new cv = CreateVehicle(vID, x, y, z, 0, 117, 117, -1);
entercar[playerid][cv] = 1;
Adminauto[cv] = 1;
MAX_CARS++;
new str[20];
format(str,sizeof(str),"Admin %d",MAX_CARS);
SetVehicleNumberPlate(cv,str);
SetVehicleHealth(cv,1000.0);
SetVehicleVirtualWorld(cv,GetPlayerVirtualWorld(playerid));
PutPlayerInVehicle(playerid,cv,0);
new string[256];
format(string, sizeof(string), "AdmCmd: %s hat eine(n) %s gespawnt.",name,carname[vID-400]);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(Spieler[i][Admin] >= 1)
{
SendClientMessage(i, 0xFF6347FF, string);
}
}
}
return 1;
}
dcmd_vwegall(playerid,params[])
{
#pragma unused params
if(Spieler[playerid][Admin] < 2)
{
return 0;
}
else
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(Spieler[i][Admin] >= 1)
{
new str[256], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(str,sizeof(str),"AdmCmd: %s hat alle unbenutzten gespawnte Admincars zertört.", name);
SendClientMessage(i,0xFF6347FF,str);
}
}
for(new i = 0; i < MAX_VEHICLES; i++)
{
if(Adminauto[i] == 1)
{
if(IsVehicleEmpty(i))
{
DestroyVehicle(i);
}
}
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_AUTO)
{
if(response)
{
if(strlen(inputtext) >= 3)
{
if(strval(inputtext) > 399 && strval(inputtext) < 612)
{
new Float:x, Float:y, Float:z, name[MAX_PLAYER_NAME];
GetPlayerPos(playerid, x, y, z);
GetPlayerName(playerid,name,sizeof(name));
new cv = CreateVehicle(strval(inputtext), x, y, z, 0, 117, 117, -1);
entercar[playerid][cv] = 1;
Adminauto[cv] = 1;
MAX_CARS++;
new str[20];
format(str,sizeof(str),"Admin %d",MAX_CARS);
SetVehicleNumberPlate(cv,str);
SetVehicleHealth(cv,1000.0);
SetVehicleVirtualWorld(cv,GetPlayerVirtualWorld(playerid));
PutPlayerInVehicle(playerid,cv,0);
new string[256];
format(string, sizeof(string), "AdmCmd: %s hat eine(n) %s gespawnt.",name,carname[strval(inputtext)-400]);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(Spieler[i][Admin] >= 1)
{
SendClientMessage(i, 0xFF6347FF, string);
}
}
}
else
{
new variable;
for(new i = 0; i < MAX_VEHS; i++)
{
if(strcmp(inputtext, carname[i], true) == 0)
{
new Float:x, Float:y, Float:z, name[MAX_PLAYER_NAME];
GetPlayerPos(playerid, x, y, z);
GetPlayerName(playerid,name,sizeof(name));
new cv = CreateVehicle(i+400, x, y, z, 0, 117, 117, -1);
entercar[playerid][cv] = 1;
Adminauto[cv] = 1;
MAX_CARS++;
new str[20];
format(str,sizeof(str),"Admin %d",MAX_CARS);
SetVehicleNumberPlate(cv,str);
SetVehicleHealth(cv,1000.0);
SetVehicleVirtualWorld(cv,GetPlayerVirtualWorld(playerid));
PutPlayerInVehicle(playerid,cv,0);
new string[256];
format(string, sizeof(string), "AdmCmd: %s hat eine(n) %s gespawnt.",name,carname[i]);
for(new j = 0; j < MAX_PLAYERS; j++)
{
if(Spieler[j][Admin] >= 1)
{
SendClientMessage(j, 0xFF6347FF, string);
}
}
variable = 1;
}
}
if(variable == 0)
{
SendClientMessage(playerid,0xDD0000FF,"Fahrzeugname oder Fahrzeugid ungültig!");
}
else
{
variable = 0;
}
}
}
else OnPlayerCommandText(playerid,"/v");
}
}
return 1;
}
musst die dcmd und dialogid definieren und die adminabfrage anpassen.
LG Simon
//edit: carname[vID-400] musst du auch anpassen und sry das das nicht richtig eingedrückt wurde, hat er iwie nicht gemacht
#define grau 0xAFAFAFAF
dcmd_goto(playerid,params[])
{
new pID;
if(sscanf(params, "u", pID)) return SendClientMessage(playerid,grau,"Benutzung: /goto [Playerid]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,grau,"Kein Spieler mit angegebener ID Online");
if(Spieler[playerid][Admin]<2) return 0; //Anpassen!!!
new Float:x, Float:y, Float:z;
GetPlayerPos(pID, x, y, z);
new pint = GetPlayerInterior(pID);
new pvtw = GetPlayerVirtualWorld(pID);
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
SetVehiclePos(vehicleid,x,y,z);
SetVehicleVirtualWorld(vehicleid,pvtw);
LinkVehicleToInterior(vehicleid,pint);
SetPlayerInterior(playerid, pint);
SetPlayerVirtualWorld(playerid, pvtw);
}
else
{
SetPlayerPos(playerid, x+1, y+1, z+1);
SetPlayerInterior(playerid, pint);
SetPlayerVirtualWorld(playerid, pvtw);
}
new name[MAX_PLAYER_NAME], string[256];
GetPlayerName(pID, name, sizeof(name));
format(string, sizeof(string), "Du hast dich zu %s geportet.", name );
SendClientMessage(playerid, grau, string);
return 1;
}
dcmd_gethere(playerid,params[])
{
new pID;
if(sscanf(params, "u", pID)) return SendClientMessage(playerid,grau,"Benutzung: /gethere [Playerid]");
if(!IsPlayerConnected(pID) || IsPlayerNPC(pID)) return SendClientMessage(playerid,grau,"Kein Spieler mit angegebener ID Online");
if(Spieler[playerid][Admin] < 2) return 0; //ANpassen!!!
new Float:x, Float:y, Float:z;
new admint = GetPlayerInterior(playerid);
new name[MAX_PLAYER_NAME],aname[MAX_PLAYER_NAME], string[50];
new admvrt = GetPlayerVirtualWorld(playerid);
GetPlayerPos(playerid, x, y, z);
GetPlayerName(playerid, aname, sizeof(aname));
GetPlayerName(pID, name, sizeof(name));
format(string, sizeof(string), "Du wurdest teleportiert.", aname);
SendClientMessage(pID, grau, string);
if(!IsPlayerInAnyVehicle(pID))
{
SetPlayerPos(pID, x+2, y+2, z);
SetPlayerInterior(pID, admint);
SetPlayerVirtualWorld(pID, admvrt);
}
else
{
SetVehiclePos(GetPlayerVehicleID(pID),x+2,y+2,z);
SetVehicleVirtualWorld(GetPlayerVehicleID(pID),admvrt);
LinkVehicleToInterior(GetPlayerVehicleID(pID),admint);
SetPlayerInterior(pID, admint);
}
return 1;
}
Pass das deinem system noch bisschen an
new Zeit[MAX_PLAYERS;
forward timername(playerid);
//wenn er ausgeraubt hat:
Zeit[playerid] = 10;
SetTimerEx("timername",60000,"i",playerid);
public timername(playerid)
{
Zeit[playerid]--;
if(Zeit[playerid] >= 1)
{
new str[40];
format(str,sizeof(str),"Verbleibende Zeit: %d Minuten",Zeit[playerid]);
TextDrawSetString(id,str);
SetTimerEx("timername",60000,"i",playerid);
}
else
{
//was passieren soll wenn die 10 minuten um sind
}
return 1;
}
Einen kürzeren Timer machen. dieser Timer wiederholt sich immer und veringt eine variable immer um 1 ob die variable in sekunden oder minuten angezeigt werden soll musst du dann einstellen. und sobald die variable bei 0 angekommen ist, killst du den timer und gibst ihm das geld:
also:
public timer(playerid,variable)
{
variable--;
if(variable >= 1)
{
//was passiere soll
SetTimerEx("timer",zeit,variable);
}
else
{
//was passieren soll
}
return 1;
}
Und nun editierst du deinen Beitrag und machst alles ins pawncode. Das ist der Button wo "pwn" drauf steht.
LG
Simon
ähm so:
new Text3D:Name
Name = Create3DText...
public timer()
{
Update3DTextLabelText(Name..
was genau möchtest du vom 3d text übergeben? den string? ich verstehe das nicht ganz..
wie hast du name denn definiert? irgentwo oben bei denen defines und includes und news muss new name stehen. ansonsten versuchst mal so:
new name1[MAX_PLAYER_NAME], sc[44];
GetPlayerName(playerid, name1, sizeof(name1))
Du machst einen Befehl und fragst ab ob der Spieler in der nähe ist. dann fragst du ab ob der spieler in fraktion 5 oder 6 ist und dann bewegst du das tor mit MoveObject dahin, wo es hin soll.. eigentlich ganz einfach..
Hier die Funktionen:
Würde ich auch gerne wissen.. bestimmt wird die Variable schon verwendet oder es kommt ein warning weil er was falsch eingedrückt hat..
Hast komische Abfragen dadrinne.. ich glaube style 2 ist verbuggt, bin mir aber nicht sicher. Hier mal ein besserer Code:
ocmd:GText(playerid,params[])
{
new string[180], Zeit, Style;
if(sscanf(params,"sdd",string,Zeit,Style)) return SendClientMessage(playerid,0xB0AFB0FF,"Benutze: /GText [Text] [Zeit] [Style]");
if(SpielerInfo[playerid][Adminlevel] < 1 ) return SendClientMessage(playerid,ROT,"Du bist kein Admin mit Level 2 oder Mod.");
if(Zeit < 1 ) return SendClientMessage(playerid,0xB0AFB0FF,"Zeit muss höher als 0 sein!");
if(Style < 0|| Style > 6) return SendClientMessage(playerid,0xB0AFB0FF,"Wähle Style 0-6");
GameTextForAll(string,Zeit,Style);
return 1;
}
Ich würde dir Raten einen anderen Browser zu wählen, da du öfters solche Probleme mit dem Internet Explorer bekommen wirst.
Folgende Browser wären besser:
Das ist eine sehr gute Idee. Eventuell könnte man auch wünsche äußern, was gescriptet werden soll und wie schon gesagt im chat dann schreiben falls man etwas nicht versteht bzw. wenn man noch fragen dazu hat. so wird es oft viel besser deutlich..
ich verstehe nichtg was du meinst, was das für ein sinn ergeben soll und und und.. erkläre nochmal deutlich was du willst und wie du das erreichen willst?
aus der 15 eine -1 machen
vllt liegt es daran das es nach 15 millisekunden respawnt.
ich würde nicht OnPlayerUpdate nutzen! es ist mit pawn möglich nen anti afk script zu erstellen. einfach ein timer starten der die zeit hat, nach der man gekickt werden soll. immer wenn er einen Key drückt, sollte der Timer gekillt und neu gestartet werden.
Falsch! Das wäre eben kein Marker. Um ein Marker zu machen, musst du erstmal die Marker aktivieren. Ich weiß nicht genau wie die funktion gerade ist.
Dann musst du die Farbe der Spieler beim connecten auf 0xFFFFFF00 stellen. Damit sind sie unsichtbar auf der Map. und sobald er needhelp macht, musst du folgende Funktion benutzen: SetPlayerMarkerForPlayer(playerid,markerid,farbe); die markerid ist kla und die farbe wäre bei rot 0xFF0000FF. die playerid musst du dann sehen wer das ist. ich denke mal alle die Team_Menschen sind. musst du mit der for schleife durchgehen