Änder die Dialog ID bzw definiere eine neue .
#define DIALOG_LOGIN 3
#define DIALOG_REG 4
#define DIALOG_DONATOR 5
#define WAFKAUF 6
---
if(strcmp("/buy",cmdtext,true,10) == 0) { ShowPlayerDialog(playerid,WAFKAUF,DIALOG_STYLE_LIST,"{FF0000}============Shop============","Desert Eagle (5000$)\nColt (2000$)\nMP5 (5000$)\nAK-47 (9000$)\nSpas12 Shotgun (10000$)\nSniper gewehr (6000$)\nVIP\n","Kaufen","Abbrechen"); return 1; }
---
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==WAFKAUF) {
if(response)
{
if(listitem==0) { // Deagle
if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
GivePlayerWeapon(playerid,24,21);
GivePlayerMoney(playerid,-5000);
SendClientMessage(playerid,COLOR_GREEN,"Desert Eagle gekauft für 5000$.");
}
if(listitem==1) { // COLT 45
if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
GivePlayerWeapon(playerid,22,68);
GivePlayerMoney(playerid,-2000);
SendClientMessage(playerid,COLOR_GREEN,"Colt gekauft für 2000$.");
}
if(listitem==2) { // MP5K
if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
GivePlayerWeapon(playerid,29,60);
GivePlayerMoney(playerid,-5000);
SendClientMessage(playerid,COLOR_GREEN,"MP5 gekauft für 5000$.");
}
if(listitem==3) { // AK47
if(GetPlayerMoney(playerid) < 9000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
GivePlayerWeapon(playerid,30,60);
GivePlayerMoney(playerid,-9000);
SendClientMessage(playerid,COLOR_GREEN,"AK-47 gekauft für 9000$.");
}
if(listitem==4) { // SPAS12
if(GetPlayerMoney(playerid) < 10000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
GivePlayerWeapon(playerid,27,21);
GivePlayerMoney(playerid,-10000);
SendClientMessage(playerid,COLOR_GREEN,"Spas 12 Shotgun gekauft für 10000$.");
}
if(listitem==5) { // SNIPER
if(GetPlayerMoney(playerid) < 6000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
GivePlayerWeapon(playerid,34,25);
GivePlayerMoney(playerid,-6000);
SendClientMessage(playerid,COLOR_GREEN,"Sniper gewehr gekauft für 4000$.");
}
if(listitem==6) { // VIP
if(Player[playerid][VIP] < 1) return SendClientMessage(playerid,COLOR_RED,"Du bist kein VIP User!");
ShowPlayerDialog(playerid,DIALOG_DONATOR,DIALOG_STYLE_LIST,"VIP","50% Rüstung ($1000)\n Tec9 ($2000)\nM4 ($25000)","Kaufen","Abbrechen");
}
}
if(dialogid == DIALOG_DONATOR)
{
if(response)
{
switch(listitem)
{
case 0:
{
if(Player[playerid][VIP] < 1) return SendClientMessage(playerid,COLOR_RED,"Du bist kein VIP User!");
SetPlayerArmour(playerid,50);
}
case 1:
{
if(Player[playerid][VIP] < 1) return SendClientMessage(playerid,COLOR_RED,"Du bist kein VIP User!");
if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
GivePlayerWeapon(playerid,32,250);
GivePlayerMoney(playerid,-2000);
SendClientMessage(playerid,COLOR_GREEN,"Tec9 gekauft für 2000$.");
}
case 2:
{
if(Player[playerid][VIP] < 1) return SendClientMessage(playerid,COLOR_RED,"Du bist kein VIP User!");
if(GetPlayerMoney(playerid) < 2500) return SendClientMessage(playerid, 0xFFFFFF, "Du hast nicht genug Geld!");
GivePlayerWeapon(playerid,31,250);
GivePlayerMoney(playerid,-2500);
SendClientMessage(playerid,COLOR_GREEN,"M4 gekauft für 2500$.");
}
}
}
}
Dein Fehler lag daran das du die If Abfrage auskommentiert hast die nach der ID fragt d.h. beim Aufruf von Ondialogresponse wurde ohne AbFrage der Code ausgeführt.
Ich habe dir jetzt eine ID definiert und die if abfrage wieder auskommentiert, ich hoffe ich konnte dir weiterhelfen und dir deinen fehler klar machen 
mfg