Ich nehme natürlich auch am Gewinnspielt teil
Beiträge von German_ScripterHD
-
-
Vielen Dank
Ich werde mein Glück mal versuchen
-
-
Hallo Brotfische,
Ich möchte den Befehl "/chat [text]" schreiben, wenn man einen Text eintippt wird am Ende des Textes mit Hilfe von format folgendes gesetzt"\n"... damit wenn der nächste Spieler wieder etwas schreibt, es von vorne los geht (Die Chatnarichten werden in einem Dialog wiedergegeben).
Meine Frage ist, wie kann ich so ein Text in Mysql speichern und wie muss die Tabelle aussehen... sowie das laden des Textes... wie mache ich das am besten?Mit freundlichen Grüßen German_ScripterHD
-
Mit SetPvarInt geht das garnicht... da diese Funktion nur integer (also Zahlen) speichert.
Wenn musst du den Grund z.B so speichern:Und dann kannst du dies auch so abfragen:
-
was hast du den gändert geht jetzt möchte aber gern wissen was es war
Ja, du hast oben abgefragt:
if(!isPlayerAnAdmin(playerid,1))
Das bedeutet wenn der Spieler kein Admin ist, also den Befehl hätte jeder ausführen können der kein Admin ist.Und ich habe es jetzt so gemacht:
if(isPlayerAnAdmin(playerid,1))
Somit kann jetzt der Befehl nur von Admins ab Rang 1 ausgeführt werdenDas war alles
MfG
-
Versuche es nochmal so bitte:
C
Alles anzeigenif(newkeys & KEY_YES) { if(isPlayerAnAdmin(playerid,1)) { for(new a=0;a<MAX_ADMINVEHS;a++) { new Float:x,Float:y,Float:z; if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist."); if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!"); if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back"); if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison."); if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot."); if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt."); if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis."); if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert."); if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt."); GetVehiclePos(adminmobile[a],x,y,z); GetVehicleParamsEx(adminmobile[a],engine,lights,alarm,doors,bonnet,boot,objective); if(IsPlayerInRangeOfPoint(playerid,3.0,x,y,z)) { if(lockedveh[adminmobile[a]] == false) { SetVehicleParamsEx(adminmobile[a],engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective); lockedveh[adminmobile[a]] = true; TextDrawShowForPlayer(playerid,InfoSign); PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~w~Adminmobil ~r~abgeschlossen"); PlayerTextDrawShow(playerid,INFOdraw[playerid][2]); SetTimerEx("HideInfoBox",2000,0,"i",playerid); StopAudioStreamForPlayer(playerid); PlayAudioStreamForPlayer(playerid,ServerSounds[17],0.0,0.0,0.0); return 1; } else if(lockedveh[adminmobile[a]] == true) { SetVehicleParamsEx(adminmobile[a],engine,lights,alarm,VEHICLE_PARAMS_OFF,bonnet,boot,objective); lockedveh[adminmobile[a]] = false; TextDrawShowForPlayer(playerid,InfoSign); PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~w~Adminmobil ~g~aufgeschlossen"); PlayerTextDrawShow(playerid,INFOdraw[playerid][2]); SetTimerEx("HideInfoBox",2000,0,"i",playerid); StopAudioStreamForPlayer(playerid); PlayAudioStreamForPlayer(playerid,ServerSounds[17],0.0,0.0,0.0); return 1; } } } }
-
Versuch es mal so:
C
Alles anzeigenif(newkeys & KEY_YES) { if(!isPlayerAnAdmin(playerid,1)) { for(new a=0;a<MAX_ADMINVEHS;a++) { new Float:x,Float:y,Float:z; if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist."); if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!"); if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back"); if(Spieler[playerid][pInPrison] == 1)return SendClientMessage(playerid,GRAU,"Du bist im Prison."); if(Spieler[playerid][pFriedhof] == 1)return SendClientMessage(playerid,GRAU,"Du bist Tot."); if(Spieler[playerid][pDeath] == 1)return SendClientMessage(playerid,GRAU,"Du bist verletzt."); if(Spieler[playerid][pJailed] != 0)return SendClientMessage(playerid,GRAU,"Du bist im Gefängnis."); if(Spieler[playerid][pTazerd] == 1)return SendClientMessage(playerid,GRAU,"Du bist K.O/getazert."); if(Spieler[playerid][pCuffed] == 1)return SendClientMessage(playerid,GRAU,"Du bist gefesselt."); GetVehiclePos(adminmobile[a],x,y,z); GetVehicleParamsEx(adminmobile[a],engine,lights,alarm,doors,bonnet,boot,objective); if(IsPlayerInRangeOfPoint(playerid,3.0,x,y,z)) { if(lockedveh[adminmobile[a]] == false) { SetVehicleParamsEx(adminmobile[a],engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective); lockedveh[adminmobile[a]] = true; TextDrawShowForPlayer(playerid,InfoSign); PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~w~Adminmobil ~r~abgeschlossen"); PlayerTextDrawShow(playerid,INFOdraw[playerid][2]); SetTimerEx("HideInfoBox",2000,0,"i",playerid); StopAudioStreamForPlayer(playerid); PlayAudioStreamForPlayer(playerid,ServerSounds[17],0.0,0.0,0.0); return 1; } else if(lockedveh[adminmobile[a]] == true) { SetVehicleParamsEx(adminmobile[a],engine,lights,alarm,VEHICLE_PARAMS_OFF,bonnet,boot,objective); lockedveh[adminmobile[a]] = false; TextDrawShowForPlayer(playerid,InfoSign); PlayerTextDrawSetString(playerid,INFOdraw[playerid][2],"~w~Adminmobil ~g~aufgeschlossen"); PlayerTextDrawShow(playerid,INFOdraw[playerid][2]); SetTimerEx("HideInfoBox",2000,0,"i",playerid); StopAudioStreamForPlayer(playerid); PlayAudioStreamForPlayer(playerid,ServerSounds[17],0.0,0.0,0.0); return 1; } } } } }
-
Okay, ich verstehe... Du hast ja den Code in OnPlayerKeyStateChange drinne schau mal ob es vllt. weiter oben (also schon bei OnPlayerKeyStateChange) ob dort vllt. schonmal der "KEY_YES" verwendet wird... wenn ja dann füg den Code mit dort oben rein
-
keine errors keine warnings ich hole mir ein admin auto und drücke taste z und es tut sich einfach nicht weiß nicht warum
Und das Admin-Fahrzeug soll auf/abgeschlossen werden wenn man "Z" drückt richtig?
-
Bekommst du irgendwelche Warnings oder Errors?
Und was genau geht nicht?... -
Du musst das return mit der Meldung aus der Schleife nehmen, sonst endet es immer beim ersten Fahrzeug.
Ohhh... Jetzt sehe ich es auch Aber dank dir
//Edit: 1
Eine Frage habe ich noch
Undzwar, ist die Alarmanlage von den Fahrzeugen für alle hörbar oder nur für dein Spieler?//Edit 2:
Also die Frage "Edit 1" besteht immer noch, aber ich habe auch ein neues Problem. Undzwar wollte ich dem Besitzer des Fahrzeuges noch eine Meldung senden lassen, das sein Fahrzeug gestohlen wurde. Aber leider klappt das nicht.... (print wird garnicht angezeigt)ocmd:breakcar(playerid)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
for(new veh; veh<MAX_VEHICLES; veh++)
{
if(!IsVehicleInRangeOfPoint(veh, 10.0, x, y, z)) continue;
new rand = random(30);
if(rand==18)
{
for(new i; i<MAX_PLAYERS; i++)
{
if(cInfo[veh][besitzer]==sInfo[i][db_id])
{
SendClientMessage(GetPlayerIdFromName(sInfo[i][username]),COLOR_BLUE,"Eins deiner Fahrzeuge wurde geklaut!");
SendClientMessage(GetPlayerIdFromName(sInfo[i][username]),COLOR_BLUE,"Du kannst nun die Polizei verständigen.");
printf("%s hat das Auto von %s (Datenbankid: %i|cInfo[i][besitzer]= %i) Ingameid: %i aufgebrochen!",getPlayerName(playerid),getPlayerName(GetPlayerIdFromName(sInfo[i][username])),sInfo[i][db_id],cInfo[veh][besitzer],playerid);
}
new engine,lights,alarm,bonnet,boot,objective;
GetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
alarm = 1;
vehdoor = 0;
objective = 1;
SetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
return SendClientMessage(playerid,COLOR_GREEN,"Du hast das Fahrzeug aufgebrochen!");
}
}
return SendClientMessageEx(playerid,COLOR_BLUE,"Fahrzeug wurde nicht aufgebrochen (random = %i)",rand);
}
return SendClientMessage(playerid,C_Error,"Es ist kein Fahrzeug in der Nähe!");
}Der stock:
stock GetPlayerIdFromName(playername[])
{
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new playername2[MAX_PLAYER_NAME];
GetPlayerName(i, playername2, sizeof(playername2));
if(strcmp(playername2, playername, true, strlen(playername)) == 0)
{
return i;
}
}
}
return INVALID_PLAYER_ID;
} -
Hallo Brotfische,
Ich bin gerade dabei ein "aufbrech" System für Fahrzeuge zu coden. Leider bekomme ich aber die Meldung das keine Fahrzeug in der Nähe sind, obwohl ich direkt vor einem Fahrzeug stehe.
Code:
C
Alles anzeigenocmd:breakcar(playerid) { new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); for(new veh; veh<MAX_VEHICLES; veh++) { if(!IsVehicleInRangeOfPoint(veh, 10.0, x, y, z))return SendClientMessage(playerid,C_Error,"Es ist kein Fahrzeug in der Nähe!"); new rand = random(30); if(rand==18) { new engine,lights,alarm,bonnet,boot,objective; GetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective); alarm = 1; vehdoor = 0; objective = 1; SetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective); SendClientMessage(playerid,COLOR_GREEN,"Du hast das Fahrzeug aufgebrochen!"); } return SendClientMessageEx(playerid,COLOR_BLUE,"Fahrzeug wurde nicht aufgebrochen (random = %i)",rand); } return 1; }
stock:C
Alles anzeigenstock IsVehicleInRangeOfPoint(vehicleid, Float:radi, Float:x, Float:y, Float:z) { new Float:oldposx, Float:oldposy, Float:oldposz; new Float:tempposx, Float:tempposy, Float:tempposz; GetVehiclePos(vehicleid, oldposx, oldposy, oldposz); tempposx = (oldposx -x); tempposy = (oldposy -y); tempposz = (oldposz -z); if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) { return 1; } return 0; }
Ich hoffe ihr könnt mir helfenMfG
-
Diesbezüglich kannst du dich gerne bei mir per PN melden.
-
geht es auch so:
Ich denke schon :), Aber ich gebe dir einen Tipp:
zu:
Cif(!IsPlayerInRangeOfPoint(playerid, 10.0, 2260.21875, 2032.12817, 10.49372))return SendClientMessage(playerid,-1,"Du bist nicht am Ordnungsamt.");
Wenn du nicht an der Schranke bist, bekommst du somit die Meldung das du nicht am Ordnungsamt bist.
-
-
Habe geantwortet, aber du kann auch den Respektspunkte Code schicken, bin auch über PN und Teamviewer ereichbar.
-
Wenn du es in 4er Schritten machst geht es besser Also Level 1 = 4 | Level 2 = 8 | Level 3 = 12 | Level 4 = 16 usw.
Dann könntest du es beim Payday Timer einfach so machen:
Cnew string[256],respektlevel; Spieler[playerid][respektpunkte]++; respektlevel=GetPlayerScore(playerid)*4; if(Spieler[playerid][respektpunkte]>=respektlevel) { SetPlayerLevel(playerid,GetPlayerScore(playerid)+1); format(string,sizeof(string),"Du bist nun Level %i.",GetPlayerScore(playerid)); SendClientMessage(playerid,-1,string); }
-
Mach es lieber wie es die Simon2202 gesagt hat...
OnGameModeInit:
SetTimer("RemoveFromJail",60000,1);
Unten im Script:
C
Alles anzeigenforward RemoveFromJail(); public RemoveFromJail() { for(new i; i<MAX_PLAYERS; i++) { if(GetPlayerWantedLevel(i)>0) { if(KnastZeit[i]==0) { SetPlayerPos(playerid,x,y,z);//Koordinaten eintragen wo er nach dem Knast spawnen soll. SendClientMessage(playerid,-1,"Du wurdest aus dem Knast entlassen!"); SetPlayerWantedLevel(playerid,0); } else { KnastZeit[i]-=1; } } } return 1; }
Und dann musst du das aber ändern:
C
Alles anzeigenpublic OnPlayerDeath(playerid, killerid, reason) { if(IsPlayerCop(killerid)) { if(GetPlayerWantedLevel(playerid)>0) { new string[128]; SetPlayerPos(playerid,0.0,0.0,0.0);//Knastspawn anpassen format(string,sizeof(string),"Du sitz für %d Minuten im Knast.",GetPlayerWantedLevel(playerid)*3); SendClientMessage(playerid,-1,string); format(string,sizeof(string),"Du hattest %d Wanteds.",GetPlayerWantedLevel(playerid)); SendClientMessage(playerid,-1,string); KnastZeit[playerid] = GetPlayerWantedLevel(playerid)*3; } } return 1; }
-
/wanted kannst du z.B so schreiben:
C
Alles anzeigenif(strcmp(cmdtext,"/wanted",true)==0) { new string[300],string1[128]; if(!IsPlayerCop(playerid))return SendClientMessage(playerid,-1,"Du bist kein Cop!"); for(new i; i<MAX_PLAYERS; i++) { if(GetPlayerWantedLevel(i)>0) { format(string1,sizeof(string1),"%s Wandetlevel: %i",getPlayerName(i),GetPlayerWantedLevel(i)); strcat(string,string1); format(string,sizeof(string),"%s\n%s",string); } } ShowPlayerDialog(playerid,DIALOG_WANTED,DIALOG_STYLE_LIST,"Spieler mit Wanteds:",string,"Wählen","Abbrechen"); }
Und
- Wenn man Wanteds hat und von einem Cop gekillt wird -> Knast. Pro Wanted 3 Minuten
C
Alles anzeigenpublic OnPlayerDeath(playerid, killerid, reason) { if(IsPlayerCop(killerid)) { if(GetPlayerWantedLevel(playerid)>0) { new string[128]; SetPlayerPos(playerid,0.0,0.0,0.0);//Knastspawn anpassen format(string,sizeof(string),"Du sitz für %d Minuten im Knast.",GetPlayerWantedLevel(playerid)*3); SendClientMessage(playerid,-1,string); format(string,sizeof(string),"Du hattest %d Wanteds.",GetPlayerWantedLevel(playerid)); SendClientMessage(playerid,-1,string); KnastZeit[playerid]=GetPlayerWantedLevel(playerid)*3; SetPlayerWantedLevel(playerid,0);//Wanteds wieder auf 0 setzen } } return 1; }
IsPlayerCop musst du an dein Script anpassen, da ich nicht weiß wie du die Variablen verwendest.
Das ganze System ist ungetestet sollte aber klappen. Wenn nicht einfach den Fehler hier drunter posten.