Dann mach es mit einer Variable. Gleich wie bei den Fahrrädern, nur ohne Timer. ![]()
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
die Variable muss ich aber dann eigentlich bei OnPlayerSpawn setzen oder? dass da der Interior gesetzt wird,
auch wenn ich sterbe oder sowas.Wenn ich das ja nur z.b. bei dem Befehl /spawnplayer hinmache würde der Interior ja nur dann gesetzt werden.
-
Hallo,
irgendwie buggt mein OnPlayerDeath seit heute.
Ich habe nichts verändert, jedoch egal ob ich Wanteds habe oder nicht, ich sterbe einfach ganz normal und komme dann an die Position an der ich mich ausgeloggt habe.
Eigentlich soll es ja so sein, dass wenn ich in der Nähe eines Cops Sterbe mit Wanteds ich in den Knast komme, falls ich keine habe oder kein Cop in der Nähe ist ich dann am Friedhof spawne.Mein OnPlayerDeath
Spoiler anzeigen public OnPlayerDeath(playerid, killerid, reason)
{
//________________ Definierungen ______________________
new stringz[128],die[128],wtd[128],string[128];
SpielerInfo[playerid][pTode] +=1;
if(killerid != INVALID_PLAYER_ID) SpielerInfo[killerid][pKills] +=1;
SpielerInfo[playerid][pDuty] = 0;
//________________ Wanted-System ______________________
if(SpielerInfo[playerid][pTeam] == 1 && SpielerInfo[killerid][pTeam] != 1)
{
SpielerInfo[killerid][pWanteds] += 5;
SetPlayerWantedLevel(killerid, (SpielerInfo[killerid][pWanteds]/5) + 1);
SpielerInfo[killerid][pSterne] = SpielerInfo[killerid][pWanteds]/5 + 1;
SpielerInfo[killerid][pVerbrechen] += 5;
format(wtd,sizeof(wtd),"%s hat ein Verbrechen begangen: Polizeimord. Anzahl: 5 | Zeuge: %s.",SpielerName(killerid),SpielerName(playerid));
SendFraktionMessage(1, cop, wtd);
format(string,sizeof(string),"Du hast ein Verbrechen begangen: Polizeimord. Anzahl: 5 | Zeuge: %s.",SpielerName(playerid));
SendClientMessage(killerid,info,string);
format(string,sizeof(string), "Aktuelles Wanted: %i",SpielerInfo[killerid][pWanteds]);
SendClientMessage(killerid,info,string);
}
else if(SpielerInfo[playerid][pTeam] != 1 && SpielerInfo[killerid][pTeam] != 1)
{
SpielerInfo[killerid][pWanteds] += 3;
SetPlayerWantedLevel(killerid, (SpielerInfo[killerid][pWanteds]/5) + 1);
SpielerInfo[killerid][pSterne] = SpielerInfo[killerid][pWanteds]/5 + 1;
SpielerInfo[killerid][pVerbrechen] += 3;
format(wtd,sizeof(wtd),"%s hat ein Verbrechen begangen: Zivimord. Anzahl: 3 | Zeuge: %s.",SpielerName(killerid),SpielerName(playerid));
SendFraktionMessage(1, cop, wtd);
format(string,sizeof(string),"Du hast ein Verbrechen begangen: Zivimord. Anzahl: 3 | Zeuge: %s.",SpielerName(playerid));
SendClientMessage(killerid,info,string);
format(string,sizeof(string), "Aktuelles Wanted: %i",SpielerInfo[killerid][pWanteds]);
SendClientMessage(killerid,info,string);
}
//________________ Tot_System ______________________
if(SpielerInfo[playerid][pWanteds] > 0 && teaminrangeofpoint(playerid, 1))
{
new wstring[128];
format(wstring, sizeof(wstring), "%s wurde Verhaftet! Grund: Tot.",SpielerName(playerid));
SendClientMessageToAll(info, wstring);
print(wstring);
new time = SpielerInfo[playerid][pWanteds] * 120;
SpielerInfo[playerid][pKnastzeitBis] = gettime() + time;
SpielerInfo[playerid][pKnastzeit] = time;
SpielerInfo[playerid][pKnast] = 1;
SpielerInfo[playerid][wTot] += 1;
SpielerInfo[playerid][pInhaftiert] += 1;
SpielerInfo[playerid][pWanteds] = 0;
SpielerInfo[playerid][pSterne] = 0;
SpielerInfo[playerid][kSkin] = 62;
SetPlayerWantedLevel(playerid, 0);
}
else if(SpielerInfo[playerid][pTot] == 0) {
SpielerInfo[playerid][pTot] = 1;
tzeit[playerid] = 120;
GetPlayerPos(playerid,tx[playerid],ty[playerid],tz[playerid]);
toticon[playerid] = CreatePickup(1254,1,tx[playerid],ty[playerid],tz[playerid],-1);
format(stringz, sizeof(stringz), "%s", SpielerName(playerid));
totlabel = Create3DTextLabel(stringz,0xFF0000FF, tx[playerid], ty[playerid], tz[playerid], 32.0, 0);
format(die,sizeof(die),"%s ist gestorben! Er braucht dringend einen Arzt.",SpielerName(playerid));
SendFraktionMessage(2, medic, die);
SpielerInfo[playerid][pTotskin] = 162;
}
//________________ Tot-Ende ______________________
TextDrawHideForPlayer(playerid,txtTimeDisp);
return 1;
}OnPlayerSpawn
Spoiler anzeigen public OnPlayerSpawn(playerid)
{
//________________ Knast-Tot-Spawn ______________________
if(SpielerInfo[playerid][pKnast] == 1)
{
SpielerInfo[playerid][pKnastzeitBis] = gettime() + SpielerInfo[playerid][pKnastzeit]; //Damit die 500 Sekunden wieder drauf sind.
SetPlayerSkin(playerid, SpielerInfo[playerid][kSkin]);
SetPlayerWantedLevel(playerid, 0);
SpielerInfo[playerid][pSterne] = 0;
SetPlayerInterior(playerid, 3);
SetPlayerPos(playerid,198.0428,161.8516,1003.0300);
SendClientMessage(playerid, info, "Du musst zurück in den Knast!");
}
else if(SpielerInfo[playerid][pTot] == 1)
{
SetPlayerPos(playerid,-2719.6924,-318.3633,7.8438);
SetPlayerVirtualWorld(playerid,playerid+1);
SetPlayerHealth(playerid,10000000000);
SetPlayerSkin(playerid, SpielerInfo[playerid][pTotskin]);
SetPlayerWeather(playerid, 8);
tzeit[playerid] = 180;
SendClientMessage(playerid,info,"Du bist gestorben. Warte 2 Minuten oder warte, bis ein Arzt dich reanimiert.");
timer[playerid] = SetTimerEx("tottimer",888,true,"i",playerid);
SetPlayerWantedLevel(playerid, SpielerInfo[playerid][pSterne]);
}
else {
SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);
SetPlayerPos(playerid,SpielerInfo[playerid][xKord],SpielerInfo[playerid][yKord],SpielerInfo[playerid][zKord]);
SetPlayerInterior(playerid,SpielerInfo[playerid][pInterior]);
SetPlayerWantedLevel(playerid, SpielerInfo[playerid][pSterne]); }Mit freundlichen Grüßen
-
Habe ein Kleines Problem.
(Wer hätte das Gedacht XD)
Und zwar habe ich mir denn neusten Streamer 2.7.5.2 (https://github.com/samp-incogn…gin/releases/tag/v2.7.5.2) Geladen, sobald ich aber nun mein Server Starte sagt er mir das eine .dll Datei fehlt.
Und zwar die: MSVCP120.dllMfG. Haze
-
@Kontrax:
Das kommt darauf an, wo du es setzen willst. Die Variable kannst du eigentlich überall setzen, wenn du SetPlayerInterior nur dann bei OnPlayerSpawn hast. Am besten du probierst es mal aus wie du es dir vorstellst und fragst bei Problemen nochmal nach, mit Code.@_iPit_: Dieser Thread ist für kleine Fragen, nicht für ewige Codes, das macht keinen Sinn die hier zu lösen, da ständig was dazwischen steht. Mache bitte einen Thread auf.
Haze1730: Lade dir das herunter:
http://www.microsoft.com/en-us…oad/details.aspx?id=40784 -
@Kontrax:
Das kommt darauf an, wo du es setzen willst. Die Variable kannst du eigentlich überall setzen, wenn du SetPlayerInterior nur dann bei OnPlayerSpawn hast. Am besten du probierst es mal aus wie du es dir vorstellst und fragst bei Problemen nochmal nach, mit Code.@_iPit_: Dieser Thread ist für kleine Fragen, nicht für ewige Codes, das macht keinen Sinn die hier zu lösen, da ständig was dazwischen steht. Mache bitte einen Thread auf.
Haze1730: Lade dir das herunter:
http://www.microsoft.com/en-us…oad/details.aspx?id=40784Habe ich schon, gab das gleiche Problem.
Man muss ALLE Visual C++ teile Installieren, habe es mit einem Packet von Chip gemacht nun klappt es.MfG. Haze

-
wie kann ich den skin eines spielers als variable speichern?
-
Mein Problem ist eigentlich dass ich wenn ich den Spawn bei OnPlayerSpawn mit SetPlayerPos gemacht habe,
ist er jedes mal wenn ich ihn spawnen lasse kurz an einem anderen Ort gewesen.Sieht dann immer doof aus..
Kann man das umgehen? Oder soll ichs einfach nochmal versuchen.
@Sunrizez
mein Befehl:
ocmd:setskin(playerid,params[])
{
new pID, skin, text[2][60];
new sendename[MAX_PLAYER_NAME];
new empfangname[MAX_PLAYER_NAME];
if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, ROT, "Du bist kein Admin oder dein Rang ist zu niedrig!");
if(sscanf(params,"ui",pID,skin))return SendClientMessage(playerid,ROT,"Befehl: /setskin [ID] [SKINID]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online!");
if(skin<=0||skin>299)return SendClientMessage(playerid,ROT,"Skin ID muss zwischen 0 und 299 liegen!");
GetPlayerName(playerid, sendename, MAX_PLAYER_NAME);
GetPlayerName(pID, empfangname, MAX_PLAYER_NAME);
format(text[0], sizeof(text[]), "%s hat dir deine Skin ID auf %i gesetzt!",sendename, skin);
format(text[1], sizeof(text[]), "Du hast %s die Skin ID auf %i gesetzt!",empfangname, skin);
SendClientMessage(pID,GOLD,text[0]);
SendClientMessage(playerid,GOLD,text[1]);
SetPlayerSkin(pID,skin);
sInfo[pID][skinid] = skin;
return 1;
}sInfo[pID][skinid] = skin;
-
nene ich will nur den skin des spielers mit variable ersetzen
-
speicherst du den Skin beim Login in eine Variable oder wie?
dann eigentlich einfach SetPlayerSkin(playerid,Variablenname);
-
-
kann bitte jemand meine frage beantworten? kontrax' antwort hilft nicht
-
Variablenname = GetPlayerSkin(playerid);
-
klingt logisch danke
aber
C:\Users\xRampage\Desktop\samp03z_svr_R1_win32\include\buyskin.inc(20) : error 010: invalid function or declaration
C:\Users\xRampage\Desktop\samp03z_svr_R1_win32\include\buyskin.inc(40) : error 017: undefined symbol "exskin"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase2 Errors.
habs so geschrieben wie du meintest
-
Zeig uns den Code.
-
#include <a_samp>
#include <ocmd>
#include <sscanf2>#define DIALOG_BUYSKIN 284649
#define DIALOG_SKIN_1 101251
#define DIALOG_SKIN_2 102262
#define DIALOG_SKIN_3 103283
#define DIALOG_SKIN_4 104294
#define DIALOG_SKIN_5 105256
#define DIALOG_SKIN_6 106243
#define DIALOG_SKIN_7 107246
#define DIALOG_SKIN_8 108228
#define DIALOG_SKIN_9 109219
#define DIALOG_SKIN_10 110230forward skin1(playerid);
ocmd:buyskin(playerid,params[])
{
ShowPlayerDialog(playerid,DIALOG_BUYSKIN,DIALOG_STYLE_LIST,"Skinauswahl","The Truth\nAndre\nSkin 3\nSkin 4\nSkin 5\nSkin 6\nSkin 7\nSkin 8\nSkin9\nSkin10","Anschauen","Abbrechen");
return 1;
}public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_SKIN_1)
{
if(response)
{
SetPlayerSkin(playerid,1);
GivePlayerMoney(playerid,-300);
}
else
{
SetPlayerSkin(playerid,exskin);
}
}if(dialogid==DIALOG_BUYSKIN)
{
if(response)
{
if(listitem==0)
{
SetPlayerSkin(playerid,1);
SetTimer("skin1",10000,false);
}
if(listitem==1)
{
SetPlayerSkin(playerid,3);
}
if(listitem==2)
{
SetPlayerSkin(playerid,1);
}
if(listitem==3)
{
SetPlayerSkin(playerid,1);
}
if(listitem==4)
{
SetPlayerSkin(playerid,1);
}
if(listitem==5)
{
SetPlayerSkin(playerid,1);
}
if(listitem==6)
{
SetPlayerSkin(playerid,1);
}
if(listitem==7)
{
SetPlayerSkin(playerid,1);
}
if(listitem==8)
{
SetPlayerSkin(playerid,1);
}
if(listitem==9)
{
SetPlayerSkin(playerid,1);
}
}
}
return 1;
}public skin1(playerid)
{
ShowPlayerDialog(playerid,DIALOG_SKIN_1,DIALOG_STYLE_MSGBOX,"Kauf bestätigen","Willst du den Skin kaufen?","Ja","Nein");
return 1;
} -
Du musst noch eine globale Variable deklarieren. Das heißt irgendwo oben bei den Defines noch ein new exskin[MAX_PLAYERS];
Dann in deinem Buyskin-Befehl einexskin[playerid] = GetPlayerSkin(playerid);mit rein machen.Und dann noch anstattSetPlayerSkin(playerid,exskin);dann das schreiben:SetPlayerSkin(playerid,exskin[playerid]);
-
Ist es möglich auf DINI fraktionsmember die offline sind anzeigen zu lassen per Befehl sowie sie zu kicken aus der Fraktion?
-
Ja, nur inwiefern das ressourcentechnisch gesehen gut ist, ist eine andere Frage. Machbar ist es auf jeden Fall.
-
Hättest du mal so ein kleines Beispiel wie das ganze Aussehen würde? Sprich Spieler anzeigen usw.
Dazu ist ja im Godfather es üblich das in den meisten Befehlen eine Abfrage drinnen ist ob der Spieler connected ist (IsPlayerConnected) wenn man das ausklammert dann ist das doch theoretisch so als ob man den Spieler auch offline kicken kann oder irre ich mich da Jeffry: -
Du musst eine Schleife durch die Datei Pfade machen. Ich kann dir zwar ein Beispiel geben, aber das wird dir nicht helfen, wenn dein System komplett anders aufgebaut ist.
Versuche dich mal daran, eine Schleife durch die Dateien hinzubekommen. Wenn da oder danach Fragen aufkommen, dann erstelle bitte einen neuen Thread und erkläre woran du hängst, das gehört dann nicht mehr hier rein.
-